Anduril runs a six-session loop and gets from first recruiter call to offer in roughly three to four weeks. That’s quick for a company that will also spend a full hour asking whether you’re comfortable building weapons.
The technical bar lands about where a well-funded infrastructure company lands: graph-heavy coding at LeetCode medium-to-hard, one object-oriented design round where you write real code instead of drawing boxes, and a behavioral session with a director who has read your resume line by line and intends to use it.
The six sessions
It opens with a 30 to 60 minute recruiter call. For general software and new grad pipelines this call does real routing work, not just scheduling. The recruiter maps your background to a domain, usually perception, backend infrastructure, ML infrastructure, or applied ML, and then asks why you’re looking at defense. Answer that badly and the loop ends there.
Next is a 60-minute technical phone screen, typically HackerRank or a shared editor with someone watching you type. Candidates consistently describe the prompt as underspecified on purpose. The stated problem is small, the constraints arrive in waves, and the interviewer is tracking whether you noticed the gaps. Ask what the input volume looks like, whether the data fits in memory, whether duplicates are possible, all before you write a line.
The final round is four back-to-back sessions: two coding, one object-oriented design, one behavioral with a senior or staff-level leader.
Graphs show up more than anything else
Across reported Anduril loops, graph problems dominate. Breadth-first and depth-first search, cycle detection in directed graphs, connected components with union-find, and the whole family of grid problems that Number of Islands spawned.
This isn’t arbitrary trivia selection. Lattice, the software layer sitting under most of what Anduril sells, ingests detections from many sensors and has to decide which of those detections are the same physical object. That’s connected components with a similarity threshold. Mission planning has task dependencies, so cycle detection is a live concern rather than a textbook one. Mesh networking between airframes and ground nodes is a graph with edges that keep failing.
Have union-find memorized well enough that you write it without thinking about it:
class DSU:
def __init__(self, n):
self.parent = list(range(n))
self.rank = [0] * n
def find(self, x):
while self.parent[x] != x:
self.parent[x] = self.parent[self.parent[x]] # path halving
x = self.parent[x]
return x
def union(self, a, b):
ra, rb = self.find(a), self.find(b)
if ra == rb:
return False
if self.rank[ra] < self.rank[rb]:
ra, rb = rb, ra
self.parent[rb] = ra
if self.rank[ra] == self.rank[rb]:
self.rank[ra] += 1
return True
Questions tend to arrive wearing a domain costume rather than as bare LeetCode:
- “You have a stream of sensor detections as (id, x, y, timestamp). Group detections within distance d of each other into tracks.”
- “Given a set of tasks with prerequisites, return a valid execution order, or report that none exists.”
- “Find the cheapest path across a grid where some cells cost extra to enter and some are impassable.”
- “Nodes in a mesh drop in and out. Report the number of reachable clusters after each event.”
The costume matters less than the follow-up. Every one of these gets extended mid-round: now the stream is unbounded, now detections expire after 30 seconds, now you can only hold a fixed amount in memory. Solve the small version fast so you have runway for the version they actually care about.
The design round wants working code, not a diagram
The 60-minute object-oriented design session is where candidates who cruised through coding get caught. You build a component from scratch, and the interviewer pushes you to refactor while you write. The note that comes back most often from people who passed and people who didn’t is the same: they want long methods broken into small focused ones with names that say what they do.
Typical asks are an in-memory store for object tracks with expiry, a rate limiter, an event subscription system, a small scheduler. Evaluation is about interface boundaries and whether the result can be tested, not about pattern vocabulary. If you catch yourself saying “we could apply the strategy pattern here,” you’re in the wrong register. Write the class, walk a case through it by hand, then point at where you’d cut a seam for tests.
One habit that reads well in this round: write the method signature and a two-line usage example before the implementation. It forces the interface conversation early, which is the thing being measured.
Which language to write in
The stack is mixed. C++ and Rust close to the hardware, Go and TypeScript in the platform and web layers, Python for ML and tooling. For coding rounds nobody cares, so use whatever you’re fastest in, and Python is both fine and common. The exception is embedded, perception, and flight software roles, where interviewers may steer toward C++ and expect fluency on memory ownership without prompting you for it.
The defense question is a real filter
The behavioral round is usually run by a director or senior staff engineer and functions more like an adversarial resume walkthrough than a set of prompts. They pick a project you listed, go three questions deeper than you expected anyone to go, and keep circling back to motivation.
Anduril’s pitch to candidates is structural, and knowing the structure helps you answer well. The company develops products with its own capital and sells them at fixed prices instead of working traditional cost-plus contracts where the government funds development and absorbs overruns. Schedule pressure is therefore internal and expensive. Engineers whose entire career has been in software where a slipped quarter is an inconvenience get probed hard on this, because the failure mode they’re screening for is someone who treats deadlines as negotiable.
Answers to “why defense” that land are specific and unsentimental: something you built that had physical consequences, a position on deterrence you can actually defend under questioning, a technical reason autonomy at this scale interests you more than ad ranking does. Answers that don’t land are reciting the company’s own marketing copy back at a director who wrote some of it, or hedging so heavily it sounds like you’d resign the first time you saw the product used.
Most engineering roles require US person status and many require clearance eligibility. Anduril sponsors clearances, but the timeline is the timeline, so raise your status on the recruiter call instead of at offer stage.
What the offer looks like
| Anduril Industries software engineer level | Median total compensation (US, USD per year) | Reported range, base plus equity plus bonus | Typical experience |
|---|---|---|---|
| L3 (new grad / SWE I) | $207K | $189K to $231K | 0 to 2 years |
| L4 (SWE II) | $291K | $210K to $365K | 2 to 5 years |
| L5 (Senior SWE) | $385K | $298K to $470K | 5 to 9 years |
| L6 (Staff SWE) | $415K | $315K to $535K | 9+ years |
Figures are self-reported US submissions on Levels.fyi and drift, so check the current page before you anchor a negotiation to any of them. The number that matters more than the median is the equity component, because Anduril is private. Your grant is priced at a valuation set by the last round, it isn’t liquid, and the realistic exit paths are an IPO on someone else’s schedule or a tender offer that may or may not include you. A $385K package with $180K of paper in it is not the same instrument as $385K at a public company, and the recruiter will not volunteer that distinction.
Two weeks of prep that maps to the loop
Put most of your algorithm time into graphs. Grid traversal, topological sort, union-find, Dijkstra on a small weighted graph. Skip the exotic material, because segment trees and heavy dynamic programming are not what shows up here, and the hours are better spent making your graph code fast and correct on the first pass.
Then take three or four object-oriented design prompts and write them out completely in a plain editor with autocomplete off, timed to 45 minutes. Most candidates have never actually done this and discover that typing speed, not design instinct, is their binding constraint.
Write your resume walkthrough out as spoken paragraphs and record yourself saying them. The director round rewards someone who can state what they personally decided, what broke as a result, and what the breakage cost. Ownership language is the thing being scored and it’s difficult to improvise convincingly.
The last piece of prep is reading what the company actually ships: Lattice, Ghost, Fury, the counter-drone systems, the helmet program they picked up from Microsoft. Nobody quizzes you on the catalog. The reason to do it is that the strongest available answer to “why Anduril” is a specific technical problem inside their stack that you find genuinely interesting, and that answer cannot be manufactured from a careers page an hour before the call.
Practice the behavioral round:
