Junior developers - why we hire them and how we work with them

Hi all! My name is Katya Yudina and I am an IT recruitment manager in Avito. In this article I will tell you why we are not afraid to hire juniors, how we came to this and what benefits we bring to each other with them. The article will be useful for companies that want to hire juniors, but are still afraid to do so, as well as for HR's who are ready to drive the process of replenishing the talent pool.

The selection of junior developers and the introduction of internship programs is not a new topic. There are a lot of warnings, life hacks and ready-made cases around it. Every (well, almost every) more or less large IT company seeks to attract beginners. Now it's time for us to talk about our practice.

Junior developers - why we hire them and how we work with them

Since 2015, the number of Avito employees has been growing by ~20% year on year. Sooner or later we were bound to run into hiring problems. The market does not have time to grow middles and seniors, business needs them "here and now", and it is important for us to remain efficient and prompt in filling vacancies, so that the quality and speed of development do not suffer.

Junior developers - why we hire them and how we work with them

Vitaly Leonov, B2B development director: β€œWe have not hired juniors for six or seven years since the company was founded in 2007. Then they slowly began to take them, but these were rather exceptions to the rule. It turned out to be a very good story for both beginners and our developers. They acted as mentors, trained juniors, and newcomers came to a large company to start positions and trained on a number of tasks under the supervision of senior colleagues. And we decided to continue and develop this practice.”

Prepare

In the selection, we have not limited ourselves to Moscow for a long time, we are looking for candidates in different cities of the Russian Federation and other countries. (You can read about the relocation program here). However, relocation does not completely solve the problem of selecting middles and seniors: not everyone is ready for it (some people don’t like Moscow, others are used to working remotely or part-time). Then we decided to go in the direction of hiring juniors and launching an internship program in the Avito technical department.

