This is the fifth part in a series about achieving mastery as a software engineer. The first part described senior software engineers. The second part discussed common flaws that could derail one’s growth. The third and fourth parts got as specific as possible about the skills you need as you develop, from junior, to mid, to […]
Author Archives: Dan
This is the fourth part in a series about achieving mastery as a software engineer. The first part described senior software engineers. The second part discussed common flaws that, quite apart from coding skills, could undermine an engineer’s professional and personal growth. In the third part I got down to business and talked through the foundational […]
In every disaster movie you’ve ever seen, there’s a key transitional moment when the characters change from believing that they can go back to the way things were, to accepting that the old world is gone. Up until this point they’ve been fighting a losing battle, frantically trying to shovel back the tide, and it’s […]
Broken code gets fixed; poorly-designed, hard-to-maintain, not-quite-bad-enough-to-refactor code is left alone. Modifying it is like placing a rusty fork a centimeter away from your eye – impossible to ignore, emotionally painful to endure, and something you try to make end as quickly as possible. The code is harder to understand, easier to break, more frustrating […]
You are a water-filled sack of flesh, your actions and decisions largely determined by the multiplicity of hormones, chemicals, and nutrients coursing through your body. And no, I’m not just talking about teenagers, with their “raging hormones.” I’m talking about you, a rational, reasonable, experienced, mature, highly organized, professional adult. You are at the mercy […]
This is the third part in a series on what it means to achieve mastery as a software engineer. The first part described senior software engineers, the second part discussed common flaws that, quite apart from coding skills, could undermine an engineer’s professional and personal growth. In this post, I’m going to try to get […]
Unless you’ve been living under a rock for the past week, you should have some idea of what’s been going on in Boston – that there was a bombing at the Boston Marathon that killed three and wounded/maimed many others; that the bombers went on a rampage through the city after their photos were released […]
Though I’m in the middle of writing a longer post on software engineering, I wanted to quickly jot down some unrelated thoughts from earlier today. My son Jacob is three and a half years old. He’s a great little guy, I love him dearly, and like most three and a half year olds, he can […]
All happy families are alike; each unhappy family is unhappy in its own way. ― Leo Tolstoy, Anna Karenina In my last post, I discussed how senior software engineers were different (in a good way), and promised to talk about how one can get there. The problem is two-fold, however. In addition to the slow, […]
I’ve been thinking a lot recently about the difference between the journeyman and master years of software engineering, how you move from one to the other, and how one might accelerate growth. As part of this process, a more fundamental question has come up – what does it even mean to be a “senior” software […]