Principal Firmware Engineer

Key Responsibilities:

  • Participate in product definition, specification and requirements analysis working with cross-functional stakeholders
  • Collaboration on firmware architecture and development strategy with a particular focus on wired and wireless networks
  • Design, code, integrate, test, support and enhance software solutions for embedded microprocessors used in wired and wireless communication devices, switching power supplies, sensors, and gateways
  • Clearly communicate design constraints and trade-offs to other team members and management, playing an advisory role as a subject matter expert to ensure that optimal design decisions are made
  • Perform system integration and validation testing activities, including verification of interoperability within an overall solution
  • Assist with evaluating existing and emerging technologies to identify solutions that will reliably operate in a wide range of installed environments
  • Architecting, developing, integrating and delivering embedded and PC software in a regulated product development process
  • Participating in all project lifecycle phases – from design and code development through unit testing, documentation, and release
  • Working with a broad team to translate customer requirements into the best possible solution within a resource, time, and technical constraints
  • Other duties may be assigned 

Key Qualifications and Skills:

  • Bachelor’s or Master’s degree in Computer Science, Computer Engineering, Electrical Engineering or a related field
  • 10-15 years of related work experience
  • Proficient in C Programming
  • Must have experience in designing code frameworks (kernels, schedulers), drivers and legacy codes for 8bit, 16bit, 32bit micro-controllers and DSPs (Microchip, TI, ST, Freescale, etc)
  • Must have experience with communication protocols such as I2C, SPI, RS-485, Ethernet, etc.
  • Must have experience interacting with software debugging in an embedded and electronics environment
  • Must have experience in PC Application programming such as Python, .NET, VBA is a plus
  • Must have experience in creating state machines, flow charts, etc.
  • Comfortable using oscilloscopes, multi-meters, power supplies, etc.
  • Capable of reading hardware schematics and data sheets
  • Experience with software development life cycles such as Agile, Scrum, and CMMI
  • Familiarity with version control systems (SVN), and release methodologies
  • Familiarity with MISRA or other coding standards is a plus
  • Disciplined and detail-oriented; experience delivering robust, readable code
  • Excellent communication skills, both verbal and written
  • Excellent analytical and problem-solving skills
  • Experience in recreating sporadic types of issues/failures using various debugging techniques
  • Experience working in a fast-paced, growing organization with the ability to balance multiple priorities and objectives simultaneously

Send your CV to and we’ll reach out to you.

firmware engineer