Logo
Atomic Machines

Staff Software Engineer

Atomic Machines, Berkeley, CA


Berkeley, CaliforniaPlatform /Full-time /On-siteAtomic Machines is ushering in a new era in micromanufacturing with its Matter Compiler (MC) technology. The MC enables new classes of micromachines to be designed and built by offering manufacturing processes and a materials library that is inaccessible to semiconductor manufacturing methods. The MC not only promises to unlock MEMS manufacturing for the many device classes that never could be made by semiconductor methods, but also to open up entirely new classes. Furthermore, the MC is a multi-process, multi-material technology: bits and raw materials go in and complete, functional micromachines come out.  The Atomic Machines team has also created an exciting first device – one that was only made possible by the existence of the Matter Compiler – that we will be unveiling to the world soon.Our offices are in Berkeley and Santa Clara, California.About The Role:We are seeking a seasoned software engineer who will design and build the application software that orchestrates all manufacturing operations of the Matter Compiler.  What You'll Do:Design and build the distributed software system that controls the Matter Compiler. You will develop the Manufacture Execution System (MES) that orchestrates the activities of the system – including production planning, resource management, and data collection. Develop the APIs and data infrastructure that support operation of manufacturing nodes, material transport systems, and the system-level controller. A monolithic central controller (Go, Postgres, gRPC) communicating to a distributed network of physical machines. Run, monitor, and debug software. The code you write is what drives all manufacturing operations at Atomic Machines – and must be reliable, fault tolerant, and well instrumented.Work at multiple levels of the software stack. You’ll design and implement a networked API, write a GUI for it, and debug it down to the hardware. You’ll be a go-to software leader at the company – able to guide practices & work productively with experts in other fields (mechanical engineering, AI / modeling / simulation, electrical engineering, & more).What You'll Need:Multi-language fluency.Ability to code fluently in multiple languages, at multiple levels of the stack. At Atomic Machines, we primarily use Go, C/C++, and Python. Should have experience with:A high-performance systems language like C, C++, or Rust.A compiled, garbage-collected language like Go or Java.A scripting language like Python or JavaScript.Knowledge of Computer SystemsUnderstanding of how computers work. Our work involves a variety of processors and computing environments – Linux, FreeRTOS, and bare metal. Strong fundamentals help build system context and enable broad contribution. Undergraduate-level knowledge of:Operating systems.NetworksConcurrency & execution models.Computer architecture.Experience with system designExperience designing, building, and shipping complex distributed software systems that control hardware, as part of a team.Experience with running production softwareExperience with instrumenting software for observability and debugging.Experience with version control, Infrastructure-as-Code, and DevOps workflows.Bonus points forFamiliarity with the fundamentals of robotic systems, such as feedback control systems, motion planning, and computer vision.Familiarity with CAD and CAM software, focusing on geometry engines, toolpath generation, and machining strategies.Familiarity with embedded systems programming, particularly for ARM architectures and real-time operating systems (RTOS)Bachelor of Science in Computer Science or a related field. Bonus points for an advanced degree.$170,000 - $230,000 a yearThe compensation for this position includes equity and benefits.