Job Description & Requirements
We are seeking for a motivated Firmware Engineer to join our team! As a Firmware Engineer, you will be responsible for supporting the firmware development team in designing, developing, and testing firmware for a microcontroller on our products.
You will be responsible for full-stack firmware development from design to implementation to testing and documentation.
Responsibilities
Work closely with cross-functional teams to ensure project delivery on time.
Develop clean and robust firmware for our STM32-based microcontroller with STM32CubeIDE and PlatformIO.
Develop a communication protocol over UART, WIFI, and BLE.
Develop a driver for multiple sensors and actuators over UART, I2C, SPI, CAN, PWM etc.
Implement control system into a microcontroller.
Perform firmware testing and validation on the product.
Generate and maintain firmware development documentation.
Read schematics, and utilise oscilloscopes and other test equipment in the development and debugging of firmware.
Working closely with and providing technical support to resolve issues to our customers when needed.
Research technical issues related to firmware and provide recommendations.
Participate in ad hoc software projects and assignments as required.
Requirements
Bachelor’s degree in Electronic/Electrical/Computer Engineering, Computer Science, Software Engineering or related fields.
1+ years of experience in real-time embedded system development
Good understanding of wide aspects of embedded systems (microcontroller architecture, block diagrams, schematics, register maps, etc.)
Must process strong knowledge of C/C++, familiar with Git and bash.
Experienced in STM32-based microcontrollers.
Experienced in STM32CubeIDE and PlatformIO
Experienced in implementation of PID controller and basic control theory.
Strong knowledge of hardware communication protocols such as UART, I2C, SPI, and CAN.
Possess clean, highly readable, and modular coding practices.
Experience with debugging tools such as oscilloscope and logic analyser.
Excellent teamwork skills, flexibility, and ability to multitask.
Preferred qualifications/ competencies
Knowledge of Python
Experience with FreeRTOS
Experience with PX4 and Ardupilot
Experience with OTA update design
Experience in implementing communication protocols over UART, WIFI (TCP), and BLE.
Experience with advanced robotics control and filtering (Kalman Filtering and PID)
Experience with debugging and interacting with electrical and mechanical hardware.
Experience with computer vision, machine learning, and deep learning.
#J-18808-Ljbffr