I wish I could say this was a stupid question, but it’s not. It’s a really good question and the answers you’re going to get won’t really give you exactly what you’re looking for.
Over the years, I’ve managed a number of developers and interviewed probably pretty close a thousand now. I think there’s four types of developers: frontend developer, backend developer, full stack developer, and data developer.
Frontend developers work on the frontend, these are things that you can see – basically the website or the mobile app. They are generally responsible for anything that the user can directly touch.
Backend developers work primarily on the server side of development, typically any scripts, databases, or architecture. Code written by backend developers typically helps communicate database information to the browser or mobile app.
Full stack developers are both frontend developers or backend developers. Honestly, there’s very few people that are talented in both areas. Most developers are really skilled in one area and terrible in the other. Companies try to hire full stack developers because of the perceived flexibility and potential cost savings.
Data developer is a newer concept. These are developers or “engineers” that work with the data pipelines that power analytics. Data developers work on building data products not experiments – data scientists build experiments.
Here’s how I evaluate backend developers
It’s been my experience that most candidates really focus on having amazing technical skills and think that’s really all that matters in whether you get the job or not.
In a lot of cases, for the first technical job, that’s correct but you will quickly hit a glass ceiling where you will not be able to get promoted anymore because you won’t be capable of doing higher value work because it requires incredible communication ability.
The things I look for when I hire a backend developer are:
1. Knowledge of a backend language (Nodejs, Java, C#, etc)
2. Knowledge of the database management system we’re using (MySQL, MS SQL, could be NoSQL, etc).
3. Experience with scaling an application
4. A basic knowledge of the frontend we’re using (calling APIs, displaying html, etc)
5. Experience with version control (I don’t care which one although Git would be nice)
Other things I look for are “soft skills” like:
1. Willingness to learn
2. Willing/able to work with others
3. Decent or good understanding of english
If you have code published to github, I’ll probably take the time to review it before I call you. I probably wont run it, but I’ll have a quick read through it to try and understand how you would fit on my team.
Before the interview
I’ll likely look you up on facebook, twitter or instagram and try to understand how you think and what sorts of things you enjoy. I’m looking for how to understand where you would fit in my team.
During the interview
During the interview, I’ll probably ask about why you want to leave your old job, why you’re looking to join us and then give you some sort of vague problem to explain how you would solve it. I’m looking to understand how you will seek clarity or if you’ll just start writing code.
If somebody non-technical will be joining us in the interview, I will ask you to explain some sort of concept from your resume to them and why you chose that.
If you want to be a great backend developer, you should focus on understanding the database well (queries, joins, and how to design a good schema), understanding one or two server side languages really well.