I applied for the staff software engineer role. I'm not very strong, and I got rejected very cleanly.
After the recruiter screen, they scheduled two rounds of a mini onsite (60 min * 2).
The first round was system design. The question was to design a feature flag system, similar to Amazon WebLab. Because I hadn't prepared for it, and I had no systematic approach to open-ended questions, I got stuck in several places. The interviewer was pretty nice and gave me quite a few hints. I talked about separating the control plane and the data plane. At the time I was trying to force it into a rate limiter design, so I suggested a local cache plus a tiered Redis cache. I mentioned a deterministic hash plus buckets to compute percentages, and an allow list / block list. Looking back afterward, I think a lot of the logic should really live in a client-side library: the client services pull a snapshot from object storage and compute locally, with no need to build a data plane service. The interviewer's feedback was also that I was trying to force-fit a template from somewhere else instead of designing around the actual requirements.
The second round was AI programming / agent coding. It was the one other interview reports have mentioned: you get a list of transactions with some attributes, and a list of rules, and you decide whether each transaction is accepted or denied. I did 3 parts. There were many more parts after that, and the interviewer said I definitely wouldn't finish them all. The conditions get more complex step by step: part 1 is just a simple condition check, part 2 has to support AND / OR without worrying about precedence, and part 3 has to support nested conditions with parentheses.
I had never been asked anything like this before. I mocked it a few times with Claude Code, but the Claude Code mock deliberately planted bugs for me, so I thought the point was to check whether I could find the bugs. Looking back, I think the interviewer wanted me to drive the design and write modular code, not to let the agent solve everything by itself and end up with one monolithic solution.
Just sharing a little bit of experience.
Discussion
Loading comments…