Overview
Embedded QA & Test Engineer responsible for testing embedded C++ firmware on Linux/RTOS-based IoT gateways, including Azure IoT Hub communication, industrial protocols (Modbus and CAN bus), firmware/OTA update lifecycles, and test automation within CI/CD pipelines.
What you'll do
- Test embedded C++ firmware on Linux/RTOS-based IoT gateways.
- Validate Azure IoT Hub communication workflows, including telemetry messaging, cloud-to-device (C2D) commands, Device Twins, Device Provisioning Service (DPS), and certificate rotation and secure connectivity.
- Validate message queueing, offline buffering, reconnect logic, and retry behavior under real-world network conditions.
- Develop and execute test cases for Modbus Serial (RTU): timing behavior, register maps, function codes, and exception handling.
- Develop and execute test cases for Modbus TCP: multi-client scenarios, socket recovery, and error handling.
- Develop and execute test cases for CAN bus: arbitration, extended/standard IDs, error frames, bus overload, and edge-case behavior.
- Use protocol analyzers, CAN interfaces, Modbus simulators, and logic analyzers to capture and analyze traffic.
- Test firmware and system updates using hawkBit (deployment orchestration) and SWUpdate (A/B updates, failover, signing, rollback).
- Validate update workflows under stress, including interrupted updates (power loss, network drop), corrupted image scenarios, and update rollback and fallback behavior.
- Ensure secure update chain-of-trust, signature verification, and partition layout integrity.
- Develop automated test suites using Python or C++ to validate firmware, protocols, OTA processes, and system services.
- Build hardware-in-the-loop (HIL) automated test setups for regression, protocol simulation, and device behavior testing.
- Integrate automated tests into CI/CD pipelines (GitHub Actions, GitLab, Azure DevOps, Jenkins).
- Maintain automation tools for serial logging, bus capture, cloud message verification, and gateway diagnostics.
- Investigate firmware and system issues via logs, traces, core dumps, serial output, and protocol captures.
- Reproduce field issues in controlled environments and collaborate with engineering teams to diagnose root causes.
- Generate test reports, defect metrics, and release readiness assessments.
- Contribute to continuous improvement of testing tools, processes, and standards.
What you'll need
- Bachelor of Computer Science or Engineering or equivalent years of experience.
- 3 years of experience in embedded system testing, QA engineering, or IoT device validation.
- Experience testing embedded Linux or RTOS-based gateways.
- Hands-on experience with Azure IoT Hub (telemetry, C2D, twins, DPS).
- Hands-on experience with hawkBit and SWUpdate.
- Hands-on experience with Modbus Serial (RTU) and Modbus TCP.
- Hands-on experience with CAN bus testing and analysis.
- Strong understanding of C++ firmware behavior (reading and analyzing code, debugging tests).
- Strong Python scripting capability for automation and test tool development.
- Proficiency with lab equipment (CAN analyzers, Modbus simulators, USB-to-serial tools, oscilloscopes).
- Solid networking knowledge (TCP/IP, TLS, certificates, provisioning flows).
Nice to have
- Experience with IoT cloud platforms, fleet management, or gateway deployments.
- Experience with MQTT, AMQP, REST APIs, or proprietary field protocols.
- Experience building HIL / automated protocol simulation frameworks (pytest, Robot Framework, custom rigs).
- Familiarity with secure boot, signed firmware images, and SBOM/security compliance.
- Knowledge of Yocto, Buildroot, systemd, and Linux internals.
- Familiarity with J1939, CANOpen, or other industrial stacks.
- Exposure to DevOps practices for firmware CI pipelines.
- Knowledge of SQL server and general database management concepts.
Read the full description and apply on the company’s own careers page.