June 24, 202619 min
We picked practices by weighing cost against benefit, and AI has changed both sides of the scale. A tour of which practices get cheaper, which feed the model's context and tools, and where to be careful.
May 5, 20263 min
Vague claims like some users are affected need enough context before they can support a decision.
April 29, 202515 min
The actor model is old, simple and rarely used. Its two primitives, how it handles concurrency, and how I used it in Akka.NET to build a small monitoring tool for on-premise installations.
April 29, 202411 min
Building the right software has more to do with telling than with programming. Every story manipulates a little, so own the story and pick the tool that fits your context, from impact mapping to the C4 model.
April 27, 202214 min
Complexity feeds on our decisions, and we make the biggest ones when we know the least. Some real examples of keeping it in check, from a stream on top of SQL Server to an outbox in a 20-year-old legacy system.
July 15, 201912 min
Most team knowledge travels by word of mouth, and that doesn't scale. Techniques for writing it down without burying the team in documents, from the README to ADRs, incident reports, Event Storming, and tests that check your conventions.
November 24, 201811 min
Legacy software that still pays the bills is a lucky thing to have. Where the pain comes from, why rewriting is rarely the answer, and three anti-corruption layer strategies for growing new software around the old.
July 2, 20189 min
Three questions for basing development decisions on data instead of hunches, with examples from a Big Brother website, a legacy product, a slow CI pipeline, and cloud bills.
June 14, 201712 min
Using an object-oriented language doesn't mean we're doing object-oriented programming. The common ways we get it wrong, where they come from, and what I keep in mind to avoid them.
December 20, 201613 min
We hold conversations with our code all the time, from the folder structure to the logs in production and the commit history. A tour of where those conversations go wrong, and why business naming matters in all of them.
December 1, 20167 min
How, what, and with whom to learn once your career has started, from Shuhari and an overflowing cup of tea to mentors, kindred spirits, and choosing the right company.
November 10, 20165 min
Leaving the code a little better with every story and bug fix beats piling up technical debt, plus some thoughts on simple design and the cost of undoing.
July 30, 201610 min
A recap of a Twitter debate on primary keys, covering mutable vs immutable keys, natural vs surrogate keys, and when to use GUIDs, sequences, HiLo or an external generator.
December 28, 20155 min
Teams keep decisions long after forgetting why they made them; go back to the principles behind practices and pin down the real problem before solving it.