The Superior Use of Schedules
Do not use schedules, use deadlines. Use schedules when all you’re doing is changing values in templates and config files.…
How to handle money and currency conversions
Most of the bugs and unnecessary complexity that come from working with financial data in a computer program can be…
DSL Tips & Ideas
DSL is short for Domain Specific Language, and they’re the key to building large and easily maintainable software systems. Your…
System Architecture Tips
Simple systems are made of inputs, outputs and stocks. A bathtub is a simple system: the taps are the input, the drain is the…
Communication Tips
1. Don’t be passive aggressive When asked to do something “impossible”, consider it permission to schedule yourself 10 or 15…
How to fix bugs, step by step
Step 1: Enter the bug in your case tracking system At the end of all these steps is a phase…
Signs That You’re a Bad Programmer
1. Inability to reason about code Reasoning about code means being able to follow the execution path (“running the program…
Every line of code is a user interface
A company’s software assets are not its codebase, it’s the programmers who know what the problem is. On the balance…
Signs That You’re a Good Programmer
The most frequently viewed page on this site is Signs you’re a bad programmer, and I think that behoves me to…
Why nobody knows what they are doing
Every user you’ll ever have is trying to make you solve an engineering problem that few engineers have ever seen,…
API Design Tips
“It’s very easy to create a bad API and rather difficult to create a good one.” – Michi Henning, API Design…
