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

  • 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.

Qualifications

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.

Preferred 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 Details

  • 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

Deliverables

  • 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.
Post a CV