The process was quite slow at first, with recruiters mostly answering the messages with template emails. At some point after the call with the hiring manager, it went faster, and we got to the first tech task.
The initial screening problem was to implement an N-Way Set Associative Cache with customizable replacement strategies. They give you like a month to solve it (while asking "do not spend much time on it"). The problem is open-ended; it has a myriad of considerations. You will spend a couple of evenings to produce something industry-grade, and then more time to add docs and cover it with tests. So, yeah, it's a time-consuming task. Some people can find it unacceptable, considering how picky TTD is (so high possibility that you'd be wasting time), but I think this is a proper task for a Senior Engineer - worth more than their other on-site tasks.
Then we had a phone call with one of their engineers. He came unprepared and was seeing the code for the first time - we had to explore it together, as he just read the documentation (why do they ask to provide all the compilation instructions then?). The engineer still was quite knowledgeable, was asking the right questions, and was able to understand the beauty of the different particular solutions made across the code. He also found a possible race condition in one of the replacement strategies (I was voluntarily taking an advanced approach to implement a thread-safe library). This left a positive impression regarding the strength of the engineers there.
Then I was invited to the day of on-site interviews, where I had 4 one-hour technical sessions with the engineers, plus a higher tech manager, and lunch with the local employees.
The sessions were mostly about some hacker-coding tech tasks, where you get a single problem and need to solve it in like 30-40 minutes on a whiteboard or on a laptop.
The schedule was like this (see Questions section for more details):
Then there was a lunch with the team - they get a modest catered lunch once in a couple of days. The folks were nice, and we had a pleasant chat. There were not a lot of employees in the Irvine office - half of the desks were empty. I had a small tour; it seems like the office was kinda new. It's an open space (which I prefer). The office and the equipment looked nice - the rooms had well-done conferencing solutions, they had stand-up desks for people preferring such workplaces; it was clean and bright. TTD takes good care of working conditions in Irvine.
Then the interviews continued (again - see Questions section for more details):
After that, we had a chat with one more manager about the interview process, whom I told all the observations in this review as well.
In general, the interviewers were all kind and polite; everyone asked about water or the need to have a break. The atmosphere was good. I didn't feel a lot of pressure, but it might be subjective, as I'm not afraid of interviews and like to work with people. The interviewers made a positive impression.
The negative side is that I don't think the interview process is built right for Senior people. First of all, dear reader, do you think that a software engineer that worked for 10-15 years for well-known software companies is unable to code? Or do you think that the ability to find a perfect solution for an artificial hacking problem correlates with the ability to produce failure-tolerant systems or collaborate with a remotely distributed team? I won't judge, though; each company has its own path. And I might be just subjective - so feel free to say that I'm not competent.
One more negative note is that recruiters didn't seem to be very engaged in the process. As mentioned earlier - often instead of talking with you, they were sending template emails. And when I came to the office, none of them bothered to come and say "hi." Later, when the team eventually decided that I didn't pass, the recruiters never contacted me. In about ten days, I sent an email asking about the results - and only then I got a standard template response that "you were great, but the company just decided to pass this time."
At the same time, the hiring manager and the engineers were all nice and knowledgeable. So, if you don't mind the whole recruiting process and if you pass the interviews, then probably you will have a good engineering team.
Homework: Implement N-Way Set Associative Cache
1st on-site task - having a database of people and events, distributed across the servers, write the code that would fetch all people and events they are going to (something like that).
2nd on-site task - having a list of coordinates (x, y) of the top left and right corners of the houses, draw a skyline they compose, but do not draw the lines that do not matter to the skyline (i.e. the ones going inside the skyline). Basically, produce the minimum list of points that matter to drawing the skyline.
3rd task - having bank rates of a currency from multiple banks, calculate a single rate to provide to your client, so that he can sell/buy a particular amount of currency at the best rate.
4th on-site task - the interview with a higher tech manager - he asked to implement the algorithm to play the Mastermind game, so that it would be solved in 12 turns or less.
The following metrics were computed from 2 interview experiences for the The Trade Desk Senior Software Engineer role in Irvine, California.
The Trade Desk's interview process for their Senior Software Engineer roles in Irvine, California is extremely selective, failing the vast majority of engineers.
Candidates reported having very negative feelings for The Trade Desk's Senior Software Engineer interview process in Irvine, California.