After the recruiter call, the first round was HM + coding. The VO (final onsite) was 5 rounds — coding + 2 system design rounds + behavioral + a project deep dive. I hadn't seen the AI-flavored system design round anywhere else before. The VO was spread across 3 days, and I got rejected 2 business days after that.
The HM round asked about past projects, not much technical.
The first coding round was this exact problem: the tokenize function was already given to me, and what I got were pre-defined INDENT and DEDENT tokens rather than literal open/close brackets. Every indent needs a matching dedent. The first part was to write is_well_formed(tokenized):
def is_well_formed(tokenized):
depth = 0
for token in tokenized:
if token == "INDENT":
depth += 1
elif token == "DEDENT":
if depth == 0:
return False
depth -= 1
return depth == 0
The second part was to write read_rich_text. Example input:
tokens = [
(1, "food"),
(4, "banana")
]
The expected output was ["food", [[["banana"]]]].
For the deep dive, they wanted a project that was fairly large and long-running. When the recruiter helped me prep, they told me the user base at my most recent job (a small startup) was too small, and suggested I use a project from 3 years ago at a mid-size company instead, with emphasis on complexity and tradeoffs. They asked about the technical challenges.
Behavioral (all-around) was the usual traditional questions — you need more than one story ready.
System design — eval platform: design an eval platform. You start by laying out the scenario, then define what "eval" even means. The example given was Figma's chatbot assistant, where a user can type something like "change this button to red" (a fairly small example — the follow-up example was making the entire page look more modern, which needs a lot more definition and eval design work). When the agent makes that button change, how does the eval platform decide whether the change is good or bad? Similar to Cursor, where users can accept or reject — use some metrics for online judgment, and for offline, talk about how you'd build the dataset. They emphasized: if other engineers at the company want to use this platform to evaluate agents they build themselves, what do they need to provide?
System design — architecture: a retrieval and ranking system where users can search the current file, design systems, components, styles, and prior designs. The prompt, as given:
"Retrieval and ranking for a Figma design-editing agent. Design a search system that can index and retrieve results for all Figma files. The use case here is that you'll have users and agents making searches using pretty short queries, maybe one to five words, with some structured filters. The key thing is that files are organized in a hierarchy of access — a file is going to be within an organization, like Google, for example, which is going to have teams and folders within those teams. Users will have varying access roles that control what they can look at."
They emphasized reliability. We didn't need to talk about the ranking model itself — assume there's already a service you can call — and they asked what happens if the ranking service goes down.
Discussion
Loading comments…