About the Role
Our client, a rapidly growing technology firm specializing in innovative IoT solutions, is seeking a highly skilled and experienced Senior Firmware Engineer to join their distributed engineering team. This is a fully remote position, offering the flexibility to work from anywhere within South Africa. You will play a key role in the design, development, testing, and deployment of embedded firmware for our next-generation connected devices. The ideal candidate will have a deep understanding of embedded systems, real-time operating systems (RTOS), and a passion for creating robust, efficient, and scalable firmware solutions. You will collaborate closely with hardware engineers, software developers, and product managers to bring cutting-edge products to market, working entirely remotely.
Key Responsibilities
- Design, develop, and implement embedded firmware for microcontrollers and embedded systems using C/C++.
- Develop and maintain real-time operating systems (RTOS) and drivers for various hardware platforms.
- Write clean, efficient, and well-documented code, adhering to strict coding standards.
- Perform unit testing, integration testing, and debugging of firmware to ensure reliability and performance.
- Collaborate with hardware engineers to define firmware requirements and resolve hardware/software integration issues.
- Work with software teams to integrate firmware with cloud platforms and mobile applications.
- Contribute to the firmware architecture design and technology selection process.
- Participate in code reviews and provide constructive feedback to team members.
- Develop and maintain firmware documentation, including technical specifications and user guides.
- Stay current with emerging trends and technologies in embedded systems and firmware development.
Requirements
- Bachelor's or Master's degree in Computer Engineering, Electrical Engineering, Computer Science, or a related field.
- Minimum of 7 years of professional experience in embedded firmware development.
- Proficiency in C and C++ programming languages for embedded systems.
- Extensive experience with real-time operating systems (RTOS) such as FreeRTOS, Zephyr, or similar.
- Strong understanding of embedded hardware architectures, peripherals, and communication protocols (e.g., SPI, I2C, UART, USB, BLE, Wi-Fi).
- Experience with debugging tools (e.g., JTAG, logic analyzers) and development environments.
- Familiarity with version control systems (e.g., Git) and CI/CD pipelines for embedded systems.
- Excellent problem-solving, analytical, and debugging skills.
- Strong communication and collaboration skills, essential for remote teamwork.
- Demonstrated ability to work independently and manage time effectively in a remote setting.
- Experience with IoT protocols and platforms is a significant plus.
Benefits
- Highly competitive salary and potential for stock options.
- Comprehensive health, dental, and vision insurance.
- Generous remote work stipend for home office setup and expenses.
- Opportunities for rapid career advancement in a fast-growing startup environment.
- Flexible working hours to accommodate different time zones.
- Access to online learning platforms and professional development resources.
- Annual team retreats and virtual social events.