Here you can find all my previous posts:
- Conventions of safety
-
Paving cowpaths to avoid sharp edgesー2019-08-18
- Quick database change management without external tools
-
Ad-hoc schema management, but less soー2019-03-31
- Explicit relationships and the principle of least surprise
-
When simplicity is more complex than you might expectー2019-02-03
- Avoiding lost updates in PostgreSQL logs
-
Ensuring the past holds no nasty surprisesー2018-12-18
- Brevity in Failure
-
When to just die quietly in a corner...ー2018-11-03
- Streaming Approximate Histograms
-
Self Driving Bucketsー2018-09-07
- Solving Zelda Puzzles Satisfactorily
-
The other kind of lazinessー2018-05-31
- Learning Haskell messily
-
Learning by getting stuck inー2018-04-27
- How software systems learn
-
Homely systemsー2018-03-09
- Choosing the right scaffold
-
Tooling for mere mortalsー2017-12-31
- Local build orchestration with make(1)
-
Orchestrating the orchestratorsー2017-11-29
- Supposedly a Property test library
-
Supposing that my code works...ー2017-10-23
- A quick tour of LLVM's Sanitizer coverage implementation
-
Inside the grey boxー2017-09-30
- Automatic port allocation
-
For when you just can't decide...ー2017-08-30
- Adding flexibility to build processes
-
Knowing where to break the chainー2017-06-30
- Die-hard Statefully
-
Puzzling quickcheckー2017-05-30
- A Taste Of Cloudformation.
-
Carving with clouds.ー2017-03-20
- Adventures in TCP latency measurement
-
There and back in quantifiable time.ー2016-12-13
- Desire without objectification
-
For those embarassing abstraction leaks.ー2016-12-09
- Testing as question asking or Hypothesis Driven Development
-
The praxis of What-who-where-when-why .ー2016-10-24
- It's all happened before
-
How a little counter can avoid calamitous causal confusion.ー2016-05-23
- Rules-based Network programming with Mio and Rust
-
Making the non-deterministic, less so.ー2016-01-27
- More Clojure component patterns
-
Parking the cart before putting the horse to bed.ー2014-10-31
- (defn reloaded/-main [] …)
-
The code is dead, long live the code.ー2014-09-30
- Tell don’t ask with Sinatra handlers
-
Putting your actions in their place.ー2013-10-31
- My little Backpressure: Flow Control is magic
-
Avoiding congestion and I/O stuffiness.ー2013-09-30
- Precise scheduling with RabbitMQ
-
The things we'll do to avoid dependencies.ー2013-09-28
- POSIX Threads and fork(2): on not crossing the streams
-
New Jersey's revenge.ー2013-08-31
- Emptying the depths of your database with Sequel.
-
Cleaning up after yourself.ー2013-07-31
- Tail calls in functional languages aren’t always a good fit.
-
Avoiding the thunk explosion.ー2013-06-30
- Page objects in Ruby
-
Your UI is a domain, too.ー2013-05-31
- Mutant Refactoring powers
-
Knowing your tests are actually worth something.ー2013-04-28
- Ruby Property testing with Rantly
-
More test cases than you could possibly want, for cheap.ー2013-03-16
- Continuous Integration for Github Pull Requests with Teamcity
-
Avoiding those embarassing accidents on master.ー2013-01-13
- The Scientific Method in Debugging.
-
How to know when it works.ー2006-11-19