We are seeking a highly skilled contract software engineer for a 3-month engagement, with a possible extension, to work on embedded systems development for an ESP32 module running FreeRTOS. This position will involve writing and optimizing code for both hardware and software interactions, ensuring efficient performance in a constrained environment.
Key Responsibilities:
Develop, test, and maintain software applications for ESP32 systems running on FreeRTOS.
Interface with cellular modem radio, WiFi, Bluetooth, and other radio modules on existing hardware.
Interface with HTTP JSON APIs over a raw cellular connection or IP pipe to a remote server.
Troubleshoot and optimize code for performance, memory usage, and responsiveness.
Collaborate with hardware engineers to integrate software with embedded systems.
Write clear and well-documented code, including unit tests and debugging.
Ensure software is stable, secure, and adheres to best development practices.
Develop a plan for implementing Over-The-Air updates of the application and OS (when necessary)
Required Skills and Experience:
Strong experience in C programming on a multi-core processor.
Knowledge of mature low level hardware interfaces, including GPIO, SPI, I2C, CAN and other I/O interfaces.
Proficiency with test fixturing of hardware and test automation.
Experience with embedded systems, particularly in a resource-constrained environment.
Strong problem-solving skills and ability to debug complex issues.
Ability to work independently or with a small team and deliver results on time.
Close familiarity with software engineering tools, software development methodology and release processes
Preferred Qualifications:
Duration: 3 months
Location: Remote or on-site (based on preference and location after gaining project familiarity)
Start Date: ASAP
This is an exciting opportunity for a contract engineer to contribute to an innovative project. If you have a passion for embedded systems and cloud communications development, we'd love to hear from you!