(Backend) Engineer Hiring Process

Around one year ago I was considering applying for an open position as a Backend Engineer at Vinted. At the time I was still in my first ever IT job, and had very little experience with job interviews. So I decided to do some research. I couldn’t find out what the Vinted hiring process looked like, but I did come across a Hacker News post featuring System Design Interview tips - and luckily discovered that the github account also had tips for coding interviews. The latter mentioned algorithms (which I wasn’t so good with) so I found a course on Coursera and decided to go through it before. At this point you can probably tell that my self-doubt was spiralling. Thankfully, after a few weekends in the library I realised that I may have been going a bit overboard with prep for just daring to send over a CV.

Fast forward to today, and I’m now a proud member of Vinted’s Engineering team. And I’ve since even had the chance to participate in the other side of the hiring process! As I’ve experienced first-hand the fear of the unknown when it comes to interviewing, I decided to share how the Engineer Hiring @ Vinted actually works. I’m going to focus on the Backend Engineer hiring process, but the general steps (intro meeting, homework assignment, technical interview, try-out) are the same for all candidates. Now let’s go into more detail on each of these steps.

Intro Meetings

When I went to my intro meeting I didn’t really know what to expect. I assumed it would be an official meeting in a meeting room, where I’d be quizzed - and need to know the right answers. But on the actual day, the team lead who interviewed me and I just hung out in the canteen (Vinted Noise), and talked about what I was currently doing, and how those things looked at Vinted, etc.

Now I know that this is exactly what an intro meeting at Vinted should look like. The goal of this meeting is to get to know each other, and to understand the expectations of both sides. You won’t be quizzed on anything here, you’re just invited to chat about what you do and what you like about it. You’ll also be offered some information about Vinted and the position you’re applying for. If there is something specific you want to know, something that’s really important to you in a job (e.g. engineering practices, culture, community) or something you’d really like to avoid, it’s a great place to ask.

Homework Assignment

As an assignment, you’ll be given a technical problem similar to common ones that we work on here at Vinted. You can choose how much time you want to invest in it. I think this choice is really important. Back then, I spent around a week on my assignment, polishing it every single night after work. Anticipating all the praise I would get. But in reality the feedback wasn’t so great - I ended up over-engineering things. What the reviewer said really stuck with me; “You want to treat this as your production code”. For me that means finding the balance between polishing things too much and wasting the precious time to market and being sloppy, leaving a mess for future generations (or future me).

You’re also free to pick the programming language. Although it could of course be tempting to use the occasion to try out something shiny and new, I strongly recommend using one that you’re familiar with. Here at Vinted we place a high value on consistency and following language code style. Some other things we focus on during homework reviews include:

  • Requirements: Are you able to follow the requirements? Does the code produce expected results?
  • Code quality: Is the code clean and simple? Easy to read?
  • Solution design: Is it easy to extend and maintain? Or is it a bit over-engineered?
  • Testing culture: Is the test coverage sufficient? Was the code easy to test?

Technical interview

The technical interview lasts for around two hours and consists of:

  • Introduction (interviewers introducing themselves to you and vice versa)
  • Homework review
  • Homework modification
  • System design assignment
  • Q&A (where you can ask a few questions)

It is possible to have a short break in the middle - don’t hesitate to let the interviewers know that you’d like one.

Homework review

You’ll be given an opportunity to explain your solution, the reasoning behind design decisions, and to discuss it with the interviewers. These will be the same people that reviewed your homework, so they will be able to provide feedback - what they liked about it, and what could be improved.

Homework modification

The aim of this part of the interview is to change the code to comply with new requirements. We want to see if it’s easy for you to find the parts that need to be changed, and if they’re easy to modify and extend. Back when I was doing this I felt super stressed. I was also slower in my thinking, because I kept being distracted by the thought that “Surely there’s no way that other people get so uncomfortable with the assignment?”. Now I know that they do. Especially if they have as little experience with technical interviews as I did. This is simply not the way we’re used to working, and it’s completely fine to not be totally comfortable with it. This is actually what the interviewers told me when I was obviously stressing out. And it’s what I try to remind people now.

Another thing that didn’t go so well for me - my laptop requires a HDMI-micro connector to connect to a monitor. And I forgot to mention that or bring my own. A chunk of time was quickly wasted on figuring out how I could share my screen and make changes without needing to huddle up with the reviewers on my laptop. To avoid this you should:

  • Bring your laptop to the interview
  • Make sure you have the environment ready to edit, debug, and run the code
  • Make sure you will be able to share the screen

System Design Assignment

Similarly to the homework task, the System Design assignment simulates the engineering work you would do day-to-day at Vinted. You’ll need to collaborate with the interviewers to design one of Vinted’s sub-systems. I think this is a really helpful way of looking at it - at least it helped me a lot. I love discussing design, and drawing ideas on a whiteboard. So I just kept trying to pretend this is a normal day at work to reduce the pressure.

How to prepare: The technical competences we’re most interested in are data persistence, caching, performance, data structures and algorithms. Feel free to freshen up your knowledge on these, but remember you’re also not required to do so.

What we are looking for:

  • Communication skills: How are you able to clarify the requirements and get the necessary information?
  • Decision making and reasoning: Are you verbalising your thought process and explaining your reasoning clearly?
  • Knowledge and experience: What are the problems and technologies you already have experience with?
  • Problem solving: Are you able to think on your feet and change the solution when new requirements come along?
  • System design and architecture

As you can see, you’re not expected to come to a specific solution - we want to see the steps you take to reach a solution.

Try Out

This is the part where you meet your future teammates. Although it is still a part of the interview process and the team is interested in seeing how you fit into its dynamics, I think it’s also a great opportunity for you. It’s a chance to get to know the people you’ll be working with, and experience the teams’ day-to-day life. It can really make the job switch easier - at least it did for me. I took some time off in between moving over to Vinted in order to fully recharge. But in that time I attended a team building and Vinted party - because I already knew and considered everyone my team after the try-out.

The format of the try-out depends on both the team and the circumstances, so your future team lead will provide the details when the time comes.

How to prepare: No preparation is needed here. This one of those cases where the advice “just be yourself” fits perfectly.

Conclusion

I’ve tried to shed some light on both the practical (requirements and preparations) and the personal (stress that I’ve experienced) sides of the hiring process. This is because here at Vinted we believe in making sure the candidates feel as comfortable as possible. And I hope that finding this guide in your search results when you Google ‘Vinted hiring process’ will help even more with that.

P.S. Here’s a list of currently open positions if you want to try the process and see for yourself whether my description was accurate!