Locate this job
Firmware Engineers develop firmware in a multidisciplinary organization and collaborate with design, and/or hardware engineers in the design, development of Solid State Drives (SSDs). In this role the engineer will work within a firmware team to deliver firmware to meet or exceed product requirements. The team operates within an Agile development process and may define and/or respond to real time need for current or sustaining products. Develops solutions to problems utilizing formal education, judgment and formal software and/or firmware development and test process. Develops firmware for products supporting interface standards such as SATA, SAS, and PCIe.
Candidate should possess a Bachelor of Science degree with at least 10 years additional experience, or a Master of Science degree with at least eight years additional experience, in Computer Science or Computer Engineering.
- Strong C, C++ programming experience on embedded RISC microprocessors in windows development environments.
- Knowledge of embedded firmware, real-time operating system (RTOS), and HW/SW interactions.
- Experience in design and implementation of multitasking, event driven firmware using C.
- Experience developing unit tests for code quality validation.
- Good analytical, integration, support, and debugging skills.
- Strong verbal and written communication skills for interfacing with architecture, validation, manufacturing, and other disciplines.
- Experience architecting and developing production quality software, firmware, drivers and APIs spanning product generations.
- Experience with complex programs and cross functional teams in a matrixed organization.
- Knowledge of firmware development environments including compilers, debuggers, emulators, and toolchains.
Additional Preferred Qualifications:
- Experience in Agile development methodologies.
- Experience with hardware/software debugging using logic analyzers and protocol analyzers.
- Industry experience in storage protocols (SATA, SAS, or PCIe).
- Exposure to commercial product development environment.
- Experience with scripting languages such as Python or Perl.
- Experience in data manipulation and memory-management algorithms in flash memories.
Apply on company website