I had a Spotify technical interview with Matt Mercedes and a shadow. I don’t remember the shadow because she only spoke when I asked her questions.
The technical interview started with an introduction, followed by the actual interview. There would be two domain questions and an algorithmic programming problem.
The first domain question was to “explain the difference between a process and a thread”.
This question gave me flashbacks to a conversation I had with another engineer about an API Gateway (which may or may not be related to a failed startup): We spoke for hours while the engineer was engaged in — from their perspective — an argument over the vocabulary used to describe some microservices.
And the word “process” has 1000 definitions in and outside of computing...
So I totally fucked up the answer to that domain question.
The next question was, “What happens when you type google.com into your browser and press enter?” I answered that question well.
We proceeded to the LeetCode portion of the interview. It was a Python programming problem about the abstracted implementation of a sliding window algorithm with some constraints.
It’s recommended to ask questions that define the given programming problem BEFORE solving it. This recommendation aims to show the interviewer how you approach problems.
I asked the interviewers whether we planned to expand the solution, then implemented a solution that would account for said expansion. After I finished, Matt decided that we would not expand the solution.
I began “optimizing” my O(N) solution to O(1) by reaching for a dequeue, but Matt kept recommending against this data structure in lieu of some other “magical data structure”. I ended up implementing his data structure through fundamentals, but I am unsure if he recognized it: He ended that portion of the interview by stating that “the data structure I [he] was looking for was a circular buffer.”
This comment was unfortunate because A CIRCULAR BUFFER IS IMPLEMENTED IN PYTHON WITH A DEQUEUE...
So I was rejected for a better candidate — which may be fair given my response to the first domain question — since the role “required more experience”. What’s not fair is that an interviewer can be clueless about a valid solution to their own trivia interview question. We were interviewing for Podcast Monetization (Web APIs), not Computer Science research class!
I emailed Matt months later asking for feedback, but he didn’t see it or doesn’t care.