The Curious Engineer

All blogs / Software / engineering practice

will-keleher.com

will-keleher.com

Posts on software engineering – engineering culture, system legibility, and performance.

Software / engineering practiceTesting / QADevOps / SRE / infrastructureDatabases

Posts
61 from 12 Jul 2021 to 12 Aug 2026
Posting
weekly (29 in the last year)
Kind
personal blog
Feed
https://will-keleher.com/feed.xml

2026 28

  1. That Test isn't Flaky. It's Broken.
  2. Backfills should fail in minutes, not days
  3. Your dashes suggest which model you're copy-pasting from
  4. An Opinionated Guide to Post-mortems
  5. ChatGPT Images 2.0 Still Can't Draw the Seven-legged Spider I Want
  6. You should read at least one job-related book a year
  7. REPRODUCE.md
  8. Telling a Computer to Do Things
  9. Don't Forget to Set EDITOR and VISUAL
  10. The Post-mortem Spectrum
  11. Small Programming Tricks
  12. You're already running canary servers
  13. and these screenshots prove i did it
  14. this css proves me human
  15. Ratcheting SQL Queries: reducing a database's load by 1/4th with a simple change
  16. Script Your Code Migrations
  17. An Elegy for my Beloved Slow Query Logs
  18. Store Every Request
  19. More Shell Patterns I Use Weekly
  20. Nano Banana 2 Partially Passes the Seven-legged Spider Test
  21. (Almost) Every table needs `request_uuid`
  22. CSS Tweaks for This Site That Make Me Happy
  23. Literal and Optional Parameters Can Make Code Hard to Read (in TypeScript)
  24. How I Review LLM-generated Code
  25. It's 2026, and I'm still leery of using LLMs to generate code
  26. You probably don't need `find`
  27. Three Technical Tricks for Non-technical Writers in Google Docs
  28. Useless shell commands

2025 9

  1. Why doesn't MySQL's query planner rewrite some `ORDER BY.. LIMIT` queries to use a `UNION` strategy? No clue.
  2. A one-table SQL query will often use a single index
  3. You should lint your TODOs
  4. You probably want some parts of Lodash
  5. Draw a Silhouette of a Spider Missing its Front Left Leg
  6. Brownbags shouldn't be lectures
  7. I avoid easy things I haven't tried
  8. Why I avoid test stubs in TypeScript
  9. Most engineers have git aliases; what are yours?

2024 4

  1. When helping elves, you should use complex numbers to navigate in 2D
  2. 18,957 tests in under 6 minutes: ClassDojo's approach to backend testing
  3. XKCD's \"Is It Worth the Time?\" Considered Harmful
  4. Python patterns I learned during last year's Advent of Code

2023 2

  1. Indexes are sorted arrays (sort of)
  2. JSDoc comments can make fixtures easier to work with

2022 9

  1. So, what can you do with a process ID?
  2. Why does `zip(*[iter(s)]*n)` chunk s into n chunks in Python?
  3. Culling Containers with a Leaky Bucket
  4. Setting up Image Previews using Puppeteer, Make, and CSS transforms
  5. Writing FizzBuzz in MySQL 5.7 for no good reason
  6. Using NodeJS's AsyncLocalStorage to Instrument a Webserver
  7. Large Analytics SQL Queries are a Code Smell
  8. Shell Patterns for Easy Automated Code Migrations
  9. Red and Blue Function Mistakes in JavaScript

2021 9

  1. Slack is the Worst Info-Radiator
  2. Bash Patterns I Use Weekly
  3. Canary Containers at ClassDojo in Too Much Detail
  4. MongoDB Performance is Disk-graceful
  5. Node's `AsyncLocalStorage` Makes the Commons Legible
  6. The 3 things I didn't understand about TypeScript
  7. HyperLogLog-orrhea: how do HyperLogsLogs work?
  8. ERROR, WARN, and INFO aren't actionable logging levels
  9. Graceful server shutdowns behind HAProxy