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 N-Way Set Associative Cache with the 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 + a higher tech manager + 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):
- 1st task
- 2nd task
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 the employees in Irvine office - half of the desks were empty. I had a small tour, 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):
- 3rd task
- 4th task
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 the water or the need to have a break. The atmosphere was good. 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 the 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 ability to produce failure-tolerant systems or collaborate with the remotely distributed team? I won't judge, though, each company has their 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 into 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 didn't bother to come and say "hi". Later, when the team eventually decided that I didn't pass, the recruiters never contacted me. In like 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 all were 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.