Job Summary:  
Client is looking for Firmware Engineer and this is hybrid position from Banglore.
Responsibilities:  
- Participate as a member of the NAND characterization team to architect, prototype and implement firmware for FlashTech NVMe Controllers for newest generations of NAND from various NAND vendors.
 
 
- Work on Machine Learning based NAND management algorithms.
 
 
- Generate comprehensive firmware and engineering documentation.
 
 
- Troubleshoot and resolve complex software problems in embedded real-time systems.
 
 
- Mentor and train other team members.
 
 
Experience:  
- Prior experience in SSD firmware development: NAND management algorithm development including but not limited to read error handling.
 
 
- Bachelor’s degree in computer science, computer engineering or equivalent field.
 
 
- 12+ years of related experience 
- Strong C/C++/Python programming and debugging skills.
 
 
- ARM system programming experience.
 
 
- Working knowledge of Machine Learning algorithms.
 
 
- Knowledge of SSD firmware architecture and algorithms, including: 
- Flash translation layer 
- Caching 
- NAND management 
- In-depth knowledge of NVMe and PCIe protocols 
Nice to Have:  
- Experience in the use of bus analyzers, JTAG, emulators and other firmware debugging tools.
 
 
- Agile development methodology experience.
 
 
- Lab time with PCIe and logic analyzers.
 
 
- Experience with Linux as a development environment.
 
 
- Board and first silicon bring-up.