You can find all of my writing at will-keleher.com.
Observability
Engineers spend more time trying to understand systems than creating them, especially in the age of agentic AI, so observability and system legibility can dramatically speed up delivery:
- Slow query logs are one of my favorite tools, so I wrote an elegy for them after moving a database to PlanetScale, which doesn’t support traditional slow query logs.
- Correctly categorizing logs is a key part of making your logs/traces a useful debugging tool.
- Many teams store every request that hits their systems to make debugging and analysis easy.
- Once you store every request, adding
request_uuidto every table unlocks even more value. - In NodeJS,
AsyncLocalStorageis a great tool to set up an AsyncLocalStorage-backed tracking middleware and use it to generate detailed per-request performance reports and alerts. - Thoughtful use of JSDoc Comments can help improve system legibility.
AI and Engineering Culture
Agentic tools have made engineering fundamentals like testing, code review, observability tooling, and code architecture more important than ever for teams that want to quickly deliver reliable code. Teams with a strong engineering culture and best practices are the ones best-positioned to take advantage of new capabilities.
- Post-mortems and retros are key rituals that allow engineering teams to get stronger over time, and The Post-Mortem Spectrum argues that “small” post-mortems are a useful complement to larger, more-structured post-mortems.
- It’s 2026, and I’m still leery of using LLMs to generate code argues that using LLMs to generate some code is sometimes a poor decision for long-term speed because it can limit engineering understanding of the most complex parts of a system.
- Reviewing LLM-generated code isn’t the same as reviewing the code of a peer and requires different practices.
- Engineering teams should get better over time, and a key piece of that is creating an environment where engineers can master the domain they’re working in. It’s not worth the time yet, Small Programming Tricks, and Brownbags shouldn’t be lectures cover some of my thoughts about creating an effective learning environment for an engineering team.
Shell Programming
- If you don’t know the shell well, it makes it hard to tell a computer to do things.
- Unless you like vim, Don’t Forget to Set VISUAL and EDITOR.
- Shell Patterns I Use Weekly and More Shell Patterns I Use Weekly cover shell basics that I’m surprised more engineers don’t know.
- So, what can you do with a process ID?
- Most engineers have git aliases; what are yours?
- You probably don’t need
find.