About the Role
Our client, an innovative technology company specializing in the development of advanced IoT devices and embedded systems, is seeking a highly skilled Senior Software Engineer to join their globally distributed team. This is a fully remote position, allowing you to work from anywhere within South Africa. You will play a crucial role in the design, development, and implementation of firmware and software for our next generation of intelligent hardware products. The ideal candidate will have a strong background in embedded C/C++, real-time operating systems (RTOS), and a passion for creating robust, efficient, and scalable software solutions. This is an exceptional opportunity to contribute to cutting-edge technology from the comfort of your home office.
Key Responsibilities
- Design, develop, test, and debug embedded software and firmware for microcontrollers and embedded systems.
- Work with real-time operating systems (RTOS) to manage system resources and ensure timely execution of tasks.
- Develop drivers and low-level software for various hardware peripherals (e.g., sensors, communication interfaces).
- Implement communication protocols (e.g., TCP/IP, MQTT, Bluetooth, Zigbee) for IoT device connectivity.
- Collaborate with hardware engineers to define system requirements and ensure seamless hardware-software integration.
- Write clean, maintainable, and well-documented code.
- Participate in code reviews and contribute to improving software development processes and best practices.
- Troubleshoot and resolve complex software and system issues.
- Stay current with emerging technologies and industry trends in embedded systems and IoT.
Requirements
- Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field.
- Minimum of 7 years of professional experience in embedded software development.
- Expertise in C and C++ programming languages for embedded systems.
- Strong experience with real-time operating systems (RTOS) such as FreeRTOS, Zephyr, or similar.
- Solid understanding of computer architecture, data structures, and algorithms.
- Experience with embedded communication protocols and hardware interfaces (SPI, I2C, UART).
- Familiarity with version control systems (e.g., Git) and build systems.
- Excellent problem-solving, analytical, and debugging skills.
- Strong communication and collaboration skills, essential for a remote team environment.
- Must be eligible to work remotely in South Africa.
Benefits
- Our client offers a competitive salary, a comprehensive benefits package including medical aid and retirement contributions, and the significant advantage of a fully remote work setup.
- This role provides the flexibility to work from anywhere, eliminating commute time and offering a great work-life balance. You will be part of an innovative global team, working on exciting and challenging embedded systems projects that push the boundaries of technology. Opportunities for professional growth and development are abundant.