Software Engineer
Develops scalable software for production automation, including motion planning, control, and perception pipelines with hardware integration. Requires strong Python skills, systems design expertise, and collaboration with robotics/hardware teams.
About the job
Responsibilities
- Design, implement, and maintain robust, scalable software systems for production automation
- Build core libraries and services supporting motion planning, control, and perception pipelines
- Architect clean interfaces between software components and hardware-facing systems
- Develop vision and sensor-integration software that feeds downstream planning and control stacks
- Optimize software for performance, reliability, and deterministic behavior where required
- Write high-quality, testable Python code with strong emphasis on readability, correctness, and maintainability
- Own software engineering best practices: code reviews, testing strategies, CI/CD, and release processes
- Build simulation, testing, and tooling infrastructure to validate behavior prior to deployment
- Collaborate with robotics, controls, and hardware engineers to translate system requirements into well-defined software abstractions
- Contribute to architectural decisions as the software platform scales across customers and deployments
Minimum Qualifications
- B.S. in Computer Science or a related engineering field
- Strong software engineering experience, especially in Python
- Experience designing and maintaining complex software systems (services, libraries, APIs, or pipelines)
- Solid understanding of data structures, algorithms, and systems design
- Proficiency with Git, debugging, testing frameworks, and modern development workflows
- Ability to work independently on ambiguous problems in a fast-paced environment
Optional Qualifications
- M.S. in Computer Science or a related field
- Experience working on systems that interact with hardware, real-time constraints, or external devices
- Familiarity with robotics, motion planning, control systems, or computer vision (helpful but not required)
- Experience with ROS or similar middleware
- Knowledge of performance optimization, concurrency, or distributed systems
- Experience deploying software to edge, embedded, or hybrid cloud environments
Skills
Python, Git, ROS, Computer Vision, Data Structures, Algorithms, System Design, CI/CD, Robotics, Concurrency
Similar jobs
Embedded Engineering jobsDesign and implement real-time control infrastructure for intelligent, reliable robots, spanning actuators, hardware interfaces, state estimation, and whole-robot behavior. The role requires strong robotics and control fundamentals, hands-on hardware experience, and production-quality C++ or Rust development.
Own end-to-end software integration for semiconductor manufacturing equipment, spanning firmware, control software, electronics, actuators, testing, and production handoff. Requires 3+ years developing software for physical systems, proficiency in C, Rust, and Python, and strong hardware debugging skills.
Develops operating-system platforms, device drivers, and infrastructure for autonomous-vehicle robotics systems. The role requires 4+ years of production software experience, strong Linux internals expertise, and proficiency in C/C++ plus scripting languages.
Researches and expands vehicle telematics coverage by analyzing automotive network traffic, OEM documentation, and field logs. The role requires hands-on vehicle interfacing, reverse engineering, programming, physical debugging tools, and automotive communication standards expertise.
Designs and integrates C++ autonomy software with UAV hardware, autopilots, sensors, and communication systems, supporting SIL/HIL validation and live flight testing. Requires 3+ years of robotics integration experience, U.S. citizenship, and security-clearance eligibility.