From Booleans to Strings in Frontend State

When it comes to controlling frontend presentation, developers often rely on booleans. However, this approach can be limiting. In this post, I’ll explore the drawbacks of using booleans and introduce a more versatile alternative: plain old strings with type safety. ...

August 4, 2023

The Case Against "Try This" Debugging

In many group debugging sessions I’ve joined, a major technique being deployed is something I call “Try This” debugging. In this post, I’d like to talk about this anti-pattern, and consider a better way. ...

June 26, 2023

The Joy of JavaScript Absolute Imports

Absolute imports are an essential developer experience feature for me in any JavaScript application. In this post, I’ll explain what they are and why they matter. ...

May 2, 2023

My Daily Programming Routine

After a decade of programming full-time, I’ve developed a daily work routine that I’d like to share. I hope to revisit it and share it with people who are starting out in the industry or are curious about a programmer’s workday. ...

April 10, 2023

Variable Name Antipatterns Named and Explained

There are only two hard things in Computer Science: cache invalidation and naming things. – Phil Karlton Let’s talk about variable name antipatterns! ...

April 3, 2023

Cold Water for Your Code Coverage

Code coverage, the percentage of your code covered by automated tests, is a metric associated with quality. In this post, I’d like to investigate this association. And pour some cold water on it. ...

March 28, 2023

Does ChatGPT Mean Software Engineering Is Over?

Here’s an argument that’s gaining momentum in my field: AI will eliminate or greatly reduce the programming profession. ...

March 26, 2023

One-Sentence Summaries of Popular Technology Books

Here are some one-sentence summaries of books that have helped me understand programming and technology. ...

March 21, 2023

How to Run an Agile Retrospective for Leaders

Retrospectives are one of my favorite engineering team practices. In this post, I’ll explain why and how I run retros. ...

March 15, 2023

Type Your TypeScript Library Functions

There’s been a lot of recent discussion in the TypeScript community about typing functions. These arguments tend to take binary positions: always type your functions, or never type them unless the compiler demands it. Which is the best option? ...

March 1, 2023