Senior Software Engineer, Distributed Systems (Rust)Active$254K

The opportunity

Lattice is the software platform behind Anduril's autonomous systems. The Data Distribution team owns how data moves through it: the Distributed Service Bus (DSB), a messaging layer that carries every track, sensor reading, command, and video stream between nodes.

What you'll do

  • Messaging semantics. DSB provides pub/sub, reliable request/response, and: ordered bidirectional streams with flow control. You'll design the delivery guarantees, retry and acknowledgement behavior, and backpressure that sit behind each one, and decide what each guarantee costs on a link that drops packets.

  • Routing across a changing mesh. Topology changes constantly, and a node may: have several paths to the same destination. You'll work on OSPF-style link-state routing, multi-path link selection, and prefix-based routing, and on keeping routing state convergent when the network splits and rejoins.

  • Gossip and state dissemination. Subscription tables, topology, and node: metadata have to propagate across the mesh without flooding it. You'll design and tune gossip protocols and reason about how and when they converge.

  • Operating under constrained bandwidth. Some links carry a few kilobits per: second. You'll build priority-based QoS scheduling, compression, and protocol-level optimizations so that the important traffic gets through first.

  • gRPC over the mesh. You'll extend our gRPC proxy layer so existing services: can talk to each other over DSB without changes, including service discovery, retries, and timeouts across unreliable links.

  • Correctness through simulation. The same production code runs under a: deterministic, manually clocked scheduler, so failures are reproducible. You'll build simulation harnesses and tests that find the bugs that only show up under partitions, reordering, and loss.

What they're looking for

  • Bachelor's degree in Computer Science, Engineering, or a related field, or equivalent experience
  • + years of professional software engineering experience, with a focus on distributed systems
  • Solid distributed-systems fundamentals. You can reason about delivery: guarantees, ordering, consistency, partition behavior, and failure modes, and explain why a given design does or doesn't converge.
  • Production experience building or operating messaging systems, RPC: frameworks, databases, or other distributed infrastructure
  • Depth in a systems language (Rust, C, C++, or Go). Depth matters more than: the specific language; we'll teach you Rust if you have the fundamentals.
  • Working knowledge of networking: TCP/UDP, sockets, MTU, TLS/mTLS
  • Familiarity with asynchronous programming (async/await, event loops, futures)
  • Comfort with Protocol Buffers and/or gRPC