Understanding NAND Is the Key to Reliable Storage
What do you currently do at AIO?
I am responsible for Firmware development for storage products such as SD Cards, UFDs, and eMMC within Solution Development Team 1.
My primary role is to develop NAND Flash control and protection algorithms. I analyze the characteristics of NAND Flash from different manufacturers and generations and develop algorithms to detect and recover from errors that may occur in products. Because NAND Flash has different operating characteristics and vulnerabilities depending on the manufacturer and generation, it is essential to design and optimize algorithms for each product’s specific characteristics.
We also use our internally developed NTP (NAND Test Platform) to analyze NAND characteristics and vulnerabilities. Using this platform, we debug various samples, conduct reliability evaluations, and collect and analyze data to validate our protection algorithms.
What skills or capabilities do you consider most important in your role?
I believe the most important capabilities are understanding the characteristics of NAND Flash and analyzing the root cause of a problem by bringing together data from multiple sources.
Because of its physical characteristics, NAND Flash can experience various errors depending on the operating environment and conditions, and the underlying cause is often difficult to identify. We therefore need to formulate hypotheses by combining data such as Firmware Logs, NAND status information, and reliability evaluation results, and then progressively identify the root cause through further verification.
This requires not only Firmware development skills, but also an understanding of how semiconductor devices operate and the mechanisms behind degradation and errors. Based on this understanding, accurately analyzing NAND behavior and designing protection algorithms suited to its characteristics are, in my view, core capabilities in storage Firmware development.
What has been your most rewarding experience?
One of my most rewarding experiences was developing NTP (NAND Test Platform).
Previously, we had to load test binaries directly onto products using a T32 debugger, which meant that only one sample could be tested on a single PC at a time. Collecting and organizing the resulting data also required considerable time. To overcome these limitations, I developed a Windows-based platform that could control multiple samples simultaneously through the product’s Host Interface, along with a scripting environment that could process output data according to specific testing needs.
As a result, we were able to establish a standardized testing environment that replaced much of the repetitive manual work and significantly improve the efficiency of debugging and reliability evaluation. What I found most rewarding was that this went beyond solving a single problem—it established a development foundation for the team to analyze various types of NAND and validate protection algorithms.
What would you like to achieve at AIO?
My goal is to build a technical foundation that enables NAND-related expertise to be shared and utilized across the organization.
Reliable storage Firmware development requires not only coding skills, but also a solid understanding of the operating principles and reliability characteristics of NAND devices. I would like to organize our accumulated development experience, problem-solving cases, measurement data, and analysis methods into training materials and hands-on programs so that junior engineers can develop their expertise more quickly.
Ultimately, my goal is to foster a development culture in which multiple teams can analyze and solve problems together based on a shared technical foundation, rather than relying on the experience of specific individuals.
What advice would you give to those preparing to join AIO?
AIO values the ability to analyze and solve problems independently.
In actual development work, there is often no predefined answer. Instead, engineers need to determine what should be investigated, plan the necessary steps, and work through the problem systematically. Debugging, in particular, requires the ability to connect different clues, such as Logs and test results, formulate hypotheses, verify them, and identify the root cause.
AI can be a useful tool in this process, but it cannot replace the engineer’s role in understanding the problem and making sound judgments. If you build strong fundamentals and consistently gain hands-on experience solving problems on your own, I believe you can grow significantly at AIO.
