When I started applying for jobs the first time as an engineer without a diploma I could only find information on getting jobs at large companies. I created this series of articles to help you crack the coding interview at all kinds of different companies, so you can choose the opportunity that fits you the best.
The process for interviewing tech candidates is a multi tier process designed to reduce false positives. By being skilled at interviewing you can dramatically increase your chances of getting an attractive offer.
Interviewing is a skill anyone can acquire, you can be an average programmer, but have honed your interview skills and you will likely be favored over an amazing engineer that doesn’t know how to interview or communicate their worth to that specific company.
In this series of articles you will learn:
- What companies are looking for in a candidate. (you are here)
- What you need before interviewing.
- How you can get tons of interviews.
- Behavioral questions.
- How to ace technical questions.
- White boarding.
- Algorithmic and programming skills for coding interviews.
- Handling rejections.
- Evaluating the offer.
- How you can negotiate the best salary and benefits.
- Getting on boarded to your new job.
I’ll also share some great resources for you to learn and practice your skills.
Getting the job is all about being the best candidate, and that doesn’t mean being the most experienced engineer or developer. Matching what a company is looking for gives you the best chance of getting an offer, so let’s start by understanding what companies want.
What companies are looking for in a candidate?
Depending on the company you are applying for you will have a different experience, and may end up not having to do any algorithm challenges at all, smaller startups usually skip that as they don’t have ironed out their recruitment processes.
But, for larger and competitive tech companies, they want to hire someone that can perform well with analytical skills and translate that into code. So they are going to ask algorithmic questions that you likely haven’t seen before.
The overall guidelines for hiring
These are the overall guidelines to keep in mind when preparing for interviews, by knowing how companies think, you give yourself a much better chance of meeting their expectations.
- The company has a demand for more programmers and have a general idea of what they want to pay for them.
- Companies will favor candidates who will be productive and not liabilities to their team.
- Hiring junior programmers means to take on considerable risk in resources, so they will look for the right junior programmer, someone who can learn and adapt fast to their environment.
- Bad hires negatively affect the culture, productivity and bottom line of the company.
Small vs large companies
Different size companies look for different things. Large companies want someone that has strong problem solving skills, regardless of your tech stack and language of choice. Smaller startups will prefer candidates with skills specific to their stack but could also wear many hats, training new employees on a stack they never used before can be very costly to them.
A lot of software engineers wonder why they have to study binary trees and linked lists even when applying for front-end jobs at the larger tech companies. The main reason for it is because larger tech companies want to avoid hiring someone that hasn’t developed a way of thinking to solve complex problems.
I have applied to multiple smaller startups and I never had to solve algorithmic problems with them, they either asked me to make a small project based on their set of requirements using a specific tech stack, or we did some kind of pair programming that would tackle a specific skill of software development, in my case it was a Test Driven Development pair programming session.
Regardless of the company size, they will want to know if you are capable of understanding the vision, working in a team and communicating.
So from the very first call, try to be professional and pleasant. I’ll describe this aspect of the interview process with more depth in the “Behavioral Questions” section of this article series.
A lot of times I found that the definition of “culture fit” is arbitrary, being friendly and communicative is your best bet.
This is where beginner programmers struggle, it’s not uncommon to find yourself in the catch-22 of needing experience to work, but needing work to get experience. When I was starting out what I did was add my experience with personal projects and a description of their challenges and how I overcame them in my portfolio.
As a beginner, you might also consider getting your first job at a smaller startup first, staying at your position for a year or so while you gather experience and practice algorithms to later apply for larger tech companies. A lot of software engineers do this.
If you are great at communicating and demonstrating your competence, that will bypass the companies checklist for experience. This is how engineers without diplomas get jobs (like me). That is why it is very important to have your portfolio built with the intention to get a specific kind of job (more on that later in this guide).
A big part of doing well in your interviewing is understanding how your interviewer thinks and what skills they are looking for.
For example, if you are talking to an HR representative, you may not want to spend time talking about technologies and challenges and focus more on how well you work together with other programmers as well as your overall experience as an engineer.
Who is interviewing you?
Here is a short list of the people you may speak to and which topics you should focus on:
If the founder of the company is interviewing you, it means you applied to a small to medium startup. Founders are mostly focused on whether or not you understand what their business is about, demonstrating that you share the vision is essential to communicating with founders.
Founders want to hire someone who can self-start and help the implementation of their solution through the product, as well as someone who can easily integrate with the culture.
When speaking to a founder, talk about your opinions of the solution their business provide and the industry they are in, describe some challenges that you may have provided solutions for.
The CTO will have some similar concerns as the founder, but the main focus of a CTO is to hire the candidate who advocates the same development philosophies as the company. Talk about test driven development, architecture and how important version control has been to your projects.
A CTO is also looking for a fast learner with the competence to take on greater challenges over time. So try to demonstrate the growth you had as a developer.
Engineering Managers are most likely to be present in medium to large companies. They will evaluate your communication and problem solving skills.
You need to communicate successfully that you are very productive and capable of communicating or solving the issue of having your productivity blocked (either by other team members or unrealistic requirements with short deadlines).
Product Managers aren’t coupled with the technical details and they tend to be inclined to hear about your interest in working with the product and solution they provide and the industry they operate in.
They may also want to hear about your experience with certain tools used within organizations like Jira and Confluence. Or at the very least your experience with the Agile way of thinking and it’s frameworks for workflow such as Scrum, Kanban and XP. You don’t have to be a master of them all, but it is favorable to at least be familiar with those terms.
An engineer isn’t as worried about the financial ramifications of a bad hire, instead their prefered candidates are the ones who demonstrate team fit and competence.
They will gauge your abilities with the technology stack being used as well as how well you communicate what you are thinking. The engineer will be someone you will actually be interacting with on a day to day basis, so demonstrate friendliness and try to build some rapport during the interview. You can do that by commenting on some of the quirks of the tech stack or development life and paraphrasing some of the comments from the engineer (that’s a jedi trick used by negotiators to build rapport fast, more on that on the negotiation section of this master guide).
HR reps will likely ask you the same questions they would ask anyone working at any department, they will gauge your interest in the company, how well you communicate as a human being and how familiar you seem to be with the specific technology stack.
A common issue I’ve seen some beginners make is to try to correct the HR rep, unfortunately, HR rep interviews have the highest chance of resulting in a rejection for no logical reason at all besides the representative not understanding what the candidate has communicated, they will likely be listening for certain keywords such as: “Test driven development”, “increase performance”, “Agile” and whatever other keywords the job listing may have described.
Employees from other departments (such as UI/UX designers)
Interviews with non-manager and non-engineers tend to be focused on how well you communicate with other departments, if you are speaking to a designer communicates that you can explain the engineering requirements in terms anyone can understand (don’t be blunt, say something like “I know how to describe the requirements of an engineer across departments without resorting boring technical terminologies”, labeling the pain point of that hypothetical interaction increases your rapport, when explaining engineering concepts give context and a short and simple narrative).
Part 1 Conclusion
Being a good applicant matters more than being a good engineer when applying for jobs. Of course, your technical skills will still be tested during your interview.
But, this wouldn’t be a master guide of how to crack the coding interview if we didn’t consider all aspects of the interview and when I was applying for jobs I couldn’t find a lot of content that described how to do well in ALL interviews instead of just large tech companies.
If this guide has been valuable to you, please share it with someone that may be going through the same hoops as you are, having a partner that you can have mock interviews with is a valuable asset in your development of interviewing skills.
In Part 2 of this guide, you are going to learn what you need to do before getting your interviews to maximize your performance.