About the Role
Our client, a prominent player in the Industrial Internet of Things (IIoT) sector, is seeking a highly skilled Senior Software Engineer to join their dedicated team in Richards Bay, KwaZulu-Natal . This is an exceptional opportunity to contribute to the development of innovative embedded systems that power industrial automation and data acquisition solutions. You will be at the heart of designing, implementing, and testing firmware and software for a range of cutting-edge IoT devices. The role demands a deep understanding of real-time operating systems, embedded C/C++, and network protocols. You will work closely with hardware engineers and product managers to bring sophisticated industrial solutions to life. This position is based at our state-of-the-art facility in Richards Bay, offering a collaborative and challenging work environment where your expertise will be valued and your contributions will have a direct impact on the company's success and the advancement of industrial technology. We are committed to fostering a culture of innovation and continuous improvement.
Key Responsibilities
- Design, develop, and maintain firmware and embedded software for IoT devices using C/C++.
- Develop and integrate drivers for various sensors, communication modules, and microcontrollers.
- Implement and optimize real-time operating systems (RTOS) for embedded applications.
- Design and implement network communication protocols (e.g., MQTT, CoAP, TCP/IP) for IoT devices.
- Perform unit testing, integration testing, and system testing to ensure software reliability and performance.
- Collaborate with hardware engineering teams to define hardware requirements and troubleshoot hardware/software integration issues.
- Optimize code for memory usage, processing power, and power consumption.
- Participate in code reviews and contribute to improving software development processes and best practices.
- Troubleshoot and debug complex issues in embedded systems.
- Contribute to the design of scalable and robust IoT architectures.
Requirements
- Bachelor's degree in Electrical Engineering, Computer Engineering, Computer Science, or a related field.
- 5+ years of experience in embedded software development.
- Proficiency in C and C++ programming languages for embedded systems.
- Experience with real-time operating systems (RTOS) such as FreeRTOS, Zephyr, or VxWorks.
- Strong understanding of microcontroller architectures (e.g., ARM Cortex-M).
- Familiarity with embedded communication protocols (e.g., SPI, I2C, UART, CAN).
- Experience with IoT communication protocols (e.g., MQTT, CoAP, HTTP).
- Knowledge of software development tools, including compilers, debuggers, and version control systems (Git).
- Experience with hardware-software co-design and debugging.
- Excellent problem-solving and analytical skills.
- Strong communication and teamwork abilities.
Benefits
- Competitive salary and performance-based incentives.
- Comprehensive medical, dental, and optical insurance.
- Provident fund contributions and life cover.
- Opportunities for professional development and certifications.
- Access to advanced testing and development equipment.
- Relocation assistance available for candidates moving to Richards Bay.
- A stable and growth-oriented work environment.
- Employee wellness programs.