Firmware Engineer (Embedded System)
Job Description
We are seeking for a motivated and experienced 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.
- Gather and analyse users’ requirements and interpret them into the design requirements.
- Develop clean and robust firmware for our STM32-based microcontroller with STM32CubeIDE, Keil MDK, Arduino, PlatformIO, etc..
- 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.
- 3+ 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 and/or ARM Cortex-based microcontrollers.
- Experienced in STM32CubeIDE, Keil MDK, Arduino, PlatformIO
- Experienced in implementation of PID controller, motor control, 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.
Firmware Engineer (Embedded System)
Job Description
We are seeking for a motivated and experienced 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.
- Gather and analyse users’ requirements and interpret them into the design requirements.
- Develop clean and robust firmware for our STM32-based microcontroller with STM32CubeIDE, Keil MDK, Arduino, PlatformIO, etc..
- 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.
- 3+ 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 and/or ARM Cortex-based microcontrollers.
- Experienced in STM32CubeIDE, Keil MDK, Arduino, PlatformIO
- Experienced in implementation of PID controller, motor control, 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.