About This Role
Working as a Firmware Engineer, you will join a dynamic team and report to the Firmware Team Leader. This role focuses on developing and enhancing firmware solutions for the company's products, specializing in BSP layer development, middleware development, and architecture. You will contribute to the success of projects by designing, implementing, and optimizing firmware applications and middleware, with opportunities to work on cutting-edge technologies.
Responsibilities
- Design, develop, and maintain firmware at the application and BSP layer for embedded systems
- Develop and implement middleware components to facilitate communication between hardware and software layers
- Collaborate with cross-functional teams, including hardware engineers, software developers, and product managers, to define firmware requirements and specifications
- Collaborate with quality assurance teams to develop test plans and perform integration testing
- Conduct feasibility studies and provide input on firmware architecture and design decisions
- Optimize firmware performance, ensuring efficient resource utilization and minimizing power consumption
- Write clean, efficient, and well-documented code in accordance with coding standards and best practices
- Perform thorough testing and debugging of firmware to ensure high-quality and reliable products
- Stay up-to-date with the latest industry trends and advancements in firmware development
- Incorporate relevant technologies into projects, such as Edge AI
- Provide technical guidance and mentorship to junior engineers
- Perform other ad-hoc duties as assigned by supervisor
Requirements
- Bachelor
- Hands-on experience in firmware development on embedded Linux (Yocto/OpenWRT) and Zephyr RTOS
- Deep knowledge of embedded Linux internals, build systems, and BSP development
- Experience in application layer development, firmware architecture/design, middleware layer/library design, and multi-threaded programming
- Strong proficiency in C/C++, data structures, and algorithms
- Experience with software development tools, debuggers, emulators, and version control systems
- Good understanding of LTE, BLE, Wi-Fi, or GNSS
- Familiarity with MQTT, HTTP, TCP, and SSL/TLS
- Familiarity with communication protocols: UART, SPI, I2C, USB, Ethernet, and wireless protocols
- Knowledge of hardware design principles
- Strong problem-solving and debugging skills
- Good written and verbal English communication skills
Nice to have:
- Previous experience in Edge AI development
- Familiarity with Agile development methodologies