posts
Writings and notes, strong opinions loosely held. Newest first. Older stuff is rougher; I’m leaving it up anyway.
# 2026
| Date | Post | Read |
|---|---|---|
| May 21 | AI token streaming isn't about SSE vs WebSockets #ai | 8 min |
| May 18 | Generations of AI applications: conversational, delegative, and collaborative #ai | 9 min |
| May 13 | LLMs are breaking 20 year old system design #ai | 5 min |
| Apr 23 | How to make SSE token streams resumable, cancellable, and multi-device | 9 min |
| Apr 20 | All your agents are going async | 8 min |
| Feb 28 | You are the bottleneck #ai #agents #dev | 4 min |
| Feb 24 | If code is cheap, intent is the currency #dev #ai | 6 min |
| Feb 11 | A chatbot's worst enemy is page refresh #ai #system-design | 7 min |
| Feb 9 | Only use agents for tasks you already know how to do #ai #agents | 3 min |
# 2025
| Date | Post | Read |
|---|---|---|
| Nov 27 | SSE sucks for transporting LLM tokens #realtime #ai | 5 min |
| Nov 15 | So you want to build AI agent group chat? #ai #system-design | 4 min |
| Feb 6 | Patterns for building realtime features #realtime #dev | 6 min |
# 2024
| Date | Post | Read |
|---|---|---|
| May 3 | Phone call asymmetry #gripes #comms | 2 min |
| Apr 30 | Every programmer should know #dev | 1 min |
# 2023
# 2022
| Date | Post | Read |
|---|---|---|
| Nov 22 | Backend for the Frontend, and incentives #dev | 4 min |
| Oct 10 | Aggregates: one piece of code design | 4 min |
| Aug 2 | Please don't write "point of view" #writing #gripes | 3 min |
| Jul 29 | Debugging Linkerd for mislabelled route metrics | 8 min |
| Jun 25 | Addicted to on-call | 3 min |
| Jun 20 | Tragedy of the codebase commons #mental-model | 5 min |
| Jun 9 | Consistently executable interviews | 3 min |
| May 19 | usable java setup vim #vim #tools #java | 4 min |
| May 12 | docker login error on m1 #dev #docker | 1 min |
| May 3 | power distance in comms #comms #feedback #mental-models | 2 min |
| Apr 27 | penduluming #mental-models | 3 min |
| Apr 25 | santander cycles app | 1 min |
| Mar 18 | email workflow | 3 min |
| Jan 31 | change the battlefield #mental-model | 7 min |
| Jan 18 | focus on what is, then what to do about it #comms | 3 min |
| Jan 14 | when to share your mental model #mental-model #comms | 2 min |
| Jan 10 | who wrote this shit? #learning | 2 min |
| Jan 5 | connecting the dots requires listening #team | 3 min |
# 2021
| Date | Post | Read |
|---|---|---|
| Dec 21 | product ideation is dysfunctional #gripes #product | 4 min |
| Nov 23 | bridge the gap in differences, with the right language #comms | 2 min |
| Oct 29 | positive and negative freedoms #team #comms #mental-model | 3 min |
| Oct 21 | failure demand #mental-model #mvp | 4 min |
| Oct 18 | don't design a system to avoid a component you don't understand #system-design #mental-model | 1 min |
| Oct 7 | vuepress search h4 #tools #dev | 1 min |
| Sep 24 | know your frogs 🐸 #mental-model | 2 min |
| Sep 6 | habit tracker #habits | 2 min |
| May 25 | explain using analogies #mental-model #team #comms | 4 min |
| Mar 15 | prefer regular adhoc meetings #meetings #team | 3 min |
| Mar 2 | notion: set full width off 🙏 #notion #gripes | 2 min |
| Feb 16 | object storage pricing #tools #dev | 2 min |
| Feb 12 | time complexity #dev | 5 min |
| Jan 5 | custom annotation naming #dev | 1 min |
| Jan 4 | estimate, predict, forecast #team #delivery #mental-model | 3 min |
# 2020
| Date | Post | Read |
|---|---|---|
| Dec 8 | mfa key recovery #mfa #tools | 2 min |
| Dec 4 | inclusion #team | 1 min |
| Oct 5 | naming is hard #software #dev | 2 min |
| May 28 | syncthing #tools | 5 min |
| Apr 15 | hyperoptic ipv6 #internet #ipv6 | 2 min |
| Apr 9 | video conferencing #tools #comms | 3 min |
| Mar 26 | what makes a good software engineer? #dev | 7 min |
| Mar 22 | pr checklist #checklist #code | 4 min |
| Mar 2 | mvp service level objectives #decision #design-patterns #product #software #mvp | 3 min |
| Feb 17 | beware anecdotal evidence #decision #team | 2 min |
| Jan 29 | data modelling in saas apps #dev | 6 min |
| Jan 20 | effectiveness as an engineer #team #dev | 2 min |
| Jan 16 | brooks law, hierarchy, and async comms #team #comms | 3 min |
# 2019
| Date | Post | Read |
|---|---|---|
| Dec 11 | experienced engineers pattern match | 3 min |
| Nov 26 | short vs. long lifetime structs #code | 6 min |
| Oct 27 | go 1.13: errors.As(...) #go #dev | 2 min |
| Jun 20 | the power and danger of consistency #team | 5 min |
| May 2 | high performing teams burnout together #team | 2 min |
| Apr 29 | metrics for team contributions #git | 2 min |
| Apr 26 | kubernetes generated names #kubernetes | 2 min |
| Apr 11 | docs requirements #dev #git | 2 min |
| Mar 29 | git: co-authored by #git | 3 min |
| Mar 25 | micromanagement #team #gripes | 3 min |
| Mar 25 | go get private repo #go | 1 min |
| Mar 20 | Keeping a logbook with vim #vim #dev | 4 min |
# 2018
| Date | Post | Read |
|---|---|---|
| Dec 16 | 2018: reading list #list #dev #books | 4 min |
| Nov 25 | the cost of extrinsic motivators #team #mistakes #learning | 4 min |
| Oct 27 | options make decisions #dev | 3 min |
| Sep 20 | Limitations of EKS #kubernetes | 3 min |
| Sep 4 | go concurrency correctness #go #design-patterns | 7 min |
| Aug 29 | proverb driven development #dev #mental-models | 4 min |
| May 13 | go's anonymous functions in loops #go #mistakes | 6 min |
| Apr 20 | programming mental models #learning #dev #mental-model | 5 min |
| Mar 14 | working with me #dev #learning | 3 min |
| Feb 25 | go ast got visitor pattern wrong #go #design-patterns #gripes | 5 min |
| Jan 6 | libraries considered harmful #dev #gripes #mistakes | 6 min |
# 2017
| Date | Post | Read |
|---|---|---|
| Dec 19 | slack @here is bad for your team #team #gripes #slack | 2 min |
| Nov 13 | mastering golang taught me java #go #learning | 7 min |
| Jul 15 | on meetup talks #dev #learning | 4 min |
| May 28 | building blocks of go services #go #dev | 5 min |
| May 18 | function as an interface #go #design-patterns | 2 min |
| May 10 | golang gotchas #go #mistakes | 6 min |
| Apr 24 | structs and named types #go #design-patterns | 4 min |
| Apr 14 | deepend #learning #dev | 4 min |
| Apr 5 | patterns in go #design-patterns #go | 5 min |
| Mar 26 | developer abc #dev #learning | 3 min |
| Mar 20 | downtime #learning #dev | 2 min |
| Mar 15 | don't fear the junior engineer #learning #dev | 3 min |
| Mar 9 | hello world | 1 min |