Positions Available - Firmware Engineer II - Louisville, KY

Position Location

Louisville, Kentucky

Position Summary

The Firmware Engineer II will be responsible for a critical aspect of our product's core functionality. This role will lead the efforts for developing efficient embedded firmware for microprocessors and/or DSPs. 


Essential Functions

Participate in firmware code reviews and create documentation for firmware projects including block diagrams, state diagrams, coding specifications, product descriptions, etc. as mandated by company policies or project requirements.

Write code for embedded projects in C, C++ and occasionally ASSEMBLY or other applicable languages for use with microprocessors and DSPs. Most projects involve the control and implementation of audio processing elements (Compressors, Routers, Limiters, Delays, etc.). This also includes the following elements:

  • Compile code with no errors or warnings in a format appropriate to the design.
  • Load, test and debug the code on the target (may require using emulators, simulators, etc).
  • Generate all required source and output files to be stored for later reference, modification or replication.

Sustain existing products by implementing new features/capabilities, interfaces and bug fixing.

Support or liaise with outside contractors on projects that involve DSP or embedded firmware.

Perform system analysis, planning, design, development and test of limited-scope projects and/or subsystems.

Guide or perform the work necessary to resolve complex issues within existing products and portions of new designs.

Debug prototype hardware.

Develop test procedures to be used by others for validating new or revised code implementations.

Assist in the development of test procedures used in production to fully test final assemblies.


Essential Tasks

Support legacy code as necessary.

Provide support for customer’s problems/issues. This could be in-house, telephone, remote internet access, on-site, etc.


Qualifications

Education

Bachelor's Degree or higher in Electrical Engineering or Computer Systems, with courses in Digital Signal Processing

Experience

Requires a minimum 5 years' experience of hands-on embedded real time operating systems development in addition to:

C/C++ programming,

Digital Signal Processing,

Test Driven Development,

Real Time Operating Systems,

Writing secure networked enabled applications (IPv4/IPv6 sockets and OpenSSL),

Multimedia streaming protocols (RTP etc),

Audio testing tools (Audio precision etc),

Linux/Posix kernel module and device driver development,

Yocto,

Qt or Android frameworks,

Development of software to run on ARM devices,

Communication buses (SPI, I2C, I2S, TDM etc).


Skills

Computer Skills

  • Proficiency with MS Office (Excel, Word, and Outlook)
  • Advanced programming in assembly, C, and C++
  • Intermediate knowledge of embedded systems, hardware, and firmware
  • Intermediate knowledge of DSP algorithms and programming methods

Other Requirements

  • Proven history of successful product development from concept to production
  • Proficient with oscilloscopes, meters, and other basic lab equipment.
  • Must be familiar with compilers, assemblers, linkers, simulators, etc.
  • Familiarity with CAD tools
  • One year ISO 9001 or QS 9000 work environment a plus.

Work Environment

Normal office setting, except when traveling      


Physical Demands

N O F C
Physical Abilities
Stand
Walk
Sit
Handling/Fingering
Reach Outward
Reach Above Shoulder
Climb
Crawl
Squat or Kneel
Bend
Lift / Carry
10 lbs or less
11 - 20 lbs
21 - 50 lbs
51 - 100 lbs
Over 100 lbs
Push / Pull
12 lbs or less
13 - 25 lbs
26 - 40 lbs
41 - 100 lbs
Other Physical Requirements
Vision
Ability to read from a computer monitor/fine print
Speech
Ability to speak effectively via phone/in person
Hearing
Ability to hear via phone or in person
Smell
Taste
PPE Usage
Ability to wear Personal Protection Equipment as required by position