NAND managing Algorithm Engineer
Roles & Responsibilities:
- Design & implement error recovery algorithm for Flash Interface Layer of SSD.
- Design & implement firmware code for Flash Interface Layer of SSD.
- Integrate developed code with other modules and resolve issues.
- Debug and solve the bugs on FPGA/ASIC environment.
- Proactively contribute in teamwork.
- Proactively engage with other teams including SoC, hardware, validation teams with good communication skills.
- Experience of developing error recovery algorithm.
- Experience or good knowledge over NAND flash commands and operations.
- Proficient in C or C++ programming.
- Hands-on experience in debugging tools such as JTAG, In-Circuit Emulator, etc.
- Excellent code and design review skills.
- Ability to generate product level quality output.
- Experience in software design and programming in embedded controller environment.
- Ability to work creatively and analytically in a problem- solving environment.
- Good oral and written skills for communication and documentation.
- Good understanding of ARM architecture and experience in ARM assembly is a plus.
- Good understanding in Linux kernel, device drivers and storage S/W stack is a plus.
- 5+ years of design and implementing experience in recovery algorithm
- Working experience with enterprise SSD
- 2+ years of working experience with Flash Interface Layer
- FA experience (need to know Flash Interface Layer level of SSD FW design/concepts)
- Windows/Linux system knowledge (user/kernel space)
- Team player
- Knowledge of SATA / PCIe-NVMe spec (at least know how to read/interpret the spec + know where to get the info/data)
- Working knowledge of protocol analyzer
- General SSD knowledge (host / back-end);
- SW automation
- Human attributes