Embedded Software Engineer
Location: Tucson, AZ
Department: Engineering
Reports To: Embedded Systems Lead / Engineering Manager
Employment Type: Full-Time
Position Summary
We are seeking a motivated Embedded Software Engineer with 1–5 years of professional experience developing firmware for embedded systems. The ideal candidate has hands-on experience with bare-metal programming, RTOS-based applications, and Python scripting for development, testing, and automation. This role involves designing, implementing, debugging, and validating embedded software for microcontroller-based products throughout the product lifecycle.
Key Responsibilities
- Design, develop, test, and maintain embedded firmware for microcontroller-based systems.
- Implement software solutions using both bare-metal and RTOS-based architectures.
- Develop device drivers and interfaces for peripherals such as SPI, I2C, UART, CAN, USB, ADC, PWM, and GPIO.
- Participate in firmware architecture, code reviews, and technical design discussions.
- Debug software and hardware integration issues using oscilloscopes, logic analyzers, JTAG/SWD debuggers, and other development tools.
- Develop Python scripts and tools for test automation, manufacturing support, data analysis, and development workflows.
- Create and maintain technical documentation, including software design specifications, test plans, and user documentation.
- Collaborate with hardware, systems, and test engineers to ensure successful product integration and validation.
- Support verification, validation, and troubleshooting activities during development and production.
Required Qualifications
- Bachelor’s degree in Electrical Engineering, Software Engineering, Computer Science, or a related technical discipline.
- 1–5 years of professional experience developing embedded software or firmware.
- Proficiency in C programming for embedded systems.
- Experience with Real-Time Operating Systems (RTOS) such as FreeRTOS, Zephyr, or similar. (or familiar with operating system concepts such as critical section, and schedulers)
- Experience developing bare-metal firmware for microcontroller-based systems.
- Familiarity with Python for scripting, automation, testing, or data analysis.
- Understanding of embedded system fundamentals, including:
- Interrupts and exception handling
- Timers and scheduling
- Memory management
- Communication interfaces and protocols
- Experience using version control systems such as Git, GitHub or GitLab.
- Strong analytical, debugging, and problem-solving skills.
Preferred Qualifications
- Experience with ST microcontrollers.
- Familiarity with Linux environments (debian-based preferred).
- Knowledge of communication protocols such as CAN, Ethernet, BLE, or MQTT.
- Experience developing automated test systems or hardware-in-the-loop (HIL) test environments.
- Familiarity with bootloaders, firmware update mechanisms, and secure embedded development practices.
Technical Skills Programming Languages
- C (required)
- C++ (preferred)
- Python (required)
Embedded Platforms
- ST or similar microcontroller architectures
- Nordic communications modules
- MCU-based embedded systems
Operating Systems
- FreeRTOS
- Zephyr
- Similar RTOS platforms
Tools
- Git
- JTAG/SWD Debuggers
- Oscilloscopes (preferred)
- Logic Analyzers (preferred)
Communication Protocols
Desired Attributes
- Strong attention to detail and commitment to software quality.
- Ability to work independently while collaborating effectively across multidisciplinary teams.
- Eagerness to learn new technologies and expand technical expertise.
- Excellent written and verbal communication skills.
- Self-motivated with a proactive approach to problem solving.
Compensation & Benefits
Salary: DOQ
Benefits
- Health, dental, and vision insurance
- Paid time off and company holidays
- Retirement savings plan
- Professional development opportunities
- Flexible work arrangements (where applicable)
Pay: $90,000.00 - $120,000.00 per year
Work Location: In person