Job Description
As a Solid-State Drive (SSD) Firmware Engineer, you will be responsible for the Architecture design, Code implementation, and Quality testing of the low-level C/C++ code for protocol and algorithms functions that powers our current and future NAND Flash Memory products. Working closely as a member of SW/FW development team, you’ll will have impacts in all phases of the SSD product development. In Addition, you will drive the development of new firmware methods and practices that make rapid development of high-quality embedded code possible. Whether developing algorithms to manage NAND Flash or modifying host software drivers to enable cutting edge SSD features, your contributions will be vital to product shipment and success. You will need to work with various cross-teams to debug problems and remove integration roadblocks while continuously delivering tested features in an agile environment. Embedded development is defined by the intersection of software and the hardware platform. The specific team you’ll be joining has product design responsibilities impacting the product’s key features, performance, configuration, and customer requirements.
As a member of this team, you will develop C, C++, and Python code:
- Continuous integration and test operation, tools, and processes.
- Build and code testing tools, and general developer experience.
- Integration of third-party libraries and manage integration/updates under source control Configuration of firmware (both build-time and run-time) for feature settings/options and hardware variants.
- Test driven development of feature and firmware flows
- Support and enhance full software development process for product delivery
You must possess the below minimum qualifications and skills to be initially considered for this position.
Preferred qualifications are in addition to the minimum requirements and are considered a plus factor in identifying top candidates.
Qualifications
- The candidate must have a BS or MS degree in Electrical Engineering, Computer Engineering, Computer Science, or related field.
- Programming and Scripting Skills: C/C++/Python coding applications and source control management.
- C/C++ Source code development, review, control, and maintenance, preferably focused on embedded firmware or low-level OS drivers
- Firmware IDE development environments including compilers, debuggers, emulators, and tool-chains
- Development of unit level test simulators, static code analysis, and quality validation
- Strong software Debug Skills with the ability to analyze large amounts of data to resolve problems
Preferred Qualifications: 2+ years of experience in the following areas:
- Experience with ARM Cortex R7-R8 CPU designs and IDE development tools
- Source Control Management using GIT or Perforce
- Basic knowledge of storage interface standards, especially PCIe and NVMe Protocols
- Agile/Scrum development methodologies
- Development of test automation frameworks and test scripts in Python
- Embedded development techniques using hardware and firmware tools
- Software/firmware development processes including workflow and continuous integration validation
- Strong software Debug Skills with the ability to view problems with a high amount of data vectors