Embedded Software Engineer
Supportwave
Date: 1 day ago
City: Cape Town, Western Cape
Contract type: Full time

Job Summary
We are seeking an Embedded Software Engineer to develop software for a Linux-based handheld device and scanner hardware. The role involves firmware development, hardware communication, real-time image processing, UI design, and backend support. The ideal candidate will have expertise in embedded systems, Linux development, and open-source collaboration.
Key Responsibilities
Required Skills
We are seeking an Embedded Software Engineer to develop software for a Linux-based handheld device and scanner hardware. The role involves firmware development, hardware communication, real-time image processing, UI design, and backend support. The ideal candidate will have expertise in embedded systems, Linux development, and open-source collaboration.
Key Responsibilities
- Develop and optimize a custom application for a Linux-based handheld device, ensuring a responsive and user-friendly interface.
- Design firmware for a scanner, enabling communication between motherboard and peripherals (e.g., I2C, SPI, UART) and integrating components like Raspberry Pi or LED drivers.
- Implement secure communication protocols (e.g., Wi-Fi Direct, USB, Bluetooth, MQTT, TCP/IP) for reliable data exchange between devices.
- Enable real-time image preview, buffering, and high-resolution capture with efficient data pipelines.
- Develop backend services using Python (FastAPI), Go, or Node.js for data uploads, logging, OTA updates, and cloud integration (e.g., AWS, GCP).
- Enhance an MVP-stage open-source software stack, collaborating with external developers and transitioning development in-house through code reviews and documentation.
- Solve complex technical issues using structured approaches and collaborate with hardware and software teams for integrated solutions.
Required Skills
- Proven firmware development experience with motherboard-peripheral communication (e.g., I2C, SPI, UART) and components like Raspberry Pi.
- Expertise in Linux-based embedded software development for devices with screens or battery units.
- Strong knowledge of communication protocols (e.g., Wi-Fi Direct, MQTT) and resolving issues like data loss or latency.
- Experience in real-time data processing, particularly for image handling.
- Backend development skills with Python (FastAPI), Go, or Node.js, and familiarity with cloud platforms.
- Open-source collaboration experience using Git, GitHub, or GitLab.
- Strong problem-solving and cross-team collaboration skills.
- Familiarity with RTOS or bare-metal programming.
- Experience with camera systems, sensors, or IoT devices.
- UI/UX design for embedded devices.
- Knowledge of cybersecurity for embedded systems.
- Experience with OTA updates and device fleet management.
- Work Model: Hybrid (1-2 days in-office).
- Start Date: Immediate.
- Work Hours: Primarily business hours, with occasional after-hours or weekend work to meet deadlines.
- Contract: Long-term contract
- Functional on-device application for a Linux-based handheld device.
- Reliable communication protocols for hardware interaction.
- Real-time image preview and high-resolution capture capabilities.
- Backend services for data uploads, logging, and OTA updates.
- Comprehensive documentation of software architecture and APIs.
See more jobs in Cape Town, Western Cape