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 should look for products that you need, but what's less obvious is that thinking through how you'd bui ...

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 PureScript. In these cases, the expected structure of the payloads passed between integrations is def ...

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 fulfilling or challenging (I strongly believe that it is both), but a daily Sudoku puzzle can also be challen ...

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.

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 frequently actively harmful. Worse, their tendency to be harmful seems to be most prevalent in those w ...

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, our responsibility is to manage how we interact with our upstream resources efficiently so that we don ...

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 sat at the bar, I watched a cook and a couple of manic waitresses weave chaos into order. Tickets flew, ...

Packages over processes

Languages sport nice abstractions: Type systems, modules, functions, classes, package managers, database integrations, etc. We can catch mistakes easily through the type system, automated tests, local manual testing, and code review. On the other han ...

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, because they present a complete solution. When we drop React, we have to consider how we'll manage ...

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 much about writing. Most of the criticisms in response to the post were some variation on this idea, ...

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 straight-up evil. Companies have commoditized user attention through an economic framework that is compl ...

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, and to be totally honest, even though I have become fairly proficient, it tends to be difficult to rea ...