The interview consists of multiple stages:
Introduction to Engineering with your Engineering Manager (1 hour)
Technical Interview with two Engineers - Bi-Directional Code Review (2 hours)
Hyperexponential Values with our Head of Engineering, Alex Bennet, and another member of the Leadership team (1 hour)
Before stage 1, you need to answer a few questions from their list (3 out of 20, as I remember).
Stage 1 was a typical interview with casual questions about previous experience and some standard technical questions like the difference between threads and processes in Python, along with some company information.
Between stages 1 and 2, you need to complete a simple showcase project. For example, reimplementing one of the Linux console tools (limited scope) with pure Python is required, typically comprising a few hundred lines of code. You also need to review their simple project (less than 100 lines of code but with noticeable mistakes).
In their guideline for the showcase project, everything was by example, so I decided to do something different. However, when I asked them if my idea would suit, they sent me a message to stay within the provided options from their guideline. It was like:
"Let's implement X in pure Python (no dependencies)"
"We worry that to implement X, you will need a lot of dependencies, so please stay with the options from our guideline."
Okay, I didn't want to spend much time on it, so I asked ChatGPT to implement a subset of one of the Linux tools from the guideline. After cleaning up and refactoring ChatGPT's mess, I submitted my project but received a message that said, "Everything is as mentioned in our guideline, but we want to see something different with multithreading to spark our conversation during the technical interview."
Why couldn't they have specified this in the guideline? I should have left at that point, but I decided to see it through since I had already invested a lot of time. I implemented a new tool with the new requirements. At the same time, I did a code review of their project, which led to a conversation of over 30 messages in the GitLab repo. Between stages, we also had over 20 email exchanges about scheduling stages and other interview details.
Then we had the 2-hour interview. It was long and exhausting. During that interview, we reviewed, line by line, the code of both their project and mine. There were no questions about system design, isolation levels, or other typical interview topics—just plenty of Python-related questions.
Ultimately, I received feedback that my technical expertise was not sufficient.
Overall, I spent more than 8, possibly even 10 hours on this interview process. There were only a few basic questions and no LeetCode tasks but excessive written conversations about questions like "How do you decide when to use a magic method and when to make an explicit method for your classes/data structures?" I think I performed well, and my only mistake was missing an error in their poorly written project during the review (though I found it during the technical interview).
If you have a lot of free time and want to work at this company, you can give it a try. However, if you value your time, it may not be the best option.