Tips and Points

This summer I've been working on a project with my wife called Tips and Points. The idea is to analyze irish dance competition results (and, eventual ...

August 1, 2026

Planning and Review

Leaning on automations to build correct programs tends to: Result in circular workflows, where you write things and then figure out that they don' ...

June 19, 2026

Product discovery via ideation and market research

Often, it's easiest to find existing products by coming up with the idea yourself and then checking see if it exists. It's kind of obvious that you s ...

January 17, 2026

Ensure correctness by changing when the first failure occurs

Failures are expected during development. The key to writing correct code is to detect possible failures before we ship our program. This is the prin ...

January 11, 2026

Effectful decoders in PureScript

Decoders are primarily used to define an integration with another API in cases where the functionality that you need isn't directly available within ...

January 9, 2026

Flying solo

When you're working alone, everything takes longer, but we can also get weird and leverage approaches that don't make sense on a team. Foregoing auto ...

January 5, 2026

Debugging workflows

Let's face it: As programmers, we typically build small variations on the same theme over and over. That isn't to say that programming isn't fulfilli ...

January 5, 2026

DRY

Most programming maxims are not particularly useful as stated, and, in truth, I believe that the way these principles are delivered and espoused is f ...

July 25, 2025

How to work as a resource bottleneck

Anyone who works in some kind of production pipeline (which is pretty much everyone) can become a resource bottleneck. When working in these roles, o ...

July 23, 2025

Write code like you're slinging hash

A couple of years ago, I went to this tiny diner bore witness to a thrilling display efficiency. The grill was set up in the dining area, and as I sa ...

July 21, 2025

Packages over processes

Languages sport nice abstractions: Type systems, modules, functions, classes, package managers, database integrations, etc. We can catch mistakes eas ...

June 30, 2025

Confidence by any means available

Writing code is cheap, but getting it right is expensive. Every means of ensuring code correctness has significant drawbacks: Automated unit tests a ...

May 14, 2025

A skeptic's review of Cursor

I recently wrote a blog post where I criticized the use of AI coding assistants on the premise that coding is mostly about thinking and not actually ...

May 5, 2025

React to Vanilla

Recently, I decided to drop React as my daily driver for building UI. It's easy to grab for tools like React, even when we don't really care for them ...

May 5, 2025

Programming is a thinker's game

Written code is a strikingly poor representation of a running program. Consider this event listener: const thing = document.querySelector("#thing"); ...

April 26, 2025

RSS as a skill

Shit's gotten weird out there. The internet has devolved from something that was mostly quirky and altruistic to something that, in many ways, is str ...

April 25, 2025

Passport with vhosts

So, I started moving all of my apps into a single VHost monorepo setup because: It's easier to share code across projects (I don't have to setup sha ...

December 10, 2024

Focus gains

So, recently I purchased a reMarkable Paper Pro. About a decade ago, I decided to learn Gregg Shorthand (Simplified). It was a big time investment, a ...

December 7, 2024