Senior Firmware Engineer | Tucson Agile Release Team
We are looking for a Senior Firmware Engineer to join our team in Tucson. In this role, you will use your expertise in C/C++ to design and build robust embedded solutions that sit at the intersection of hardware and software. You’ll be a critical part of a cross-functional team, taking features from low-level drivers to final system integration, ensuring our code is performant, memory-efficient, and rock-solid.
Key Responsibilities
- Embedded Design: Architect and implement firmware features using C/C++, ensuring designs are optimized for constrained environments (CPU, memory, and power).
- Hardware-Software Integration: Develop low-level drivers and middleware to interface with sensors, actuators, and communication peripherals.
- Automated Hardware Validation: Build and maintain automated testing frameworks—primarily using Python—for Hardware-in-the-Loop (HIL) testing and system validation.
- Agile Execution: During PI and iteration planning, break down complex hardware-software features into manageable tasks, accounting for hardware dependencies and lead times.
- Technical Governance: Lead deep-dive code reviews and technical spikes to ensure firmware aligns with safety standards and system-level architecture.
Agile Planning & Collaboration
- Synchronized Development: Participate in technical discussions during Program Increment (PI) planning, specifically addressing hardware/firmware dependencies.
- Backlog Refinement: Organize and prioritize the team backlog, managing technical debt and balancing feature velocity with system stability.
- Cross-Functional Bridge: Work closely with Electrical and Mechanical Engineering teams to translate hardware requirements into technical firmware reality.
- System Demos: Demonstrate firmware progress on target hardware to stakeholders, explaining technical logic and timing constraints clearly.
Qualifications
Required Technical Skills
- C/C++ Mastery: Extensive professional experience in embedded C/C++ development for microcontrollers (ARM Cortex-M, ESP32, etc.) or RTOS-based systems.
- System Architecture: Ability to design maintainable, scalable firmware architectures including interrupt handling, memory management, and state machines.
- Low-Level Protocols: Hands-on experience with communication interfaces like I2C, SPI, UART, CAN, or USB.
- Debugging: Proficiency using JTAG/SWD debuggers, logic analyzers, and oscilloscopes to troubleshoot hardware-software interactions.
Preferred Experience
- Python for Tools: Experience using Python for scripting, data analysis, or building test harnesses.
- RTOS & Bare Metal: Familiarity with FreeRTOS, Zephyr, or similar real-time operating systems.
- Agile Proficiency: Experience working within the Scaled Agile Framework (SAFe) or similar iterative environments for hardware development.
- Mentorship: A track record of leading firmware projects or guiding junior engineers through complex system integrations.
Soft Skills
- Technical Articulation: The ability to explain complex timing issues or register-level bugs to non-technical stakeholders.
- Relentless Troubleshooting: A methodical, "detective-like" approach to solving intermittent hardware/software issues.
- Reliability Mindset: A commitment to writing code where "it works on my machine" isn't enough—it has to work on the silicon every single time.