As most people have described, the interview process is lengthy, rigorous, and time-consuming.
My first step in the interview process was to take a simple and short HackerRank coding challenge. I finished under the time limit with a clean solution. A couple weeks later, a recruiter reached out to set up a one-on-one culture fit phone interview that lasted 30 minutes. I was not informed that this was a culture fit phone call until 15 minutes before the phone call, and I had assumed this phone call would be similar to Google’s phone interview style. This was frustrating because I had no idea what to expect going into a talk with a senior developer.
After the phone call, TTD reached out with an open-ended N-Way Set Associative Cache design and implementation problem, as described in other reviews. They gave the option of developing this cache in C# (with which I had no experience), Java (with which I have moderate experience), and Python (with which I have 5+ years of experience). I was under the assumption that TTD would have a developer fluent in Python – this came back to bite me later in the process. I had quite a few email exchanges with a developer about the requirements, assumptions I could make, early-stage design decisions, and other similar questions. While they responded quickly, I rarely felt that the developer read through my entire question, as each was kind of answered, but somewhat off the point I was getting at. I then built out my cache in about a week, complete with package build instructions, verbose testing, 10 pages of documentation, and a bunch of error handling.
They got back to me within a few business days about some follow-up questions that they had about my design. The questions seemed a little arrogant, and it certainly seemed like the questions came from someone unfamiliar with Python (i.e., did not know how threads are handled in Python vs. other languages like Java/C#). I felt that I answered these questions verbosely, justifying the parts of my designs I felt were well-thought-out and acknowledging where some of my flaws were, and several solutions on how to fix these issues were I to iterate my design. While TTD is one of the only companies that I’ve interviewed with that gives you feedback for why they decided to pass (awesome practice by the way, in theory, it should be helpful), the reason I got rejected was extremely frustrating and will likely turn me away from applying to TTD in the future:
I commend TTD for committing so much developer time to review a candidate’s entire caching library. I felt, in theory, that this was a fairer way of interviewing someone compared to a couple whiteboard interviews on data structures. However, I walked away feeling that they did not value design decisions that may be different from what they thought of when coming up with the prompt, that the developers did not read through my documentation or responses thoroughly (they missed my point entirely several times), and that the time that I put into the coding challenge was not valued.
My advice:
Easy 20-minute HackerRank coding question
N-Way Set-Associative Cache
The following metrics were computed from 38 interview experiences for the The Trade Desk Software Engineer role in United States.
The Trade Desk's interview process for their Software Engineer roles in the United States is extremely selective, failing the vast majority of engineers.
Candidates reported having negative feelings for The Trade Desk's Software Engineer interview process in United States.