Jobs · Engineering · California

Rust Software Engineering Intern, Chip Design Tools - Winter

Fab2 · San Francisco, CA · Yesterday
On-siteEngineering$114k–$131k/yrInternship

About the role

Fullstack, Rust end-to-end, working on the application itself. You will own major features from design through shipping and touch the whole stack.

  • Deeply interactive, low-latency editing tools: drag a wire and watch it auto-route, place a block, measure, annotate, catch mistakes the instant they happen.
  • Careful handling, some algorithms and computational geometry.
  • We need to constantly fight to keep the tools simple.
  • A document model that can be diffed and merged like source code and at the same time real-time collaborative.
  • The sync engine streaming edits between clients, so chip designers can work together without sending files back and forth.
  • More like a game server than CRUD: eventual consistency, high bandwidth streaming, correctness.
  • Whether the wire format decodes to owned data or stays zero-copy so it holds up when the design is very large is a decision you own.
  • A GPU canvas that renders millions of polygons and stays smooth: spatial indexing, culling, level of detail, all in one Rust code path for web and native.
  • Simulation you can feel: waveforms that stream onto the screen as the solver produces them, with an interactive tier that answers in milliseconds while heavier analysis runs behind it.
  • There is also plenty nearby as the application grows: a plugin system built on sandboxed WebAssembly components, a scripting API where a script is the same first-class client as the mouse, and integrations that send finished designs to the fab.

Qualifications

The people who have done well on this team tend to come from deep, rich applications: tools and engine programmers, people who have built game level editors, DAWs, CAD tools, rendering pipelines, or software where the hard problems live in the seams between data, rendering, and input.

  • You don't need to know anything about chip design, but you need to be willing to learn.
  • If you've drawn a schematic, run SPICE, or built RLC circuits, you'll ramp faster and probably care more about getting it right, but we can teach, and fresh eyes are part of the point.
  • We are building tools intuitive to new users, not just folks used to the old silicon design tools from the 90s.

Required Experience

  • Strong Rust, or serious C++/systems experience and the obvious curiosity to go deep in Rust.
  • Solid systems fundamentals: memory, performance, concurrency.
  • You profile before you optimize.
  • You've taken something slow and made it fast, and you can tell us about why it was slow.
  • A track record of non-trivial software you built from scratch and can walk us through end to end.
  • The weird side project, engine, or tool you wrote because the existing one annoyed you.

Nice-to-have

  • A game, engine, or real-time background: ECS, scene graphs, spatial indexing, physics engines, frame budgets, GUI, low-latency input.
  • Some EE, analog and digital.
  • You don't need to be a chip designer.
  • Time lived inside deep, serious software, and opinions about it: Blender, Ableton, KiCad, CAD tools, DAWs, game engines.
  • Distributed or real-time systems: write-ahead logs, event sourcing, replication, CRDTs, OT, websockets.
  • Data pipelines.
  • Geometry, graph, and routing algorithms; spatial data structures; optimization.
  • Familiarity with schema evolution and serialization formats like Protobuf, Flatbuffers, Cap’n Proto.
  • Graphics and visualization: turning big, complex datasets into something legible, fast, and even beautiful on screen.
  • Custom rendering, shaders, GPU pipelines (WebGPU, Vulkan, OpenGL).
  • An interest in version control, not just using Git but how it works underneath.

Similar jobs