Occasional notes on software engineering: things I learned the hard way so you don’t have to.