If you are an Admios candidate, congratulations on doing your homework and researching the company you want to join. If you want to know how we conduct interviews and pick the best talent for the job, then this post should give you some insight.
I am also a Software Architect, which means I’m capable of designing and building an application from scratch, front-end and back-end, while taking into consideration the infrastructure the app will be running and sometimes even designing and deploying the infrastructure, in other words, Devops.
And, because of this position, I conduct many of the interviews for front-end candidates.
What does a front-end developer do in the company?
What happens at the interview?
One of the first things I tell candidates is that the purpose of the technical interview is not to accept or reject a candidate, but rather to measure their skills and knowledge as a developer. We’re essentially trying to place them in one of four skill level categories: junior developer, mid-level developer, senior developer, or rockstar. The definitions of these levels are very subjective, but they are mostly based on what we’ve seen from our customers as to what is a senior developer, or mid-level developer, etc.
However, the most critical part of the interview is the coding exercise because it gives me the most accurate measure of a candidate's skills.
I don’t care about your resume
Let’s face this head-on: I read your resume, but I don’t really care about it. I may ask a couple of questions regarding some techs you put in there, but ultimately the resume doesn’t really tell me anything valuable. It tells me you’ve worked on certain projects, but that’s it. I wasn’t there seeing the code for those projects so I don’t know if it was neatly done or if it was an endless pit of security holes. I don’t know what parts you did and how well they performed, so at most your resume can tell me where you’ve been, not how good you are.
You know what the best resume for a developer is? A public Github, Gitlab, or Bitbucket account. That’s the only thing I’m really interested in finding in your resume, a link to actual code you’ve written. I don’t care if you have a Ph.D. in computer science or if you don’t have a degree at all. A degree only tells me you’ve done the theory, it doesn’t tell me anything about your skills.
A little side note about myself: I don’t have a degree in computer science or any higher education in programming. I have a telecommunications engineering degree so I learned how to calculate satellite orbits, fiber optics and networks. I know all seven Open System Interconnection (OSI) layers but right now I only focus on the sixth and the seventh. So how did I end up in programming? I learned from looking at others write code and my hobby became my living. Just to be clear, I never launched a satellite or designed an interoceanic fiber optic cable. My whole career has been programming and I don’t even have a CS title. So believe me when I say that I don’t put too much weight on where you studied or what you studied. I’m more interested in the skills outside of engineering that you can bring into the organization and make useful in solving problems differently.
Having an engineering degree or a computer science degree is great, but that doesn’t define you or tell me much about your actual talent.
You Know Nothing Jon Snow
This question usually catches the candidates off guard, so if you’re a candidate reading this, now you’ll have a leg up.
Why is a subjective question so important you may ask? Everyone doing an interview is obviously trying to land the job. They want to show what they know, but try to stay humble. No one will ever say they are a 10, so most candidates position themselves between 8 and 9, which technically positions them as “senior developers.”
And don’t get me started with mainstream frameworks like Angular, Vue, Backbone, React and Ember. After answering all those questions, would you still say you are an 8 or a 9?
Now, don’t go into an interview and tell me you are a 7 just because you read this and think that’s the magic number because I will test you on that rating.
So who’s a 10? A 10 is a unicorn, an imaginary creature. They are like the unicorn companies in Silicon Valley worth over a billion dollars. From the outside they are valued as a 10, but from the inside they have a completely different value.
The answer you give me lets me establish a baseline for the complexity of the coding exercises I will give you. I don’t want to drag the interview out too long, so they are not logical questions. Potential candidates have to pass a test with logical questions before they land a technical interview, so no need to go down that road again.
The exercises are designed to measure your expertise, so you should be able to answer them quickly and not overthink them.
For example, one of the questions is a simple refactor of a function. The tricky part there, and I tell the candidates about this before they start, is that there are three possible solutions (actually 4, but if you do the fourth, it seriously drops my expectations of you). The three possible solutions tell me your story, they tell me your experience. A simple refactor will tell me a lot about how much code you’ve seen in the past and how much you’ve improved yourself.
Now, if you are being interviewed don’t overthink it. Taking too much time to answer is a bad sign. The refactor is simple. Once you see it you’ll know the answer (because you are a developer and the answer is obvious), so go ahead and type it. But again, there are three ways to answer it and your answer tells me a lot about your experience.
From there I increase the complexity of the questions as the interview moves along until you reach a point where you can’t answer. As always, it’s OK if you don’t know everything, I’m just being thorough in measuring your skills.
So what should you know?
You also need to understand scopes and closures. They’re fundamental to writing structured code and I look for it in the coding part of the interview.
Some final thoughts
Seniority is a misconception that a lot of candidates have. It’s not how many years of programming you have under your belt that makes you a senior developer. I’ve seen candidates with 10 or 15 years of experience and placed them at a junior level, and I have also seen candidates with two or three years of experience and placed them at a senior level.
Again, it is not about how many years you’ve been programming. Seniority is about how well you’ve learned from coders better than yourself.. If you’ve been programming for 10 years and the only code you’ve seen is yours, then you won’t have a concept of how well or wrong you’ve been writing code all those years.
However, if you go into public project repositories, if you pair with better developers, if you get constant feedback and reviews, if you contribute to public projects and get code reviewed, all those things give you seniority. It’s about learning a better way to do things and leaving your ego behind. Admios is a great place to learn! So don’t be intimidated by the interview or feel discouraged if you don’t pass. We have high standards because we provide our customers with the best talent we can find. Also, we don’t only hire senior developers. If that were the case, then we wouldn’t have a diverse staff capable of filling all potential openings in our customer accounts. We focus a lot on the candidate’s potential and we’re eager to invest in training those who show promise. Don’t be afraid to ask at the end of the interview how well it went. We want you to ask because it’s a great opportunity for us to give you feedback so you can improve.
Anyhow, even if you don’t make it to this round, don’t be discouraged. Take the opportunity to improve and apply again in a couple months. Show us your talent and your ability to improve. Show us that and we’ll welcome you to the family. That’s what we’re looking for. It’s never a rejection, but an invitation to grow.