When Smart People Can’t Agree

Two of the smartest engineers on the team have locked horns over some design decision and they’re really going at it. I used to watch this sort of thing happen every week. (If I’m being honest, I usually was one of the guys arguing.) I thought about this phenomenon for a very long time. It […]

Software Design Heuristics

The cruelest part of being trapped in the fifth-year plateau is that you are now competent enough as a software engineer that you know what garbage looks like and you know what good looks like, but you can’t always get there. A lot of the code you write is amazing, but some of it (most […]

The Fifth-Year Plateau

The great thing about software is that you can teach yourself everything you need to know to become a moderately competent application developer. The problem is that once you get to around five years of experience, you’ve gotten about as far as you’re going to get on your own. You are probably the best person […]