Full job descriptionWe are seeking an experienced Firmware/Embedded Software Engineer to participate in the design and development of firmware used in electronic instrumentation products. The ideal candidate will have expertise in real-time systems, signal processing, and algorithm development deployed on SOC. This role requires a hands-on engineer comfortable working from schematics, using bench test equipment, and writing firmware for low power processors and SOC.
Essential Functions- Design, develop, and optimize embedded firmware.
- Design for non-RTOS, state machine-based system design.
- Develop using Real-Time Operating systems such as FreeRTOS.
- Develop with ARM processors ranging from Cortex-M0+ SOC up to Arm-A15 multicore DSP.
- Implement device drivers to communicate with off chip peripherals.
- Implement user interfaces.
- Test, debug, and optimize code using oscilloscope, JTAG and SWD debuggers.
- Work closely with hardware and system engineers to achieve design goals.
- Integrate USB and Wireless protocols.
- Ensure operations adhere to laws, guidelines, ISO requirements.
- Comply with safety policies, practices, and procedures. Report all unsafe activities to supervisor and/or Human Resources.
Required Education and Experience- Bachelor’s degree in Computer Engineering, Computer Science, or Electrical Engineering
- A minimum of 7 years of experience in embedded software development
Preferred Qualifications- Hands-on experience with RTOS, and bare-metal programming
- Experience implementing DSP algorithms
- Experience with secure bootloaders supporting OTA updates
- Experience with GIT and Bitbucket
- Able to read schematics and data sheets
- Source code management using Git and Bitbucket
- Experience with Bluetooth is a plus
Work Environment- Well-lighted, heated and/or air-conditioned indoor office/production setting with adequate ventilation and moderate noise
- May work with or near moving mechanical equipment