I read with a mixture of horror and sadness the thread on 10x Engineers this week. The original tweet clearly comes from someone who’s heart is in the right place, but the thread is basically a litany of every reason I can think of that makes for a really bad engineer and goes so completely against how software engineering is done in the teams I work with as to become a parody of what to do if you want to be an developer in any decent software department today.
So instead I’ve made a counter list of how to spot a 1x Engineer (because that’s all a decent company is looking for)
- A 1x engineer gets why we have meetings to discuss what the team are working on and what progress we are making. They’ll use these meetings to offer their support, advice or help to unblock the rest of the team, because they get that this is a team effort and superheroes belong in the latest Marvel flick, not in their development team.
- Timing for a 1x engineer is flexible and based on the needs of their colleagues. They tend to work in pairs or mobs because they understand 2 heads are better than 1, 4 heads in a mob means everyone gets to understand how to solve the tricky issue that got raised the day before and it means everyone on the team knows how to solve it the next time it crops up. Most of them have a decent work/life balance because they have things going on, like life, others will do pet projects in their spare time or as part of their own personal learning and development, they do this because they want to, not because they want to be a Rockstar engineer.
- 1x engineers laptop screens are whatever color they want it to be, they might change defaults but the chances are they are more interested in what works for their colleagues around them because they’ll be pairing frequently and teaching others how to develop good quality code. Their laptop cases on the other hand are probably filled with stickers from conferences and meetup groups where they’ve gone to either listen to other 1x engineers share their knowledge or where they’ve presented their views and thoughts on development, because they get that we all improve when the community around us improves
- A 1x engineer has no idea on every line of code in a codebasebecause they tend to deal in codebases that are the efforts of many engineers around them that came before or work with them now. They do have a pretty good sense of smell for where to go if a problem crops up but this has come through experience and working with others to share advice and knowledge. They think the Matrix was a great action film, but complete BS when it comes to what an actual programmer does. They don’t live in the code, they live around it, working with others to manage it safely into production.
- A 1x engineer knows that helping with the front-end UI is just as important as making sure the back-end is up to scratch and that working with designers and researchers is all part of a collaborative effort to make a product as successful as it can be. They aren’t into seeing certain aspects of the code as ‘beneath them’ or believing only junior developers need worry about UI, they want to help others succeed because when they succeed the entire team succeeds.
- A 1x engineer isn’t Neo, they don’t operate on a different plain of thought to us mere mortals, they’re human, just like me and you. They also know that sitting by themselves coding in isolation for 4–6 hours to build a feature themselves is both likely to lead to burn-out and is a shitty way of writing code in the first place. 1x engineers like tea just as much as coffee and I’ve seen very few drinking that god awful monster energy drink — it gives you bad wind
- 1x engineers are on as familiar terms with stack overflow and google as they are with their family. They know they would rather reuse a solution that’s already solved this problem rather than trying to remember how they tried to solve it 6 years ago when they last saw it. Documentation is their friend, they’ll reference it just as much as Google and their colleagues because they know that the whole is greater than the sum of its parts.
- A 1x engineer is just as likely as anyone else to learn a new language although if anything they’ll have some long term favorites that they are more comfortable developing in, the difference is they are always willing to learn new things, but they’ll do it in a way where the rest of the team is learning with them because they’ll be frequently sharing insights and new techniques they have discovered with others.
- A 1x engineer is a great mentor because they have been in the same seat as the new engineer who just joined the team and know that having a supportive colleague help them through their first few weeks and months was a godsend to them when they were learning. They are excellent interviewers because they are keen to understand how the interviewee is thinking about how to solve the technical test they have been set and eager to see if there is something new they could learn. Constantly inquisitive and willing to share this with others in their team the 1x engineer is a great mentor because they understand that bringing the group up to their level of expertise makes their life easier.
- A 1x engineer knows that if they hack something they’ll need to come back and fix it later, they sometimes write a quick fix to solve a customers problem but they’ll make sure the team are aware and note it for later long term refactoring. They don’t have some grand mental model of the code structure, diagramming or simply commenting it out in the code is sufficient because they aren’t Tony Stark.
- A 1x engineer wants the team to succeed, which means they’ll constantly look for how the team, department and company can improve, from refactoring code, to suggesting and implementing improvements in the process the team adopts. They see training and discussion as equally as important to helping them and colleagues improve as writing code is.
You’ll come across 1x engineers every day. They’re your colleagues, your team members, the people you spend time with at the coffee machine, hold on to them just like you’d hold onto any staff member who wants to do a good job. Celebrate them just as much as you celebrate the efforts of the entire team and department when you succeed. Treat them for what they are, human beings.
#NoUnicorns #NoSuperheroes #1xEngineer