Interview Experience | Security / Integrity Infra | π₯π₯π₯ | Meta
2026 (late Sep to early Oct) Software Engineer, Infrastructure (Technical Leadership) @ Meta β Bellevue, WA β Virtual β 5 rounds | π Neutral | Hard | Pending
Central Integrity team, five rounds.
Round 1 β Recruiter
They asked why I wanted to work on Integrity, then walked me through the rest of the loop. Nothing else.
Round 2 β Phone Coding
Random Pick with Weight: return an index with probability proportional to its weight. Prefix sums plus binary search. When I ran an example by hand I caught an off-by-one and fixed it. The follow-up was weights that change over time. I only described a Fenwick tree out loud; they didn't ask me to write it.
Round 3 β Coding
I got a list of edges between accounts and the devices, phone numbers, and payment methods they use, and had to find groups that might be the same abuse ring. Underneath it is connected components. I finished union-find, but I only added path compression after the interviewer pointed it out.
Follow-up: what if edges expire, say when a device gets rebound to someone else. For deleting edges I only said you could rebuild, or batch it once a day, and I didn't work out the rebuild cost properly. The last question was what happens when one component is huge and floods the human review queue. Time ran out before I finished that.
Round 4 β System Design
Design an integrity decision system. Signals come in, like user reports, model scores, and payment anomalies, and the system decides whether to allow an account, downrank it, restrict it, or send it to human review.
I drew ingest, then scoring, then policy, then action, with an audit log. The interviewer didn't want to hear about models and pushed on three things: what happens when signals suddenly spike (partition by entity, rate limit, sample), how to roll back a false positive (every action carries a reason code and a decision version), and whether multiple regions could execute the same action twice (idempotency keys). At the end they asked whether sampling would miss slow attacks, and I didn't give a complete answer.
Round 5 β Behavioral
One project deep dive. To cut latency I had moved a validation check to async, and a small slice of traffic got past a rule it should have hit. They kept coming back to who had pushed back, how I knew how big the impact was, and why I didn't stop it sooner. They also asked once whether I use GenAI for debugging, and about the on-call page I remember most.
Still waiting on the result.