Firmware Engineer
Designs, develops, and optimizes embedded firmware for electronic instrumentation products, working on both non-RTOS state-machine systems and FreeRTOS on ARM Cortex-M0+ through Cortex-A15 multicore DSP SOCs. Day to day this means writing low-power C firmware, device drivers, secure bootloaders, and UIs, and testing with oscilloscopes and JTAG/SWD debuggers alongside hardware engineers.
- Compensation
- Not disclosed
- Location
- Garland, Dallas
- Work setup
- Not specified
- Seniority
- Not specified
- Employment
- Not specified
- Experience
- 7+ years
- Category
- Embedded
- Posted
Skills
Must have
- Bachelor's degree in Computer Engineering, Computer Science, or Electrical Engineering
- Minimum 7 years of experience in embedded software development
- Hands-on engineer comfortable working from schematics, using bench test equipment, and writing firmware for low power processors and SOC
Nice to have
- Proficient in C
- Hands-on experience with RTOS and bare-metal programming
- Experience implementing DSP algorithms
- Experience with secure bootloaders supporting OTA updates
- Source code management using Git and Bitbucket
- Able to read schematics and data sheets
- Experience with Bluetooth is a plus
Full description
We are seeking an experienced 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.
- Use secure boot loaders.
- 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
- Proficient in C
- 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
Physical Demands
Moderate physical activity performing non-strenuous daily activities of a productive/technical nature to work from a sitting or standing position.
- Manual dexterity sufficient to reach/handle items and work with the fingers