I applied through a recruiter. The process took 4 weeks. I interviewed at The Trade Desk
Interview
Initially, you get a hacker rank task to complete online. Next, a three-stage interview process begins, the first one is a problem-solving interview based on a hacker-rank-like task which you need to complete with the interviewer. Next is a programming/technical interview to see how you do coding to solve a problem. Finally, you have a system design interview.
Interview questions [1]
Question 1
How would you add multi-threading to this program?
Interview steps: 30 min HR screener, 1 hr technical screener, then a technical challenge, then a 1 hr technical review, then a couple of days later a rejection. Was invited for first round around 3 months after my CV reached them. I believe they could not find a suitable candidate.
Following the technical screener, I was invited to take a 4-hour HackerRank test. After asking to double-check the language choice, the challenge was now time-unlimited, and after asking for clarification of the change I was told that you are given 30 days, but candidates typically take 8-16 hours to do it. The requirement is to make it scalable and extensible. You are asked to send your questions to a group of people including HR and technical staff, who would then help clarify the answers. They did correspond with me on the questions with good answers and I submitted a full solution with benchmarks, documentation and similar.
Afterwards, I was invited to a technical interview with 2 developers to review the solution. This was one of the hardest interviews I have had. I definitely could have done better in terms of communicating with them to understand what they mean, and my feeling at the end was that I would likely be rejected. A couple of days later I received an automated rejection e-mail, but what I did not expect at all was to be told that in my solution 'there were a few issues that did not meet the bar'.
I asked HR to clarify and they kindly offered to go on a call to discuss, which I really appreciate (some companies would not bother). Over the phone, I was told that the solution was good, and the rejection was due to not being able to answer a question at the last round of the interview, which is fair enough.
Based on my experience, apply only if you have solid Computer Science fundamentals (I am not of CS background), or if you have no other low-hanging fruit opportunities (due to time investment in the challenge). I am not saying this in a bitter way, but simply because of what they do, they really need that solid understanding of algorithms and low level details, constantly, every day.
Do ask for a high starting salary with this company because if they hire you, you are one of the select few that they really are looking for.