Embedded Tools Engineer
Develop and support CI/CD pipelines, hardware-in-the-loop systems, and diagnostic tooling for embedded software running on electronic hardware. The role requires strong Python and systems-programming skills, familiarity with reproducible build systems, and deep knowledge of hardware communication protocols.
About the job
Responsibilities
- Design, develop, and maintain CI/CD pipelines and hardware-in-the-loop (HIL) systems for embedded software.
- Streamline software build, testing, deployment, and usage processes for in-house electronic hardware.
- Create tools for testing, diagnostics, and embedded-system management.
- Collaborate with hardware and software teams to ensure system integration.
- Monitor infrastructure performance and implement stability and efficiency improvements.
- Support development teams with embedded firmware CI/CD, builds, and development-flow issues.
Requirements
- Practical experience designing and maintaining GitHub Actions workflows.
- High proficiency in Python, including Asyncio and hardware interaction with pyserial, python-can, and smbus2.
- Hands-on experience with Bazel and Nix for reproducible builds and package management.
- Ability to read, interpret, and debug C++ firmware code.
- Proficiency in Bash for low-level system configuration and hardware initialization scripts.
- Ability to interpret technical documentation and electrical schematics for hardware/software architecture.
- Deep understanding of CAN, UART, Ethernet, and I2C communication interfaces.
- Responsible, organized, and methodical problem-solving approach.
Nice-to-haves
- Experience with Unix-like environments, command-line tools, and automation.
- Knowledge of Linux containers, Docker, and virtualization or isolation techniques.
- Experience building and scaling CI/CD automation and infrastructure management.
- Knowledge of Ubuntu and NixOS distribution management.
- Experience with CMake and other software build systems.
- Familiarity with DevOps practices involving GitHub, AWS, and Kubernetes.
- Soldering skills.
- Automotive-industry experience, including CAN, DBC, ISO-TP, UDS, or DoIP.
Skills
Python, Asyncio, Pyserial, Python-Can, Smbus2, GitHub Actions, Bazel, Nix, C++, Bash, Can, Uart, Ethernet, I2C, Docker
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.