Skip to main content


Search with cmd/ctrl + f, use the commande palette with cmd/ctrl + k, browse by tag, or try a random article.

Off to Kindergarten

My first born starts Kindergarten today and boy am I going to miss him

1000 commits

This article marks the 1000th commit to this website's repository

How I'm using AI in July 2023

Some more competitors are entering the ring, but GitHub Copilot remains the only AI-powered product that I use regularly

Timeboxing types

In order to maximize the value of types and your time, consider timeboxing the amount of time that you spend writing any given type

CSS columns are neat

The columns property is CSS divides content among a set number or width of columns

Quality requires iteration

You're not going to write the perfect program on your first attempt; it's going to take multiple iterations to arrive at the best solution

A workable emoji picker on Ubuntu

The default GNOME emoji picker is limited to certain applications, but you can find copyable emojis in the Activities view

Losing steam

This year started strong on writing, but I have found little motivation recently

Reviewing "Go By Example"

Go By Example is a great resource for learning the syntax and patterns of Go, but you might need to supplement it with other resources to learn how to work in the language

Web-browser Accessibility Tools

Chrome, Edge, Firefox, and Safari all have built-in accessibility tools to help you create accessible experiences for all

Linux Update in 2023

After experimenting with Linux last year, I am happily using Ubuntu on a Lenovo Yoga as my personal computer

How I'm using AI in May 2023

GitHub Copilot is the top product this month, but Bard, Bing, ChatGPT, and Warp all have their uses

Learning Go

Learning the Go programming language for professionanl development has been an enjoyable experience

Set up Decap CMS

Decap CMS is the official successor to Netlify CMS and works well with the old tooling.

Listen for class change in JavaScript

There isn’t an event for class list changes, but you can write a function that listens for class changes on an element with the MutationObserver API

Reviewing my Netlify Analytics

Thanks to Netlify Analytics I know to focus on writing how-to articles, but it has less data than I hoped

CSS :empty pseudo class

Empty elements in a flex or grid container can result in double gaps, but CSS has an pseudo class to select and remove those elements

Farewell Create React App

The React team is looking to transition Create React App from a project scaffold to a launcher that includes options other than client-side rendering

Starting an RSS Club

I can publish an article exclusively to the RSS feed with a special flag in the frontmatter

On closings

Closings are lovely in letters but unnecessary online. I'm going to try to omit closings from my articles.

Learning about Smart Brevity for writing

Axios co-founder Jim VandeHei advocates for a writing style that is clear and concise. I'm interested in learning whether I can provide more value through direct and informative writing.

Burrito emoji

Burrito means thank you. Thank you means burrito. Enjoy the burrito.

New command palette

I added a new new command/control K command palette to my site. You can use the keyboard shortcut or activate it by clicking the magnifying glass in the header.

Adding images to articles (again)

I went through the process of adding images back to my articles with a helpful script to automate image processing for me.

Portable custom search engines

Custom search engines (sometimes called site search) are a great browser feature, but they aren't easily ported from one browser to the next. I created a portable web app to handle your custom search engines from any browser.

Thoughts on Steve Job on consulting

Steve Jobs had some opinions on consulting, and it sparked a few thoughts of my own. What makes a valuable consultant? Experience.

Are command bars the future?

Command bars are a great way to access functionality through a single user interface, but how much potential does this pattern have to change the way we interact with products?

Node.js is great for scripting

Node.js and JavaScript are a great option for scripting for the language features and the large ecosystem. Oh, and it's pretty fast too!

Giving Linux another try

It's been about 10 years since I last tried using Linux, so I think it's time to explore what it has to offer in 2022.

Jest tips & tricks

A growing list of little things that make working with Jest a little better

Starring content

A write-up on the new star feature on

When to use React's memo HOC

The memo higher-order component can prevent your component for re-rendering unnecessarily, but you should use caution before using it

Music to code to

A growing list of artists that I like to listen to while programming.

Make a web component

How to make a custom web component with only a few lines of code

My best Slack emojis

A curated list of the best reaction emojis that I have created for Slack

React Native Glossary

A growing list of terms you need to recognize when working in React Native

What is Hermes in React Native?

Hermes is a JavaScript engine that is designed to run on mobile devices. It helps power React Native on Android – and now iOS – devices.

Handy git commands

A curated collection of git commands that help me do my job better

COVID-19 journal

Recording my experience contracting COVID-19 in 2020

Let's stop skinning cats

Proposing an alternative, more constructive idiom to "there's more than one way to skin a cat"

TypeScript without TypeScript

TypeScript provides valuable features but complicate the development process. What are some alternatives that provide the features without the headache?

Nodemon for Deno

Denon is a utility for Deno that provides source watching and process restarting just like Nodemon

Six video update

Lessons learned from publishing six videos on YouTube

Store readable data

When forced between storing data for humans or computers, choose the former.

Over my head

A list of articles, topics, and resources that are currently over my head

Laws I Love

This is a WIP that I probably will never finish.

Free to grow

Why tests (should) free you to grow with confidence

2019 into 2020

Reflecting on last year while looking forward the next

2018 into 2019

Reflecting on last year while looking forward to next

Why a blog?

An effort to preserve my content on the ever-changing web

How to create a render prop component

Render props are a popular technique in modern React, but they can be tricky. Here is a brief explanation and guide to creating your own.