Staff Software Engineer

Atomic Machines • East Bay

Company

Atomic Machines

Location

East Bay

Type

Full Time

Job Description

Atomic Machines is on Earth to radically advance humanity’s command over matter. Our mission is real-time bits-to-atoms manufacturing of anything at any scale, and to that end, we’re developing an entirely new digital micro-device manufacturing platform that is going to redefine how things are made, and do so while simultaneously enabling the rapid creation at any scale of new classes of machines – think medical micro-robotics, true lab-on-chip microfluidics, tunable antennas, ultrafast high-power and high-frequency RF switching devices and many more. The first device we are building with our platform has exceptional large-scale product/market fit and commercial traction, and we are pushing hard to share it with the world.


Our offices are 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.

What You’ll Do:

  • Design and build 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 monitorable 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:

  • Multi-language fluency
  • Ability to code fluently in multiple languages at multiple levels of the stack.
  • At Atomic Machines, we primarily use C, C++, Go, and Python. 
  • Experience in high-performance systems languages like C, C++, or Rust. A compiled, garbage-collected language like Go or Java and a scripting language like Python or JavaScript.
  • Knowledge of Computer Systems
  • Understanding 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
  • Networks
  • Concurrency & execution models
  • Computer architecture
  • Experience with system design:
  • Experience designing, building, and shipping complex distributed software systems that control hardware in sophisticated ways as part of a team.
  • Experience with running production software:
  • Experience with instrumenting software for observability and debugging.
  • Experience with version control, Infrastructure-as-Code, and DevOps workflows.

  • Bonus points for:
  • Familiarity 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).
  • 10+ years of industry experience in software development.
  • Bachelor of Science in Computer Science or a related field. Bonus points for an advanced degree.

Our Technology Stack:

  • Languages:
  •  C / C++: For embedded, real-time, and performance-critical systems.
  •  Go: For concurrent, networked application software.
  •  Python: For robotics, computer vision, AI / ML, and scientific computing.
  • Deployment Targets:
  •  Dockerized, general-purpose Linux application services (Cloud or On-Prem)
  •  Application software for embedded Linux systems (AMD Xilinx Kria KR260)
  • Realtime on control on STM32s peripheral boards
  • Realtime control on KR260 Cortex-R5s
  • Proprietary real-time networking on KR260 Cortex-R5s
  • Other tools:
  • Ansible: Infrastructure-as-code, configuration management, application deployment.
  • Protocol Buffers / gRPC: Interface definition language & serialization format for networked software.
  • Grafana, Prometheus, Loki: Observability platform. 
  • Xilinx and Lattice FPGAs: Proprietary real-time communication bus.
Apply Now

Date Posted

07/14/2024

Views

8

Back to Job Listings ❤️Add To Job List Company Info View Company Reviews
Positive
Subjectivity Score: 0.8

Similar Jobs

Sales Development Representative- French - Qualtrics

Views in the last 30 days - 0

Qualtrics is a company that creates software for top brands to enhance customer experiences team performance and product design They are looking for a...

View Details

AI Solution Manager, ServiceNow Platform - ServiceNow

Views in the last 30 days - 0

ServiceNow a global market leader in AIenhanced technology is seeking an AI Solution Manager to lead the implementation of AI solutions for complex bu...

View Details

Senior Software Engineer, Devices Automation - Block

Views in the last 30 days - 0

Square a company that has evolved since its inception in 2009 is seeking a Software Engineer with extensive experience in embedded devices and test en...

View Details

Senior Systems Infrastructure Engineer - BlackLine

Views in the last 30 days - 0

BlackLine is seeking a highly skilled Infrastructure Engineer to design build and manage corporate environments across Azure AWS and GCP platforms The...

View Details

Solution Manager, Workday - BlackLine

Views in the last 30 days - 0

BlackLine is a leading provider of cloud software that automates and controls the entire financial close process The company is committed to modernizi...

View Details

Senior Program Manager, Global Occupational Health & Safety - ServiceNow

Views in the last 30 days - 0

ServiceNow is seeking a Health Safety Program Manager to design implement and lead a comprehensive corporate safety program The role involves develop...

View Details