The whole process took about 5-6 weeks.
First step was an in-person interview during which the culture, role, and some of the TTD's benefits were discussed. There was not much focus placed on my work experience or resume, and I was only asked a handful of questions about my experience.
After this, my task was to complete a take-home programming problem and spend as much time on it as I needed. They emphasized not to rush and make it something I would be proud of. I spent a little less than a week on it after writing tests and documenting it thoroughly.
I went probably 3-4 rounds via e-mail with the code reviewer, who asked questions about the design and how it might be improved upon. The questions were primarily around algorithm efficiency and how to decouple some of the concepts. This required additional changes, then re-submission of the code each time, plus more discussion via email.
After this step, I was asked to have a 1-hour video conference interview (a week later) to further discuss my implementation. These questions were more in-depth about algorithm efficiency and alternative designs, also discussion about thread safety and a practical usage of the data structure.
At this point, I was asked to come in for an all-day interview. This consisted of meeting with 4 different software engineers for an hour each, and then having lunch out with the team. Each one-on-one was a live coding exercise, and one was a design/whiteboarding exercise. I was given a programming problem to solve along with Notepad++ and I had to work through the problem and write the code in front of them.
The questions were designed to test your understanding of data structures, flow of control, recursion, and algorithm efficiency. These were tough problems, particularly having to do them on the spot while someone else watches you think and type. I managed to eke out a somewhat functional solution to most of them, but I struggled and took the full hour with each person.
In the end, I was not offered a position. They emphasized that I was a good cultural fit, but that my skills were not what they were looking for.
All in all, it was a great experience (if you have the time to commit to the process). The questions were challenging but fair for a senior-level position. The Trade Desk really wants to find people with the right skill set, and their process definitely does just that. They are willing to walk away from a candidate after a 5-6 week investment of their staff in interviews.
All in all, it was a good experience, and it highlighted areas that I was rusty in. My advice would be to brush up on data structures and algorithm efficiency.
Implement an N-Way Set Associative Cache, and provide MRU and LRU cache eviction policies.
What is the algorithm efficiency (big-O) of the code you wrote?
Is your code thread-safe?
Traverse through a matrix of 1's and 0's where 1 is land and 0 is water, and find all continents (contiguous land masses).
Draw the shapes of a city skyline given a list of points as input representing the building's dimensions.
The following metrics were computed from 4 interview experiences for the The Trade Desk Senior Software Engineer role in Boulder, Colorado.
The Trade Desk's interview process for their Senior Software Engineer roles in Boulder, Colorado is very selective, failing most engineers who go through it.
Candidates reported having very good feelings for The Trade Desk's Senior Software Engineer interview process in Boulder, Colorado.