Senior Firmware Engineer

We are looking for an efficient, flexible, meticulous and self-motivated firmware engineer. As a member of the firmware team, you will be involved in all areas of firmware development including prototyping of new concepts, development of features, unit testing, issue investigations, code maintenance, peer code review, and documentation. You will be responsible for managing the design integration and launch of power conversion products. We strive to make the most of every regulatory requirement to achieve a superior quality design.
The Engineering Services team features a collaborative environment with creative, smart people and cutting edge technologies. Engineering excellence is expected and encouraged. Come join us in crafting solutions the world doesn’t know of yet!

Key Responsibilities:

  • Participate in product definition, specification and requirements analysis working with cross functional stakeholders.
  • Collaboration on firmware architecture and development strategy with 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 overall solution.
  • Assist with evaluating existing and emerging technologies to identify solutions that will reliably operate in a wide range of installed environments.
  • 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 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.
  • Minimum of 8 years of related work experience.
  • Proficient in C.
  • 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 in designing and tuning control systems ( PID , Closed loop control, Open loop control, Matlab simulation and model development, digital filters).
  • Must have experience in instrumentation (measurements, calibration, 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 cycle 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.
  • Can work efficiently in a remote environment.

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