Resources

css

A complete guide to Flexbox

When the spec is too boring to read and you just want some pretty pictures to explain what's going on: CSS Tricks comes through for you.

startup
sales

A Founder's Guide: Essential Sales Advice for Startups

As startups scale, effective sales implementation becomes the difference between stagnation and sustainable growth. This article has collected key pieces of advice to keep in mind when getting started.

react
animation

Animations on the Web

A great video at React Conf 2019 that goes over how to make native mobile animations on the web that feel right and are performant.

typography
tools

Archetype

A tool that helps you choose font pairings and appropriate spacing.

tools

Carbon

Create and share beautiful images of source code.

Drupal

Dependency injection anti-patterns in Drupal

It's easy to make mistakes in what you store in a service during dependency injection and negatively affect performance or introduce subtle bugs. After reading this article I saw the pattern in many places in our own code as well as many of the contrib modules we rely on.

design
accessibility

Designing accessible color systems

In this article the Stripe team describes their approach to finding accessible colors for their design system. Unfortunately their tools are not open source. However, their descriptions are accurate enough that you could apply similar processes in your own work.

performance

Dexecure performance engineering blog

A blog that explores the performance aspects of the web. Has a lot of interesting articles about topics that you may not consider in every day webdevelopment.

Drupal

Factories and dependency injection

Symfony's service container supports defining services built from factories. This can streamline your code and follow best practices when using dependency injection. Factories provide a way to create objects that are not services. This article explains how they work and how they relate to Drupal.

git

GitLab Flow

A description of GitLab Flow, a modified version of the popular git flow process that tries to address some of the shortcomings of the original.

Drupal

hook_update_N or hook_post_update_NAME

Choosing the right update hook matters more than you might think. In one type of update hooks APIs are in flux and schemas aren't stable. That means you should use the other for any data migrations. Read this article to find out which is which.

startup
marketing

How to get press for your startup

An article that reminds us on why it's important to generate buzz around your startup and provides some tips on how to do this by providing a great story to journalists.

css

In Defense of Utility-First CSS

This is a very interesting blog post that makes the case for utility-first CSS over other things like CSS-in-JS using Styled Components or Emotion. It addresses all the objections that I had about utility-first CSS including those that I came up with while reading the description on what it actually is. I'm seriously considering utility-first CSS as a solution for my next front-end project.

startup

I’ve abandoned “MVP”

A great article on why "MVP" is being abused and it might serve you better to cut it from your communication by setting clearer goals.

git

Lesser known Git commands

This article was first published in 2016 but still works now due to git's backwards compatibility. My favourite git aliasses are git please and git grog.

AI

Model Context Protocol Tutorial

The Model Context Protocol is driving a new wave of innovation in the world of AI. In this tutorial, I'll break down everything you need to know to get started.

Drupal

Preventing a `drush updb` from clearing your caches

By default, drush updb clears the cache after applying database updates. For deployments where you want to avoid an unnecessary performance hit, you can prevent this default behavior using a Drush pre-command hook.

tools
regex

Regex 101

If you ever need to figure out why your regular expression isn't working, this is the site for you.

engineering

Serverless Land

Building event driven architectures and knowing all the different services and patters to use to create applications that work without servers and can scale infinitely is no easy task. Serverless Land is a great resource to guide you through the landscape.

sketchnotes
blogging

Sketchnotes by Denise Yu

Denise Yu was tipped to me as a great sketchnote article. Her art is very inspirational. As a bonus it's educational about tech topics.

engineering

The 5 commandments of clean error handling in TypeScript

Error handling is something that many developers struggle with and is slightly different in every language. This article provides good pointers to make sure your error handling itself isn't broken and that the right information ends up in your error logs.

engineering

The Pragmatic Engineer

The Pragmatic Engineer is a great blog that covers a wide range of in-depth engineering topics.

startup

The Startup Library

The library contains the most valuable articles from Paul Graham, Sam Altman, Mike Butcher, Sequoia Capital and other big players of VC ecosystem. This section was made especially for startup founders and entrepreneurs as a small library with useful links, templates, and tools.

Drupal

The Typed Data API, by example

The Typed Data API is a powerful but often unknown feature within Drupal. In this article Matt Glaman demystifies that concept.

typography
tools

Type Scale

A tool by Jeremy Church that allows you to visually the scaling of headers depending on the ratios that you choose.

css

Using CSS Grid the right way

CSS Grid is extremely powerful. However, when you don't know what you're doing it can also be a maintenance disaster. In this article Violet Peña describes how you can use CSS grid in a sensible.

Drupal

What is the deployment identifier in Drupal?

The deployment identifier is an important setting in your Drupal site to make sure your site doesn't run with outdated caches that don't match the code. In this video Matt Glaman explains how this works.

react

When to useMemo and useCallback

An excellent article by Kent C. Dodds that helps me remember when I should and should not worry about callback creation in React components. For example the following is absolutely fine.

<input onChange={e => setValue(e.target.value)} />

However, if you're doing something like the following, then it may be worth memoizing the onClick callback for an expensive component.

<SeriouslyExpensiveComponent onClick={e => updateZoom()} /><input onChange={e => setValue(e.target.value)} />