Photo by Brendan Church on Unsplash

My journey to Spotify

Matteo Pasotti
10 min readJul 14, 2022

--

In this article, I want to share my path to Spotify as Software Engineer, from failing the final interview three years ago to accepting their offer a few months ago. I think it could be helpful for all the ones that are trying to smash the long interview process or that have just faced a strong setback in their career, independently whether they work in tech or not. There will be some links to resources that I used and some tips, but I don’t want it to be a super technical article that only devs can understand. It’s a mix of those things but also personal thoughts, behaviors, and events that happened in my life.

Also very important, I am not representing Spotify in this article and my experience might differ from yours. I will not share any private information about the content and questions of the interviews.

First Attempt

My first attempt has been three years ago, I moved to York in the UK in January 2018 and after almost a year I decided to send my resume for an open position as Android Engineer, with no hopes or expectations for an answer. Not only did I receive one, but I also passed all initial the steps: First generic call, technical interview, and behavioral interview. It was then time to face the final boss, three hours interview in their HQ in Stockholm. Now the process has changed but it used to consist of one hour of System Design, one hour for Show & Tell where you were asked to present and talk about a project, and another hour of a behavioral interview.

I still remember the day before the interview, seated in that McDonald's in front of their office, listening to some music while observing what was my dream in front of me. I left Italy in order to pursue a better career, and I believed that working for an important tech company would open many doors, giving me many opportunities for learning and visibility related to the company’s name.

I did not get the job, even if I thought that went quite well. That was probably the first thing that I learned, when you apply for these big companies they have hundreds of candidates and they can afford to be picky. So do not aim for mediocrity, aim for perfection. The best version of yourself.

The badge that you have to print before entering the office
Mc Donald’s in front of Spotify HQ in Stockholm

First Learnings

I think that a failure is a failure only if you learn nothing from it. Successful people do not fear failure because they know that it is the best way to learn and grow.

Let’s start by sharing the feedback that I received at that time from them:

In the behavioral interview, my examples were too personal, not concrete ones that happened at work.

I did not complete the System Design interview, took too much time at the beginning and they have not been able to ask me enough questions.

The Show and Tell went very well, the only missing part in my project was the unit tests.

This is what I learned:

  • Take notes while working. When it’s time to prepare for a behavioral interview you will struggle to remember real examples like when you showed leadership skills, how you behaved when you made a mistake or when you helped a colleague, etc. So I suggest creating a document and keeping track of your learnings.
  • Do not underestimate the System Design. Start high level, clarify the requirements, and do not jump straight to a conclusion. We will see in the second part how I prepared for this type of interview, but do not dedicate all your time only to the coding interviews.
  • Soft skills and Tech skills are equally important. You can have a strong and solid technical knowledge, but if you can not collaborate well with others, or if you are not able to admit when you made a mistake, then you are not going to be a good fit for these companies. This depends in part on you but also on the company where you are working. If you are working in a place where no one asks and cares about your opinion, where there’s not much teamwork and collaboration, where you have to start a timer when working on something and stop it when taking a coffee, then you probably need to find somewhere better.

A change toward Growth

That experience made me realize that it was time to work in a bigger and more international environment that could give me the opportunity to take on more responsibilities, facilitate meetings, standups, retrospectives, understand the principles of an Agile team, and more pair programming or mobbing. All things that I have found when working at Booking.com in Manchester, a lot of learnings that helped to get promotions later on in my career.

I also wanted to push myself outside of my comfort zone and improve my public speaking skills, so I started to give tech talks. I wanted to feel more comfortable when presenting in front of other people in a language that is not my main one.

“Is my English good?”

“is my accent too strong?”

“Do I know enough about this topic? what if someone asks me something that I do not know?”

All thoughts that I had in my mind, but persisting with that I ended up talking at Sky, Revolut, Busuu, and also at the Google European HQ in Dublin. How did this help me with the second interview for Spotify? Well, it gave me more confidence in my skills, improved my communication and presentation skills, and made me more familiar with uncomfortable situations which resulted in me feeling way calmer during the second interview.

From a technical perspective instead, I studied Software Architecture and Design Patterns very well, learning how to structure the code well enough to make it testable and readable. This not only helped me to get the job on the second attempt but it also brought me to get some promotions along the way.

Second Attempt

Life is a cycle of good and bad moments which repeat itself infinitely, one day you’re at the top of the wave, and the day after you’re under the water, trying to swim your way out.

This year started in the most horrible way for me, with my mum being diagnosed with breast cancer on the last day of the year ( Happy New Year Matteo! ). I will always be thankful to Gymshark which allowed me to work from Italy so I could stay close to her. It’s been hard, there was no room for career or relationships in my mind, only for her.

What did happen next?

The surgery went well, the cancer was small and we took it in time. Then Spotify, Facebook, and Google were all knocking on my door proposing interviews.

Let’s stop for a minute and re-read these last lines…

Life is absurd sometimes.

Spotify has a new policy of Work from Anywhere, which allows its employees to relocate to a different country where the company has an office. It was perfect for me because I have always wanted to relocate to a warmer place on the sea. I had a call with Google too but they were able to relocate me only to Germany, Poland, Romania o England (It might depend on the team). Instead in the case of Facebook, they gave me a day for the first interview too late.

