ESSENTIAL DUTIES & RESPONSIBILITIES:
Duties include, but are not limited to the following:
- Expert level experience developing embedded software (vs testing) using C in an embedded environment.
- Experience using scripting languages such as TCL and Perl to automate testing and debugging.
- Experience using processors embedded in Xilinx and Altera FPGAs.
- Experience using Microsoft project to plan, estimate, and track project progress.
- Specify, implement, modify, and debug new and existing programs to control the testing, debug, and manufacture of secure storage products.
- Implement and update Excel spreadsheets that demonstrate product performance and reliability.
- Experience using common lab equipment such as Power Supplies, Scopes, and Logic Analyzers to debug and characterize new product firmware.
- Use protocol analyzers to debug product issues and develop methods for improving product performance.
- Conceive, specify, and implement test algorithms, tools, scripts, and procedures to aid in the production of new storage products.
- Create and review requirements documents and product documentation.
- Prepare and participate in formal design reviews and product proposals.
- Use scientific analysis and mathematical methods/models to predict product performance and reliability.
- Consult with team members and staff, as necessary, to successfully complete projects on time.
- Support product embedded software through the entire life cycle.
- Participate in verification testing and product certifications.
- Plan and document expected weekly work tasks and report task status on a weekly basis.
- Commit to and meet scheduled deadlines for tasks assigned.
- Work with consultants or outside agencies as required.
- Other design, development, and support tasks as assigned.
- Minimum 8+ years of experience specifying, implementing, debugging firmware, preferably in C, in an embedded environment.
- Expert understanding of stacks, interrupts, interrupts, parameter passing, content switching, and microprocessor operation.
- Understanding of hardware functions such as FIFOs, FLASH, DRAM, SRAM, DMA, registers, pipelines, and state machines.
- Proven expertise and knowledge of best-practice software engineering principles using structured programming and configuration management.
- Experience with scripting languages such as TCK, Perl to automate production and testing tasks.
- Strong knowledge of software development tools (IDEs, compilers, linkers, debuggers).
- Ability to read and understand complex technical documents such as schematics or data sheets.
- Basic understanding of techniques and algorithms used for error correction in memory devices.
- Knowledge of solid-state drive architectures and standards is a plus
- Experience with storage protocols such as PCIe, SATA or NVMe is a plus.
- Ability to communicate effectively with upper-level management.
- Ability to think out-of-the-box and create unique solutions to complex problems.
- Excellent writing, verbal, and interpersonal skills.
- Outstanding work ethic with the passion and energy to meet commitments and schedules.
- Excellent writing, spelling, verbal, and interpersonal skills.
- Must be able to obtain a security clearance.
- Applicants must be a U.S. citizen
- Masters preferred