Embedded Software Engineer – Hard Real-Time Systems
Develop and maintain low-level C/C++ software, drivers, communication protocols, and Hard Real-Time embedded systems from system definition through customer integration.
Responsibilities
- Develop and maintain low-level C/C++ drivers and system software components
- Implement and maintain UART, SPI, CAN, Ethernet, and other communication protocols
- Develop software for Hard Real-Time, Bare Metal, FreeRTOS, and VxWorks environments
- Analyze, document, implement, and test system requirements
- Plan and perform unit, integration, and system testing
- Optimize real-time performance and integrate software with hardware components
- Collaborate with systems, test, hardware, FPGA, and project engineering teams throughout the product lifecycle
- Prepare technical specifications, design documentation, and test documents
Requirements
- Bachelor’s degree in computer science, software engineering, electronics engineering, or exact sciences
- At least 3 years of experience developing Hard Real-Time systems
- Proven experience with FreeRTOS
- Strong systems-level perspective, motivation, teamwork, and interpersonal skills
Nice to have
- Experience with hardware components, interfaces, and communication protocols
- Experience developing, integrating, and testing real-time embedded systems
- Ability to independently lead development from requirements through final testing and customer deployment
- Experience writing technical specifications, design documents, and test documentation
- Understanding of low-level software layers, direct hardware access, operating-system integration, and hardware-facing APIs