About this role
JOB SUMMARY:
The Senior Firmware Design Engineer develops firmware and embedded software for a wide range of new and existing laboratories and process instrumentation. This position actively participates in a multi-disciplined product development team including Project Leaders, Hardware Design, Mechanical, Manufacturing, and Service Engineers. A Senior Engineer has significant relevant work experience and works well independently: making design decisions and applying a systematic work process and structured problem-solving methodology. Firmware engineers also work closely with hardware developers and others and have a working knowledge of hardware development and systems integration.
ESSENTIAL DUTIES AND RESPONSIBILITIES:
- Develops firmware architecture from product specifications and working closely with hardware engineers to optimize a design for cost, delivery, performance, and reliability.
- Sole responsibility for development of firmware/embedded software or a lead role with other firmware/software engineers to complete product development projects, depending on project scope.
- Work with EE and ME team in selecting critical components, architecture, and product implementation details.
- Perform engineering analysis, and feasibility assessments to ensure that the design meets performance and reliability requirements as defined in product specifications.
- Provide technical expertise and implement best practices for FW/ESW: documentation of firmware requirements and work product, test case development, create reusable modules, apply tools for evaluating code and version control.
- Provide technical support, conducting design reviews and presentations, and project updates.
- Apply and enforce best design practices to ensure performance, reliability, manufacturability, and testability.
REQUIRED EDUCATION AND EXPERIENCE:
- Must have M.S. in Electrical or Computer Science Engineering or 10+ years of relevant experience in the design of embedded software or firmware for instrumentation or related products.
- Fluent in C/C++ programming, experience with embedded RTOS, Linux, or similar OS, experience with Windows programming is a plus.
- Experience to include product design with 8/16/32 bit microprocessors: Freescale i.MX28/i.MX6, STMicro and Microchip processors a plus; embedded software to support precision analog and digital transducers, hardware drivers, LCD displays, printers, transducers, communication protocols, and motion control.
- Knowledge of instrumentation and control systems utilizing analog inputs, motor controls, real time clock, serial, I2C/SPI, CAN, USB, Ethernet.
- Proficiency with common development environments, and application of development tools, bug tracking, and code analysis. Github, JIRA and CI/CD pipeline a plus.
- Proven track record of taking a design effort from blank paper to volume production meeting all time, budget, and performance requirements.
- Experience with the integration of software and firmware in systems that coordinate control and measurement of physical parameters, including structured testing, calibration, and design-of experiments.