Our mission at Atomic Machines is to bring autonomous bits-to-atoms manufacturing of anything at any scale to the world, and we are well on our way. We are developing an entirely new class of manufacturing foundry for micro- and nano-scale machines, and we are using that foundry to create products the world has heretofore been unable to build. Our first device has exceptionally strong and large-scale product-market fit: it is both iconic of what our platform can do and a driver of very significant enterprise scale.
Joining forces with us means becoming part of an incredibly talented, inventive and passionate multi-disciplinary team running hard to make our platform, devices and vision a reality. You will have the opportunity to help define the company from its earliest days. You’ll be challenged to learn and grow as a builder and a leader as the company itself grows rapidly. And you will receive significant equity compensation - you’ll truly be a company owner and benefit financially from our overall success.
Our offices are located in Berkeley and Santa Clara, California.
About the Role:
We are seeking a seasoned software engineer who will architect, design, and build any and all code above the embedded level in the software stack, i.e. from the operating system up.
\n
What You’ll Do:- Design and build AMPOS, the distributed software system that controls the AMP manufacturing platform, a truly novel fabrication system for micro-devices and components. Your software will orchestrate all of the activities of the fab, from high-level workflow planning to the code that operates individual robotic nodes and automated material transport.
- Architect and design complex systems that must scale to very large numbers (e.g. production quantities per unit time), be highly robust (meaning fault tolerant, designed to uptime requirements), high performance and both monitor-able and controllable.
- Work at multiple levels of the software stack, and must be “fluent” at all levels: operating system (including real-time OS), device drivers, and otherwise communicating with low-level code controlling hardware, network (building distributed systems with complex communication patterns), structured APIs, databases and associated architectures and algorithms.
- Code in a variety of languages, as needed for the situation. This role will involve a prolific amount of coding - we’re not looking for an ivory-tower architect type, but a real builder.
- Thrive within the Scrum methodology (which means we’re looking for at least excitement from the candidate about the principles, but ideally significant experience building complex software systems in Scrum and an understanding of its benefits).
- Partner productively with other peer software engineers in team projects.
What You’ll Need:- Ability to code fluently in multiple languages, particularly at multiple levels of the stack. Should be comfortable working in at least C on the low end and an object-oriented language like Java or C at the high end, understand code compilation and optimization and the “at the metal” interface to hardware.
- Strong understanding of computer hardware architecture, how operating systems work and how networking works from at least the protocol level up.
- Time/space complexity understanding with associated algorithms.
- Deep understanding of compilers (traditional and JIT) - how they work, what makes one compiler better than another, how they are designed and built, etc.
- Experience building complex distributed software systems that control hardware in sophisticated ways, as part of a team, but where the candidate served as an architect and designer of major portions of the system and delivered a lot of production code, as well.
- Experience with instrumenting software, both for debugging and real-time monitoring of the machines. We need to be able to detect problems before they affect uptime.
- Understanding of and proclivity for agile development methodologies.
- Understanding the principles of a functional language, specifically the ways in which state and side effects are managed.
- Bachelor of Science in Computer Science (bonus points for an advanced degree).
\n
$170,000 - $220,000 a year
The compensation for this position includes equity and benefits.
\n