Blog
2026
- Speed Is Only Useful If You're Going in the Right Direction
- Review the Outcome, Not the Output
- Don't Hire Me
- Use AI Agents to Break Your App
- If You Can't One-Shot Your Feature, It's a SKILL.md Issue
- Turning Your Terminal Into an AI Dev Team
- Coding Agents Need a Faster Feedback Loop
- Every CLI Should Include Agent Skills
- A Bad Line of Research Is a Hundred Bad Lines of Code
- AI Never Would Have Installed left-pad
- Code Was Never the Goal
- Vibe-Coded Apps Need Real Security
- Code Quality Still Matters
- My AI Recruiter Honeypot Worked
2025
- Stay Out of the Dumb Zone
- I Got Tired of Writing Bad Commit Messages
- Your Tests That Make Network Requests Are Flaky
- Over-Engineering Is Just Future-Proofing Gone Too Far
- Building a Platform Is Raising the Floor for Everyone
- Ship as Fast as Possible, but Not Faster
- Sparse Is Better than Dense
- Flat Is Better Than Nested
- I Built an AI Tool to Write My Brag Document
- Complex Is Better Than Complicated
- Simple Is Better Than Complex
- Explicit Is Better Than Implicit
2018
2016
2014
- Datomic Performance with Clause Ordering
- Setting Null Values in Datomic
- Clojure Protocol Namespaces
- Mixpanel Mock
- Implementing Clojure Protocols
- Null Object in Groovy