So Spotify it is.

Their new interview format and my preparation

My first call was just an informal one with one of their recruiters, I talked about my work experience and why I was looking for a new job. This might be different for you and they might decide to ask you other questions about your career, or even behavioral or technical questions. Again, this is just my personal experience.

The first technical interview consists of 75 minutes call, where the first 15 are for introducing yourselves, presentation of a project (personal or from work), generic questions about Android, then 60 minutes of live coding.

In this step, I used a personal project where I could show my strongest skills: My knowledge of Software Architecture, Design Patterns, and how to handle heavy tasks in the background. I also explained how to make every layer of the architecture testable, something that I did not do in the first attempt. So use your strongest weapons here.

An important aspect that they pay a lot of attention to is that you have to be able to communicate thoughts and decisions well throughout the whole interview, even during the live coding part. In this last one, you will be asked to solve a generic coding problem, so nothing Android/IOS related. I can’t tell you what they asked me, just make practice solving some problems on Leetcode, level easy/medium will be fine, and have a look at data structures. I can also suggest not jumping straight to a conclusion, but talking to them, and working together. They are more than happy to help you, so do not be afraid to clarify all the requirements and cover edge cases before starting to write code. Listen and talk to them, they will give you tips and try to put you in the right direction. Do not panic if you can not complete it, I did not on my first attempt and passed it anyway. Again, they evaluate different skills.

A great positive change in this new format is that they will give you feedback after passing the first technical interview. Write it down and keep it in mind for the final interview, they want to see if you learn from your mistakes, and also if you have a feedback-oriented mentality.

The final interview is 4 hours and not 3 as before: System Design, Generic Coding, Behavioural, Android Coding.

They will send you a calendar with their availabilities in order to pick up a day, so it’s up to you when to do it. Take your time and don’t rush it, do not worry that someone else might get the job before you, they have many teams with different open positions. In fact, even if you applied for a specific position they will propose the team that they think might be the best for you based on your performance during the interview, and company needs.

Talking about preparation, the first and most important tip that I want to give you is to organize your time and studies based on your current skills.

I had 3 weeks of time and decided to fully dedicate the first half of it to the System Design interview, the one that worried me more. It might be different for you and prefer to dedicate more time to the Coding interview instead, it’s totally up to you and what you consider to be your weakness.

These are the resources that I have used for the System Design Interview’s preparation :

  • Alex Lementuev Youtube channel: He works at Google and does mock mobile system design interviews on his channel.
  • Interviewing.io: Anonymous technical mock interviews with engineers from Google, Facebook, and other top companies. I have used it for System Design and also Behavioural. Great experience, worth the investment.
  • Friends or people you know: Here I want to thank Pierfrancesco Soffritti, Software Engineer at Google, we did a mock interview together. Thanks for your time and tips Pier! (If you speak Italian, here we interviewed Pier in my podcast).

I have then dedicated the other week and a half to the remaining tests. For the Generic Coding one, I did a good number of exercises on Leetcode, and read the book “Grokking Algorithms: An illustrated guide for programmers and other curious people”, which can give you the basics about data structure and algorithms.

Android Coding instead, what I can say is that I made practice doing things that an Android Engineer MUST know. Also, please keep talking! Always explain what you are thinking, they want to see how you get to the solution and overcome obstacles.

The Behavioural Interview requires some time and preparation too, and the worst mistake you could make is to underestimate it. After passing the first technical interview you will receive some links like the one to their podcasts, and to their Band Manifesto, which is kind of like a document explaining the company’s values and other things about Spotify. I listened to some episodes while walking around town, or while training at the gym, trying to understand what they evaluate most and if I had some real experiences that I could use during the interview based on their values. So this is what I am suggesting, use these resources and if something comes up to your mind then write it down somewhere. My technique was to write the example and then the values which it represented, in this way you will know which example to use and for what.

Eg. “That time I suggested introducing that new technology in our project because I believed it to be perfect for our needs. We learned and worked all together, it was so motivating and engaging for us. Once introduced and tested, I prepared a presentation and explained our work to the rest of the company in order to share the knowledge.” Innovative, Passionate, Collaborative.

Last but not least, I want to suggest these books: Manifest by Roxie Nafousi, Good Life Good Vibes by Vex King. I believe that this time I got the job because I kept studying in these last years, did not quit, and kept believing in myself, but also because I had a different mindset and it is also thanks to these books. When in the middle of the process I imagined myself taking a picture of my first day at the office in London, with the Spotify Logo behind me. I manifested it, and believed in myself, something that I did not on the first attempt. That time I could not believe that somehow I managed to get to the final interview, it was a miracle. But if you do not believe in yourself, who else will?

Conclusion

If you got to this point, you are a hero. Quite a long article I know, but I could not summarize in a bunch of lines a story that started three years ago. I wanted to give you proper tips and explanations, and I hope you found it useful somehow. If you are looking for a job and need a reference for Spotify, or if you simply want to connect, this is my Linkedin.

I will probably write another article in the next months regarding my first impressions and learnings working there, so keep an eye open! :)

Thanks for reading, Matteo.

--

--

Matteo Pasotti

Software Engineer @Spotify, Podcaster, Moving between countries