If you are a junior developer or an intern, you don’t know what a good workplace looks like in software development. Even if you are an experienced dev, you might work at a company that has bad habits or a huge technical debt. Don’t get stuck – finding a more efficient workplace can help you speed up your career.
However, unless you have a friend inside, you have to work there to know how good they really are.
I specialize in the technical aspect of hiring developers: I have conducted more than 500 interviews with devs during my career. I also helped to create world-class engineering teams for Lazada and CodersRank; some of them now work for Google or Amazon.
Over the years, I concluded that there is ONE question you can ask at a developer interview and immediately get a glimpse of the type of dev team you’d be joining.
Just one question and you will know whether that team is a high performer or they just try to look like one.
What is a high performing team?
Before we talk about the question let me clarify what I consider a high-performing team. A high performer team can get a job done fast. They can keep up high velocity without burning out the team. AND it is fun to work there. Teammates help each other and individuals can grow.
How to identify high performing teams
Ok, enough talking! The question you should ask at every technical interview is:
“How often do you deploy code to live?”
And the right answer to that? Here’s what you want to hear: “on-demand”, or “several times a day”. What you don’t want to hear: “every quarter”, “once a month”, etc.
There is a proven correlation between the performance of the team and the number of deployments. The higher the number the better the team performance is.
Why are accelerated deployments a good thing?
1. Advanced technical knowledge
High performance cannot be done without sufficient technological background.
There is a high chance of regular CI/CD, testing, code review, monitoring, proper version controlling and change management that is already implemented. So if you haven’t worked with them you will have a chance to learn.
Implementing so much automation requires some smart and experienced engineers. So you can be sure you will have good company.
2. High autonomy
A high deployment number means the developers have high autonomy.
Instead of implementing artificial barriers to make sure the dev team doesn’t make any mistake, the management trusts the dev team. It feels much better to work in an environment where teammates cover each other’s back. This team culture prefers collaboration to individual gatekeepers.
3. Optimized for speed
Instead of waiting weeks or even months, your code might be live a few minutes or hours after you pushed it. It helps you keep your projects on track and fix problems much faster. Because you don’t have to pick up old tickets and remember what you have done several weeks, months ago.
(Big shout out to our team here at CodersRank, who migrated the entire CodersRank front-end to Vue 3 in just 1 day.)
Big companies with hundreds of developers tend to have a lower number of deployments/developers. This is a sign of scaling problems. High performers can scale, solve the problems of big teams, they might even increase the number of deployments/dev.
Overall, high deployment numbers mean high performing team. If you don’t trust me, trust Nicole Forsgren Ph.D., Jez Humble, and Gene Kim they have written a book about it, Accelerate. Excellent book, I can recommend it.
High performers have high expectations
Finding a good company is just one part of the equation. You have to be good enough to get hired. Don’t be surprised if those companies have higher expectations. So make sure to invest enough time in the preparation too. This is a whole new topic but I as a starter can recommend this book: Cracking the Coding Interview.
Of course, there are exceptions. Some teams don’t deploy frequently but they are still high performers. And the opposite is true. Some teams deploy a lot but still cowboy coding, not caring about the risk and breaking live regularly.
I also have to mention that there are industries where it is not possible to deploy frequently. You might have no chance to revert your code after a reactor meltdown or alter the code after the rocket exploded on the surface of Mars.
So, there you have it. Make sure to ask the recruiter or company about their deployment practices to get an idea about their coding culture.
This way, you can significantly lower the chance to land a job where your career development gets stuck for months or years at a time. On the other hand, I have also heard about developers who were actively looking for bad performers. They wanted to help these companies get on the right track and become high performers.
Anything is possible. The most important thing is to stick to your preferences ’till you find the right place. Good luck!
Open to new opportunities? Create a developer profile on CodersRank to find a tech job you love & deserve.