LeetCode Question · May 2022 · Remote

Spotify | Sweden - Remote | Screening + Virtual Onsite | Backend Engineer

Backend System Design Easy
52 upvotes 5,691 views 16 replies

Question Details

Screening Round Project and technical background discussion Talking about a project you did. Prepare something, and it should be in detail Domain questions Questions about JVM garbage collector(I specified java as my main programming...

Full Details

Screening Round
Project and technical background discussion
Talking about a project you did. Prepare something, and it should be in detail

Domain questions
Questions about JVM garbage collector(I specified java as my main programming language beforehand. Maybe they selected this question because of that). Also asked about what happens when you go to "www.google.com". (kind of a networking question). They asked some other, but i dont remember.

Coding exercise
Bunch of easy questions like "isAnagram", "reverseString", "isPalindrom". There was also "sumTo100" question. Listing all the pairs that sum up to 100. For example {1,99,99} -> [1-99] {1,1,1,99,99} -> [1-99, 1-99].

Virtual On-site

System design.

Design a system for uploading and assigning an image to the playlists. Each playlist consists of some random tracks. Scale was small, but then i was asked what would happen if a lot people started use our system afterwards.

Values (Behavioral)

A regular behavioral interview. I think it is based on the spotify values: innovative | collaborative | sincere | passionate | playful. Some questions i remember were:
did you affect anyone positively by helping them? Did you try a new approach in one of your projects? Did you take a constructive feedback and improved yourself based on that feedback? Did you ever facilitate teamwork? Did you fail at your task, why? how did you take that failure?

Coding

There are lists of tracks for each country(not sorted). Each track has unique id, but they can have duplicates for different countries(with same id of course).

Track class these fields;
id (unique for track)
country (String)
count(number of times track has been listened in the country),
genre (unique for track, does not change from country to country)

Implement these: getBestNTracksinACountry(String country, int n) , getBestNTracksGlobally(int n) -> for this one, you need to sum up the counts for each track.

I suggested using quick select to get best N tracks, instead of sorting, but they asked me to not waste my time and go with just sorting.

as a follow up, i was asked what happens if we got these requests too often. I basically prepared all possible lists before hand.

I suggest studying HashMaps, and custom sorting for this question

Case Study

It is a long one to explain. There is a system broken, you need to debug it. and system is the interviewer, you ask them do something, and they will return the results based on that.

There is an ADs system. There is a problem in US servers (but not on EU servers) displaying ads. Ads database reside in EU. What is the problem? In the end, I asked for logs in US machines, source code, and cpu/memory utilization of US servers. Problem was in the source code. If you also know about some specific technologies, like how to send http requests, how to redirect requests, how to access logs, etc, it would help.

Free preview. Unlock all questions →

Topics

Strings Sorting Hash Table System Design Networking