Devanshu@DevanshuXi
Just wrapped up the interview process of stealth infra startup (NYC based)
Team had people from OpenAI and Anthropic and Hedge funds.
5 rounds in total. Use of LLMs were completely restricted in the first four rounds.
Round 1 started with a grid DP problem.
Basic state transition was straightforward, but the brute force complexity was too high for larger constraints.
Interviewer kept pushing on optimization.
After thinking for a bit, I noticed the feasibility condition was monotonic:
if a solution worked for some value "k", it would also work for larger values.
So instead of directly searching the answer space linearly, I wrapped the DP inside a binary search over the answer.
That dropped the complexity pretty hard and the interviewer seemed happy with the direction.
We also spent some time discussing my search engine project:
indexing pipeline, retrieval flow, ranking heuristics, and some infra decisions behind it.
Overall probably my strongest round in the loop.
Round 2 humbled me a bit.
We have a tree with letters on edges. Count paths where the letters along the path can be rearranged into a palindrome.
Main observation there was:
a path is valid if at most one character has odd frequency.
So instead of storing exact frequencies, I represented parity using bitmasks.
Each bit represented whether a character count was odd/even along the path.
I initially went with small-to-large merging on subtrees to optimize the brute force approach.
But halfway through the discussion I realized there was probably a cleaner way using prefix xor masks + frequency counting on the tree itself.
Could’ve likely reduced the implementation complexity a lot by treating it more like:
“how many previous masks differ by at most one bit.”
One of those rounds where you know the core idea, but afterwards your brain keeps replaying all the cleaner approaches you could’ve explored.
Round 3 was systems design:
I had to design a database schema branching system.
Basically:
- isolated DB schema branches for migration testing
- schema diffing
- merge conflicts between branches
- metadata storage
- avoiding physically cloning huge datasets
- garbage collection for abandoned branches
- how to visualize merge conflicts without making UX horrible
Really fun discussion, i worked alot on this stuff in college, Told him about the tournament tree to collect the fanout results and three way schema merging algorithm. I was satisfied with this round.
Round 4 caught surprised me. No coding.
Pure database deep dive.
We discussed
- MySQL replication
- binlogs
- failover mechanics
- zero-downtime schema migrations on 500M+ row tables
- online migrations
- high-level discussion around my vitess internals knowledge like VTGate and VTOrc.
I didn’t know every detail perfectly, but I reasoned through most of it from first principles.
Final round was with the CTO.
Super chill compared to the earlier rounds.
Mostly talked about:
- why I like building systems
- long-term interests
- what kind of problems excite me
- company vision and where they see the infra space going
we even pair-programmed a tiny 8085 microprocessor emulator using Codex. debugged a few weird issues together, and honestly it felt less like an interview and more like two engineers yapping.
Probably my favorite round from the entire loop.
Final Verdict: rejected.
But honestly, this was probably one of the best interview loops I’ve gone through.
I personally think the reason of rejection was second round. I fumbled and struggle there. There could be alot more reasons.
I didn't got any feedback where I lacked.
Kinda crazy how much you learn when smart people keep pushing the edge of your understanding for hours straight.
"Until death every defeat is psychological"