Linux Firmware Engineer (
R&D Linux Firmware Engineer
R&D Linux Firmware Engineer focuses on a range of embedded firmware development actives to create a high-quality embedded product. Our Firmware Engineers demonstrate a passion for problem solving, and attention to detail. You will be part of an agile team implementing innovative firmware/software solutions for embedded IoT sensor gateway products. You will be a development champion, driving continuous improvement of our processes, tools, and practices. This is a great opportunity to expand your development expertise while creating real, customer-focused products that are released worldwide.
Develop firmware for leading edge IoT sensor gateway products.
Gather product functional requirements, define proper firmware behavior, and implement firmware modules.
Work closely with other developers/teams to ensure proper interoperability with sensor products and cloud infrastructure.
Work closely with verification and validation (test) team to ensure full test coverage, and quick closure of reported firmware defects.
Recognize technical debt, propose mitigation options, and execute based on business priorities.
Clearly document code functionality and organization using best practices.
Work with technical support to diagnose and troubleshoot customer issues.
Champion process improvements to increase quality, reduce costs, and improve efficiency.
Participate in agile planning events including Scrums, sprint planning, and retrospectives.
Demonstrate ability to work with cross functional and global teams, with the ability to align and bring best in class processes, coding standards etc.
Work closely with other developer leads / managers / architects & test teams, gather requirements, prioritize development efforts & deliver business value.
Demonstrate strong knowledge in the software/firmware development domain, and industry standard secure development standards/protocols. Willingness to gain hands-on experience with the products/systems/domain while working as a developer.
Core Required Skills
Able to propose solutions, take ownership and lead development
Strong programming experience in Java, C/C++ and Python
Experience with connected gateways (MQTT, TCPIP websockets, building custom APIs, etc…)
Experience with creating and managing a persistent database in an embedded product
Experience developing on Linux Ubuntu and/or Yocto
Familiar with Secure Development Life Cycle (SDLC)
Good understanding of product development life cycle (Agile methodology, Integration testing etc)
Revision control (Git and Github)
A professional, proactive attitude with good interpersonal skills
Be a result-oriented team player. Leader & self-motivated
Good at oral & written communication in English, Fluent in French or willing to a learn a plus.
Additional Nice to Have Skills
Experience developing cloud connected IoT products
Familiar with Node Red
Dev ops experience and mindset. Capable of creating and maintaining a CI (Continuous Integration) system
Experience with common embedded protocols: I2C, SPI, USART, etc…
Background and understanding of electric circuit fundamentals, and able to read electronic schematic diagrams.
Should be able to handle and use basic lab equipment to aid in test and debug of embedded system: Oscilloscope, AC/DC power sources, multi-meters, etc…
Experience with wireless protocols: Zigbee, BLE, Thread, 802.15.4, etc…
Experience with bug reporting and collaboration tools Jira and Confluence
Interest or experience with smart devices, smart home systems and IoT Platforms
Interest or experience with environmental sensing mechanisms/processes, and ability to apply this knowledge when developing firmware.
CS with 3+ years of relevant development experience