Essential Job Functions
Work with product management team to understand/develop firmware requirements
Modular Firmware Design of the product/system by following best design practices
Ability to learn/explore new technology solution to meet the product needs
Analyze, design, and implement solutions to requirements
Propose improvements to identified software inefficiencies and deficiencies
Utilize scopes, meters, power sources etc. as necessary to complete the task
Participate in sprint planning sessions.
Identifies test cases necessary for verifying firmware requirements.
Implements or manages the implementation of test cases
Manage code changes using version control tools.
Participate in code reviews.
Execute or manage the execution of test cases
Log defects in project defined defect tracking tool
Read and follow relevant project engineering practice and engineering standards documents.
Education / Experience Required
Bachelor of Engineering in Electronics or Equivalent Engineering with a focus on programming
Embedded development experience is a must with ability to understand hardware interfaces and work with hardware engineering team to analyze, troubleshoot technical challenges.
Ability to work in a global engineering environment
Working on Bluetooth communication will be added advantage
Knowledge / Skills / Abilities
8-10 years of embedded firmware development experience for an embedded product
Knowledge and experience with 8, 16, and 32 bit Micro-controllers
Knowledge and experience with agile development methodologies
Knowledge and experience with distributed version control such as (GIT, Mercurial)
Expert programming skills with C / C++ compilers and linkers
Standalone and RTOS based firmware development experience.
Experience developing low level driver interfaces for I2C/SPI/UART/Display/
Strong analytical and debugging skills
Knowledge or ability to learn requirements management database tools such as (Jama)
Ability to participate in a team environment
Must have a commitment to quality
Methodical problem-solving skills are needed