DescriptionNova's Materials Metrology Division is looking for a skilled Firmware Engineer (Embedded) to design, develop, and test firmware and software for our core hardware platforms. The engineer will collaborate closely with electrical and systems engineering teams to integrate software with physical components, participating in the entire software development life cycle from initial board bring-up, development, testing, and transition to production.
Pay Range: $130,000- $170,000 Annually (DOE)
Role Responsibilities- Develop and maintain firmware for highly reliable industrial electronics and electrical systems both existing and next generation NOVA metrology platforms.
- Design and implement efficient, robust, and maintainable C code targeting ARM cores and STM32 microcontrollers.
- Collaborate with hardware teams to bring up new boards, understand schematics, and design/modify device drivers.
- Analyze and optimize system performance, memory management, and process execution.
- Conduct hardware-in-the-loop (HIL) testing, unit testing, and debugging using scopes, logic analyzers, and emulators.
- Adhere to continuous integration and deployment (CI/CD) pipelines, maintain version control, and write technical documentation.
Requirements- A minimum of a Bachelor's or Master's degree in Computer Engineering, Electrical Engineering, Computer Science, or a closely related field is required.
- 3+ years of professional experience in the development of embedded firmware and software systems is required.
- Demonstrated experience working at the hardware-software interface, including reading and writing hardware registers, familiarity with assembly language, and the ability to interpret hardware specifications.
- Strong proficiency in programming languages such as C/C++ for embedded system development.
- Proven experience in compiling C code, including diagnosing and resolving compiler and linker errors; hands-on experience with Windows-based development environments is required.
- Experience with microcontrollers, microprocessors, and hardware-software integration, along with familiarity with low-level communication protocols such as I2C, SPI, UART, USB, or Ethernet.
- Practical experience using laboratory and debugging tools, including oscilloscopes, multimeters, and hardware debuggers (e.g., J-Link), to diagnose and resolve complex system issues.
Preferred Qualifications- Experience with software version control systems, such as Git.
- Experience with scripting languages, such as Python, for test automation and tooling.
- Familiarity with FPGA programming and development.
- Interpersonal and communication skills, both verbal and written.