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.
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:
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.
Support legacy code as necessary.
Provide support for customer’s problems/issues. This could be in-house, telephone, remote internet access, on-site, etc.
Bachelor's Degree or higher in Electrical Engineering or Computer Systems, with courses in Digital Signal Processing
Requires a minimum 5 years' experience of hands-on embedded real time operating systems development in addition to:
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,
Qt or Android frameworks,
Development of software to run on ARM devices,
Communication buses (SPI, I2C, I2S, TDM etc).
Normal office setting, except when traveling
|Reach Above Shoulder|
|Squat or Kneel|
|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|
|Ability to read from a computer monitor/fine print|
|Ability to speak effectively via phone/in person|
|Ability to hear via phone or in person|
|Ability to wear Personal Protection Equipment as required by position|