About this Senior/Staff Software Engineer, Robotic Manufacturing Systems role at Atomic Machines
Why This Role Matters Right Now
We are building the hardened execution layer for a new kind of fab. The team already has deep expertise in data engineering and algorithms. We need a hands-on software engineer with deep architectural experience and systems thinking to work directly with these experts and turn that expertise into simple, dependable software.
The primary responsibility is managing software complexity: defining clear responsibilities and interfaces, limiting coupling, and making the system easier to understand, test, operate, and change. Fluency in data and optimization, and a willingness to work with hardware support that responsibility.
What You’ll Do:
- Design and build the distributed software systems that coordinate state, timing, and behavior across manufacturing hardware; write, test, and debug sensors, actuators, and process controllers under real-time and reliability constraints.
- Design workflows that bridge manual and automated process steps, and coordinate handoffs between production and process development.
- Evolve the existing system in place — including but not limited to API development to govern machine behavior across our fleet— as the architecture converges, without waiting for a clean-slate rewrite to start delivering value.
- Instrument systems so machine and process data is legible — not just to humans via logs, but structured for downstream AI/ML consumption.
- Investigate and resolve issues that span software, firmware, and physical systems.
- Establish and model software engineering practices — testing, code review, CI/CD, documentation — appropriate for a team that's outgrown its current ones.
- Contribute to system reliability through structured observability, fault handling, and graceful degradation.
- Collaborate closely with mechanical, electrical, and process engineers to translate physical constraints into resilient software behavior.
- Partner with engineering leadership to help converge competing architectural visions into one well-reasoned direction, rather than waiting for it to be handed down.
What You’ll Need:
- 5+ years building production software; productive in any of the following languages: Python and (Golang or C++)
- Demonstrated meaningful ownership of architectural decisions in a complex production system
- Demonstrate first-principles thinking with sound instincts for strategic tradeoffs.
- Closed-loop experience: Operated or evolved the system long enough to observe the consequences of those decisions, explain what worked and failed, and improve the architecture.
- Production ownership: Experience testing, operating, and safely migrating systems where correctness matters.
- Collaboration: Translate expert knowledge and user needs into software requirements and acceptance criteria.
- Domain fluency: Discuss data models, transactions, and durable history with data engineers; objectives, constraints, inputs, and outputs with optimization experts.
- Experience with Hardware: Demonstrated interaction with equipment. Have had to understand and troubleshoot physical workflows.
- Has willingness to work directly with fab equipment
- Bachelor's degree in Computer Science, Electrical Engineering, Robotics, or related field, or equivalent experience.
The compensation for this position also includes equity and benefits.