First of all, we asked ourselves a few simple questions.

  • Is there really a need for juniors?
  • What tasks can they solve?
  • Do we have the resources (both material and mentors' time) to develop them?
  • What will their development in the company look like in six months or a year?

Having collected the information, we realized that there is a business need, we have many tasks and we understand exactly how we will develop juniors. Every junior and trainee, coming to Avito, knows what his career might look like in the future.

Next, we had to convince the managers that the time we spend searching for ready-made β€œunicorns” could be invested much more effectively in the training of junior colleagues, and in six months or a year we would have independent engineers.

I am lucky to work in a team that is ready to change and take a broader view of various issues, including hiring. Yes, when introducing such rates, one must be prepared for the fact that not everyone will be in favor. A well-formed plan for working with novice specialists, showing real cases, when hiring a junior is a plus, and highlighting all the positive aspects of this program will help to convince colleagues.
And of course, we promised tech leads that we would recruit only the most hardcore juniors, in whom we see potential for development. Recruitment with us is a two-way process, in which both HR and engineers are involved.

Release

It's time to define the portrait of a junior, decide for what tasks we will recruit them and describe how their adaptation will go. Who is a junior for us? This is a candidate who will be able to show development in the future 6-12 months. This is a person who shares our values ​​(more about them - here) who can and wants to learn.

Junior developers - why we hire them and how we work with them

Vitaly Leonov, B2B development director: β€œWe want to see those who know the theory well, ideally those who have already tried their hand at commercial development. But the main requirement is good technical knowledge. And we will teach them all the processes and practical skills.”

The selection process for a junior developer is not much different from an interview for a middle level. We also check their knowledge of algorithms, architecture and platform. At the first stage, interns have a technical task (because the candidate may still have nothing to show). We can give the task of developing an API. We look at how a person will approach the matter, how he will design README.md, and so on. Next comes the HR interview. We need to understand whether this particular candidate will be comfortable working in this team and with this mentor. Sometimes it happens that a candidate is not suitable for product development in our company and it makes sense to send him to the platform team, or vice versa. After the HR interview, we have a final meeting with a tech lead or mentor. It provides an opportunity to dive into the technical aspects in more detail and understand your area of ​​​​responsibility. After successfully passing the interview stages, the candidate receives an offer and, in case of a positive decision, joins our company.

Adaptation

Junior developers - why we hire them and how we work with them

Vitaly Leonov, B2B development director: β€œWhen I first started working in my first company, I really lacked a mentor, a person who would show my mistakes, suggest ways of development, tell me how to do it more correctly and faster. In fact, I was the only developer and learned from my own mistakes. It was not very good: I developed for a long time, and the company raised a good developer for a long time. If there was a person who would regularly deal with me, look at mistakes and help, suggest patterns and approaches, it would be much better.

Each new colleague is assigned a mentor. This is a person to whom you can and should ask different questions and from whom you will always get an answer. When choosing a mentor, we pay attention to how much time he will actually have for a junior / trainee and how much he will be able to correctly and competently start the learning process.

Senior colleague sets tasks. At the initial stage, a junior can start by analyzing bugs, then gradually dive into the development of product tasks. The mentor monitors their progress, conducts code reviews, or participates in pair programming. Also, our company has a common practice of 1:1, which gives us the opportunity to keep abreast and resolve various issues as quickly as possible.

I, as HR, oversee the process of adaptation of the employee, the manager - over the process of development and "immersion" in tasks. If necessary, we put an individual development plan during the trial period and after its completion we determine areas for further development.

Conclusions

What conclusions did we draw from the results of the program?

  1. A junior usually cannot work autonomously and independently solve all work tasks. Mentors should give them enough time to adapt quickly. This needs to be planned with tech leads and the team.
  2. You need to be prepared for the fact that junior engineers will make mistakes. And that's okay.

Junior developers - why we hire them and how we work with them

Vitaly Leonov, B2B development director: β€œEveryone makes mistakes - juniors, middles, and seniors. But errors are quickly found or not allowed at all - we have a well-organized testing process, all products are covered by autotests, there is a code review. And, of course, every jun has a mentor who also looks at all the commits.”

The recruitment program for beginners gave us the opportunity to solve several problems at once.

  1. Grow a talent pool of loyal employees who will fit our stack.
  2. Develop team management and development skills in our senior staff.
  3. To instill a love for modern technologies and high-quality development in young professionals.

And it was the same win-win. Here are the reviews of my colleagues who came to Avito as juniors and trainees.

Junior developers - why we hire them and how we work with them

Davide Zgyatti, junior backend developer: β€œAt first, I didn’t understand what was happening at all, I got a ton of useful information, but the mentor and the team supported me a lot. Due to this, after two weeks I already started working with the backlog, and after three months I gradually joined the product development. During the six months of the internship, I gained an immense amount of experience and always tried to make every effort to get everything out of the program and stay in the team on a permanent basis. I came to Avito as a trainee, now a junior.”

Junior developers - why we hire them and how we work with them

Alexander Sivtsov, front-end developer: β€œI have been working at Avito for a little over a year now. I came as a junior, now I have already grown to the middle. It was a very interesting and eventful time. If we talk about the tasks performed, I can say that I did not fix bugs (like all recently arrived ones) for a short time and received the first full-fledged product task for development in the first month of work.
June, I participated in a major launch of a tariff update. In addition, the guys in the team welcome, support and develop various initiatives that I brought.
The guys in the team are trying to help not only in the development of hard skills, but also to improve soft skills. Regular meetings with the manager help a lot in this (before I had no such experience and I could only guess where I was sinking or what I should pay attention to now).
It is very comfortable to work here, there are a lot of different opportunities to develop both within the company, attending all sorts of trainings, and outside it: from trips to conferences to all sorts of goodies in partner companies. Tasks are mostly interesting rather than routine. I can say that Avito and juniors are entrusted with complex and interesting tasks.”

Junior developers - why we hire them and how we work with them

Dima Afanasiev, backend developer: β€œI knew that I wanted to get into a big company, and with Avito it was love at first sight: I read almost the entire blog on HabrΓ©, watched reports, picked avito-tech github. I liked everything: atmosphere, technology (== stack), problem solving approach, company culture, office. I knew that I wanted to get into Avito and decided that I would not try something else until I knew for sure if it worked out.
I expected the tasks to be difficult. If you make a website for three people, then it can work an hour a day, and users will be satisfied. If for 30 million people, then the simple need to store data becomes a huge and exciting problem. Expectations were met, I can not imagine a situation in which I would learn faster.
I have now been promoted to middle. In general, I have become more confident and validate my decisions less, it helps to do things faster. Indeed, in any team, the speed of delivery is very important, and I more often inform post factum about all the decisions made in my area of ​​responsibility (now these are two services). There were fewer discussions, but the complexity of what was being discussed as a whole grew, and the problems became less obvious. But I also want to say this: good solutions can be promoted at any level, regardless of position.

Junior developers - why we hire them and how we work with them

Sergey Baranov, front-end developer: β€œIt so happened that I came to the junior in Avito from a higher position, but from a small company. I always tried to absorb more information first, and then start doing something. Here I had to start doing small tasks, just to figure out what products exist and how they interact with each other. It took about half a year to fully understand everything that my unit does, but by this point I was already doing medium-sized tasks with might and main on my own without any help. Separately, I would like to note that, regardless of the position, you are a full-fledged member of the team, with all responsibility, trust in you as a professional. All interactions are absolutely equal. I also had a development plan developed jointly with my supervisor and I knew perfectly well what I needed to do to develop and improve. Now I am already a middle developer and am responsible for the entire frontend in my team. Goals have changed, responsibility has increased, as well as opportunities for further growth.”

After almost a year, we see what benefits the guys bring to business and specific teams. During this time, several juniors became middles. And some interns showed excellent results and joined the ranks of juniors - they write code and solve complex technical problems, their eyes burn, and we provide them with professional development, an excellent atmosphere inside and support them in every possible way in their endeavors.

Source: habr.com

Add a comment