My Favorite Programming Articles

Home Blog Projects Contact

Published:

The Modern Equivalent of Spellbooks

I collect blog posts like Frieren collects grimoires. Here are some of my favorites.

The Grug Brained Developer

complexity is spirit demon that enter codebase through well-meaning but ultimately very clubbable non grug-brain developers and project managers who not fear complexity spirit demon or even know about sometime

The HTMX guy is my role model, and Grug is his finest work. I read it every few months and it gets better every time.

Out of the Tar Pit

This essay is about software complexity. It proposes a paradigm called Functional Relational Programming as a way to mitigate it.

This paradigm (mostly) never caught on, but its core concepts are as relevant as ever.

How Do Committees Invent?

Conway’s Law has been called The Only Unbreakable Law of software. This essay is a deep dive into the implications of that law.

In short, organizations can only produce copies of their communication structures.

Taco Bell Programming

Every item on the menu at Taco Bell is just a different configuration of roughly eight ingredients.

The more I write code and design systems, the more I understand that many times, you can achieve the desired functionality simply with clever reconfigurations of the basic Unix tool set.

You can build a lot with a little.

A Relational Model of Data for Large Shared Data Banks

The legendary paper by E.F. Codd that introduced the relational database model. I think every software engineer should read it.

I will die on a hill screaming that the relational model is the most beautiful concept in computer science besides maybe combinatory logic and git.

Today’s programmers have a lot of misconceptions about relational databases. Here are a few:

MythFact
Relational databases are called “relational” because of foreign keys.Relational databases are called “relational” because they’re based on set theory.
“Relational database” and “SQL database” are synonyms.SQL is just one language for interacting with relational databases, and it’s anything but quintessential. IMO we should have chosen Datalog instead.
Relational databases were invented to solve the problem of data duplication. Third normal form or whatever.Relational databases were invented to protect users from having to know the physical storage details of their data. 3NF is great though.

If you just learned something, you need Codd in your life.

The Third Manifesto

This book-length manifesto expands on Codd’s paper. It argues that we’ve gone astray from the “true” relational model and proposes a precise definition of what a relational database should be. It also introduces a new language called Tutorial D that is more relational than SQL.

It’s a dense read, but worth it if you’re a relational stan like me.

The Vietnam of Computer Science

Object/Relational Mapping is the Vietnam of Computer Science. It represents a quagmire which starts well, gets more complicated as time passes, and before long entraps its users in a commitment that has no clear demarcation point, no clear win conditions, and no clear exit strategy.

This one is particularly relevant to modern software development because it argues that Object-Relational Mappers (ORMs) are a fundamentally flawed approach to database interaction due to the impedance mismatch between object-oriented and relational paradigms.

I promise this is the last essay about relational databases.

Visual design rules you can safely follow every time

This is how I fake design competence.

Where are the builders?

As someone who loves redstone computers and things that are “technically Turing-complete,” I totally vibed with this article.

The case against morning yoga, daily routines, and endless meetings

As a night owl who hates meetings, I found this article refreshing. It pushes back on conventional productivity and career advice. It gives off major Black Swan vibes.

Distributed == Relational

Sorry, had to slip one more relational article in here!

The Redo Opportunity

Because I’m mentioned in it.

Nikhil Suresh’s Entire Blog

I love this guy. If you like The Black Swan, you’ll love him too.

Antipatterns

Most engineers know about the Gang of Four design patterns and perhaps Martin Fowler’s enterprise design patterns, but knowing the opposite is important, too.

You know you can trust this article because it calls ORMs an antipattern.

Programmer Archetypes

An interesting take on the different types of programmers you’ll meet in the wild and how to work with them.

Just Use Postgres for Everything

Unfathomably based.

Programming with Nothing

A mind-blowing demonstration of lambda calculus.

To Mock a Mockingbird

A book to read if you think Programming with Nothing isn’t minimalist enough.

The puzzles in this book inspired me to write a combinatory logic interpreter.

Weird Stuff I Like

Here’s a bunch of quirky links that I find fascinating, horrifying, hilarious, or all of the above: