-

Good coding practices
I recently had to give a talk on “Good coding practices” for some new developers at Automattic. At first I had no idea how to summarize such a vast and dynamic topic, but as I was working on a plan I started to see some ideas come up over and over again and I decided…
-

Writing a diff/PR description to get better reviews
During a recent work meetup, we had an impromptu exercise where we went over what makes a GitHub PR description most useful to the people reviewing it, particularly when not everyone is working on the same part of the codebase. Better descriptions make for faster reviews! This is my attempt to turn that discussion into…
-

Valley of the Machines
I wrote this one-shot D&D adventure to share with my co-workers on a recent work meetup; it was the first in several years! I now share it with you all. It takes about 3 hours from start to finish and requires very little experience on the part of the players. For the DM, the adventure…
-

Common TypeScript errors and how to fix them
At work we recently changed the builds for our project to fail when new TypeScript errors are added, so I took some time to clean up a bunch of old TS errors in our codebase, some of which have been there for over 5 years. There were close to 600 errors when I started (down…
-

The Hunted Queen
As in the before times, this year I wrote a D&D one-shot adventure to share with my co-workers at Automattic. Sadly, I was only able to run the adventure for a few people because 2020. Still, it was a fun adventure and I wanted to share it with the internet, so here you go. (It’s…
-

grepdef: a quick way to search for definitions in code
I live inside my code editor all day and something that I need to do pretty often is to search for the definition of a symbol (a variable, constant, or function). For example, I might be debugging a problem in a JavaScript file when I come across this code: I need to see translateDataFromRaw to…
-

Unusual Things
Every year I write a D&D one-shot game for my friends and co-workers at the Automattic Grand Meetup. This year’s adventure was titled “Unusual Things” and has a certain… upside down feeling to it. I hope you like it! Here’s the blurb: Nothing much happens in the mountaintop town of Hawkurns, where the populace mines…
-

What I learned writing a game engine
One of the things I did on my recent sabbatical was to start coding a video game in JavaScript. I learned a lot in the process, and I thought I’d write down some of my experiences. (For the record, while I wrote the game engine myself, I used the excellent Pixi library for graphics.) Classes…
-

The Box of Souls
Another D&D one-shot I wrote, this one was run for my co-workers in Rome! Two powerful countries have been at peace for twenty years thanks to the actions of the mysterious Candlemane Family, who created The Box of Souls, a weapon so fearsome that both sides were forced to disarm. However, something strange is happening…
-

Time Greed and the benefits of slowing down
I just came back to work from a three-month sabbatical, and I wanted to capture some of the things I learned during that time. Part of my sabbatical was a meditation retreat where an important theme was paying attention to the forces of Greed and Aversion in our minds. Over the course of the retreat…
-

Await, there’s more!
This week I gave a talk at my local JavaScript meetup on the history, use, and future of Promises and I thought that you, dear reader, might be interested as well. Here’s the blurb: JavaScript is an asynchronous language; it is designed to react to events and to trigger jobs that take an unknown amount…
-

Alternatives to Else
One of the first imperative programming concepts I ever learned was if/else. With this relatively simple power tool I could make decisions in my code based on any number of factors. Of course, my early programs were… a little hard to read. I hadn’t yet learned one of the maxims of programming that I try…