Charity Majors1 has a good, long-form article on the Stack Overflow blog. The title is misleading as, while AI’s impact on software engineering and its hiring process (spoiler: you’ll still want to hire junior engineers) is at the heart of the article, there’s so much more in it. It gets exciting in the second part, where she dispenses much from-the-trenches advice on team management and building.

Hiring engineers is about composing teams. The smallest unit of software ownership is not the individual, it’s the team.

Have you ever been on a team packed exclusively with staff or principal engineers? It is not fun. That is not a high-functioning team. There is only so much high-level architecture and planning work to go around, there are only so many big decisions that need to be made. These engineers spend most of their time doing work that feels boring and repetitive, so they tend to over-engineer solutions and/or cut corners—sometimes at the same time. They compete for the “fun” stuff and find reasons to pick technical fights with each other. They chronically under-document and under-invest in the work that makes systems simple and tractable.

The best teams are ones where no one is bored, because every single person is working on something that challenges them and pushes their boundaries. The only way you can get this is by having a range of skill levels on the team.

  1. I met her once at MongoDB headquarters in 2012 or 2013. We were invited back when they were running their now-long-defunct MongoDB Masters program. She worked at Parse then. Anyway, I remember being impressed by her competence and delivery. ↩︎