Procrastination is triage with a machete and a blindfold. Hackers are min-maxers. Python is the programming language equivalent of juggling one ball. In order to exceed expectations, you first have to meet expectations. The bottom always eats the top. You have to be nice before you can be mean. With very few exceptions, every single […]
Category Archives: Coding
Democracy is the worst form of government, except for all those other forms that have been tried from time to time. – Winston Churchill I get asked a lot by non-technical people why it’s so hard to find good technical talent. How it is that we can do so many interviews, yet make so few […]
Hackers are cool. Described and celebrated by luminaries such as Eric Raymond and Paul Graham, they’re the self-styled “rock stars” and “ninjas” of the industry. Indeed, who wouldn’t want to be the next Wozniak, Torvalds, Carmack? Who wouldn’t give their right shift key for entry into The Guild? Hackers are min-maxers – working late into […]
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 […]
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 […]
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 […]
The perfect interview coding problem is one that will be easy for a great candidate, hard for a good candidate, and impossible for everyone else. Unfortunately, most of the problems you come up with are going to be way too hard, and will have to be thrown away. It’s great if a candidate gets one […]
We used to see them all the time, before we knew the signs and started to avoid them. Engineers who had moved into management, turned architect, been CTOs and VPs for so long they didn’t know how to program any more. Long-time technical managers. Directors of engineering. And then, of course, at some point you […]
I interview a lot of software engineers, and people (especially college seniors) frequently tell me that they want to work on “hard problems.” When I ask them what they mean, they generally talk vaguely about doing something algorithmically challenging on the back-end, maybe related to machine learning, natural language processing, or big data. They don’t […]