As an aspiring developer, you may be asking yourself: How does the hiring process for a junior developer job look like? What do companies look for in a junior candidate? What should junior developers be looking for in a company?
The following post aims to answer these questions.
The hiring process
Hiring processes for developer positions tend to all follow similar steps. Each step is aimed at filtering the candidates based on different criteria, and the hiring process consists of moving on to the next step until you reach the end of the funnel.
- Apply: Although it is not uncommon for companies to source candidates (known as active recruiting), for a junior profile, most often than not, you will be the one applying (passive recruiting).
- Screening: The first filter of the funnel is handled by the company’s Human Resources (HR) or Talent Acquisition team, where they screen the profiles and discard those which don’t match the job’s requirements. This usually involves a call where the company’s representative will go through some general questions like availability, notice period, existing open processes with other companies, salary expectations, etc… and other HR matters. Sometimes this screening process may also include some technical questions, but usually nothing too sophisticated.
- Take-home test: A common way for companies to assess a candidate’s technical expertise without having to involve the whole hiring team from the start is to have a test –a small project or set of coding exercises– for the candidate to do “at home”. These may vary from a 2-hour coding exercise to a full weekend mini-project. Some times they may time-box it to limit the amount of time a candidate has to “cheat” by researching existing solutions. Even if you are not actively looking for a job, these tests are a great way to find out what skill-sets companies are looking for, to challenge yourself, or to try new things. But you also need to be aware of the time investment you’re committing to if you are in more than one recruiting process.
- The interview: If the hiring team, which usually consists of the developers you’ll be joining, approves the test delivered, they’ll invite you to do an interview. The interview itself may be divided into different steps, with different teams and different challenges; but, for junior positions, they will probably not be so demanding and it will consist of a single one or two-hour interview. The purpose of this interview is to assess the technical skills related to your technology (known as hard skills) and other relevant skills which may not be related to coding (known as soft skills). So expect to be asked questions about programming languages and frameworks, but also about team spirit, coping with stress or professional ambitions.
- The offer: Offers are normally separate from the interview, since the company may want to go through a batch of candidates before making a decision.
There is much literature about how to prepare for technical interviews. This is out of the scope of this post, but bear in mind that, for junior positions, the focus will not be so much on the technical side, but on the potential.
What do companies look for in a junior candidate?
First off, it’s not what companies look for, but what teams look for. The hiring team will normally be the team who is looking for a new colleague to join them, so, although companies have overarching values and requirements, it will be the team making the final decision.
Here are some quotes from engineering leaders and managers on what they look for when hiring a junior candidate in their team:
The most important thing to me is humility and willingness to learn.—Emili Parreño (Director of Platform at Stuart)
Proactivity and willingness to learn, try new things, put in doubt established stuff, curiosity, and base knowledge.—Albert Vico (Data Engineer Manager at Stuart)
We look for someone with passion. Becoming a good developer takes a lot of continuous learning and many hours of frustration. You need something that drives you to make it through.—Naoise Golden (Director of Applications at Stuart)
You’ll find more quotes on the slide deck embedded at the end of the post, if you are interested.
Interestingly enough, the focus is mostly on soft skills, rather than on hard skills.
Hiring a junior developer is a bet: what you contribute now is not as important as the potential you have to contribute down the line.
Looking for 👍
- Passion (curiosity, initiative, proactivity)
- Willingness to learn
- Good technical base
Not interested 👎
- Focus on salary over learning
- False humility
- Bad technical base
“I’ve been doing online courses and attended bootcamps to learn how to code, but where do I get those soft skills now?!” I hear you asking. Taking for granted that any company will be expecting good technical skills, here are some ideas on how to hone your soft skills:
- Take on side projects or open-source software contributions. They are great to build experience and to have a proven track record before you even start, but also to get used to communicate with other developers and get code reviewed. Many open-source projects have tasks with the #goodfirstissue label, specifically aimed at junior developers.
- Do a realistic assessment of your strengths and weaknesses.You don’t want to fall into the Dunning-Kruger effect on a job interview. Reflect on your skills and ask your colleagues and mentors about your strengths and weaknesses. Honesty and a clear vision of what you can give and what you need to improve on will go a long way in an interview.
- Know what drives you, what you like about this job. Introspection is a key skill in life, and it isn’t any less important in a process as important as finding the people with which you will be sharing the rest of your foreseeable life. The hiring team will want to know what your motivation is to become a better developer and a good teammate.
- Have a clear idea of where you want to be and know what you want to learn. “Junior developer” is just a temporary title, the starting point of your career; there is still much to learn and different paths ahead. Knowing what these may look like will make it easier to decide what type of company you want to join, and vice-versa.
- Experiment with different languages and frameworks.You may have focused on a specific technology and framework, and this may be enough to get you a job; but, like anything in life, expanding your horizons and branching out will make you more resilient to changes and lay in front of you more possible paths to follow. This is so important that it even has a name in the hiring world: a t-shaped skillset.
- Learn how to learn. You will be expected to be able to learn by yourself. Although (hopefully) you will have more senior colleagues that will help you, growing as a developer is a continuous exercise of self-learning. Know where to get the information you need and, especially, where not!
- Follow the industry. An important part of the process of learning is knowing what to learn. Following industry leaders on Twitter, being subscribed to a technology newsletter or podcast, or knowing which are the best news curator sites is a good way to be in the loop.
These are some ideas based on my personal experience on both sides of the hiring process. I am sure there are many other good ideas out there; please share them in the comments if you have any.
What should a junior developer look for in a company?
It’s probable you won’t get to pick and choose in a junior developer job market. But regardless of the job market, as a junior developer there is one main thing you should be looking for in your next company: it should help you grow. Every company you join should help you gain the necessary experience to advance your career in the way you want.
There are some red flags that can help you understand if a company won’t fit this principle:
- 🚩 No senior developers. This could mean the company has nothing to offer to more senior developers. It is a bad prospect if there is no one to mentor you.
- 🚩 No training program. They don’t need to have a full-blown internal university, but they should be able to answer the question “what tools can you offer for me to learn and grow?”
- 🚩 Contributing to production from the start. As mentioned earlier, junior developers are expected to grow within the company. If the company is expecting you to be productive from the start, they may just be after cheap labor. This also means that you will have to deal with bad quality code from junior developers before you.
- 🚩 Low Glassdoor reviews. This is true for any position at a company, not only for junior positions.
- 🚩 High employee rotation. Check how long employees have traditionally stayed in the company by doing a search on Linkedin. If people tend to leave early, it could mean that there is no chance to grow. It could also mean that people learn a lot and are able to move to better paying companies fast, so make your own conclusions.
Note how ping pong tables, big salaries and other perks are not that relevant when learning!
How about salaries?
Salary shouldn’t be the main drive at this point in your career. It may even be a deterrent for the hiring team if they feel that you are more focused on making a quick buck than in growing technically. In this industry, chances are you’ll get increasingly good salaries as you grow technically.
The hiring team may be taken aback if they feel that a junior candidate is more focused on making a quick buck than in growing technically.
Here are some resources and articles to know what salaries look like for developers on different experience levels:
- Glassdoor is your friend when researching companies and salaries
- Transparency at Stuart Engineering
- Salario de un programador en España en 2017
- What is the average software developer salary around the world 2020?
How about full remote?
I wouldn’t expect nor recommend going full remote as a junior developer. Learning benefits greatly from interaction happening In Real Life™. Serendipity and happenstance with colleagues and mentors is invaluable when starting in a new industry.
Working remotely is definitely interesting to many people. In my experience, being “full remote” is in itself a skill. Furthermore, it’s a skill you can only get with experience. So you’ll need to grow it as any other skill by working in remote-friendly companies who have remote team members and a remote-first mentality. Definitely look for that when you choose a company if this is your end goal.
If you’ve taken the first step to start a career on software development, you’ve got a great path ahead of you. A key point on this path will be the hiring process.
Behind every interview there is a team eager to welcome you as a new colleague; and they will be looking for someone as eager to join them as they are, someone who will give the best they have to offer. Although basic technical skills will be a must, there is just as much importance put on the potential you show to become a great developer down the line.
I hope the suggestions here help you on your first steps on this path!
Check out the presentation that inspired this post.
Like what you see? We’re hiring! 🚀 Check out our open engineering positions.