Responsibilities include, but not limited to:
Your responsibilities will include, but are not limited to, the following: Participate as a team member and work effectively inside and outside of the team. Demonstrate proficiency in coding skills, verification/validation, simulation, failure analysis, ASIC/FPGA/System bring-up, and the use of tools that support these activities. Validate customer requirements and perform failure analysis on FW related issues. Develop structured source code targeting the embedded environment associated with state-of-the-art memory. Perform design verification using a variety of verification methods, including simulation and product testing. Focus on firmware quality in the system and the target application. Participate in SCRUM/Agile processes and distributed code reviews. Develop new test tools and methods. Follow specified processes/procedures/workflows. Analyze equipment or software; you will demonstrate the effective analysis of functional or performance issues with the firmware and hardware in test environments or target host systems.
Technical communications will be required between other teams and the firmware team (both verbal and written). You will review, supply to, and craft clear documentation for deliverables that meet both internal specifications/standards and SSD industry standards and specifications.
This particular firmware role will entail working alongside other firmware engineers on the front-end interfaces of Micron Solid State Drives. Most code development tasks will require working closely with the NVMe protocol firmware, most likely focused on Enterprise SSD products.
- Solid understanding of firmware development, verification, system failure analysis, embedded systems design and real time embedded systems.
- Knowledge of modern real-time operating systems (RTOS), and multi-threaded environments
- Strong analytical skills, including the ability to find creative solutions to hard problems.
- Strong solid understanding of software engineering principles and designing and developing firmware using assembly and C/C++ programming.
- Strong debugging skills in an embedded firmware application including:
- Using development tools and IDE's such as Slick Edit, Eclipse, and GDB.
- Problem re-creation and trapping
- Logging and diagnostics
- Experience with digital hardware design and test equipment such as In-Circuit Emulators (ICE) and logic/bus analyzers
- Strong solid understanding analyzing complex firmware and hardware issues.
- Solid understanding working identifying and optimizing performance of critical algorithms.
- Solid understanding of ARM and ARC Microprocessors in multi-core environments
- Knowledge of the Agile software development process life cycle.
- Solid understanding of structured firmware development process and lifecycle.
- BS in Computer Engineering, Electrical Engineering, or Computer Science.
- Experience with the NVMe interface and protocol
- Experience with PCIe
- Experience with enterprise SSDs
- Strong skills in communicating complex technical ideas/concepts.
- Ability to work in a dynamic environment and communicate effectively (written and verbal) across multiple locations and teams.
- MS in Computer Engineering, Electrical Engineering, or Computer Science.