I interviewed in April, and only got around to writing this up today. Hope it helps.
Phone screen:
Coding: Contagion — basically the same as the version posted on the forum.
Part 1: only an infected state, how long until everyone gets infected.
Part 2: building on part 1, add an immune state.
Part 3: after being infected, you become immune after D days — how long until it stabilizes.
Part 4: add a death state.
There seemed to be a part 5 too, but I never got to see it.
System design: design a cloud IDE sandbox.
The focus was heavily on the whole workflow. The interviewer asked some questions about what happens inside the VM when the sandbox executes a user's program. I gave short answers — if they had pushed deeper I probably wouldn't have been very confident.
Onsite:
Coding: Friend Circle — basically the same as the version posted on the forum.
Part 1: basic follow/unfollow/snapshot operations.
Part 2: given a snapshot, return all the friends.
Part 3: given a snapshot, recommend friends.
Part 4: compare the difference in friends between two snapshots — I didn't actually write the code for this one, just gave an approach.
One extra note: the API they gave only had the Friend Circle class, so I just bluntly put every required function into that one class, which made handling snapshots less intuitive. Thinking about it afterward, it probably would have been easier to put everything in the Snapshot class instead.
System design: payment system.
The interviewer again focused heavily on the workflow, and on clearly dividing responsibilities between components. I was left to work out the non-functional requirements myself; the interviewer didn't push too hard on follow-ups there.
Overall my impression was that both system design rounds cared most about a complete, clearly-defined process. I had prepared a lot of scaling and fault-tolerance patterns, but there didn't seem to be much time to go extremely deep into any of them.
One more note: I personally really like the Hello Interview framework — very practical and flexible, would recommend it to everyone.
Project deep dive:
Nothing too special here. The interviewer would interrupt me from time to time with follow-up questions. I actually think that kind of interaction is good — as long as you manage the time well, the back-and-forth lets you steer the interviewer toward what you actually want to talk about.
Behavioral:
It opened with "why OpenAI", and for that one I really did put in the effort to prepare a customized answer. After that it was all the usual behavioral questions. After talking for a bit over 30 minutes the interviewer had asked everything he wanted to ask, and then it was my turn to ask questions — which felt like another chance to show my level of thinking and genuine interest.
Timeline:
After the referral I quickly got a chance to talk with HR, and then the phone screen was scheduled for about 3-4 weeks later — they said there was no rush.
The day after the phone screen, they said I'd move on to the onsite, scheduled for about 2 weeks later.
A week after the onsite, I got a message that they needed an internal reference.
Three days after the internal reference, I had a short chat with the hiring manager about the team.
Two days after talking with the HM, they wanted a reference from my former manager (I really want to complain — that's way too many references...).
Big thanks to everyone on the forum whose experiences helped me a lot — sharing this in return, and I hope everyone else's job search goes well too!
Discussion
Loading comments…