Hi, I’m Hoa Nguyen.

Email: hoanguyen@ucdavis.edu
GitHub: github.com/hnpl
LinkedIn: linkedin.com/in/hnpl
GoogleScholar: scholar.google.com/citations?user=rrs4CacAAAAJ

I’m a fifth-year PhD candidate at UC Davis (graduating December 2026), working with Professor Jason Lowe-Power on hardware/software co-design for memory systems. My recent work, Pickle, introduces a data prefetcher that interweaves the flexibility of software with the efficiency of specialized hardware: software decides what to prefetch, and hardware manages the prefetch requests. Essentially, this is how a software engineer would build a data prefetcher.

I have an extensive background in hardware architecture and software development. I’ve contributed to the gem5 simulator for 6 years at UC Davis, and I’ve interned at Google as a software engineer and at AMD as a researcher.

Research Interests: I began my PhD focused on the inevitable address translation bottlenecks in scatter/gather operations of vector architectures. Over time, I realized this was fundamentally a data prefetching problem. This insight led to Pickle, a hardware/software co-design data prefetcher for irregular memory accesses.


Research

My research focuses on building robust tools for hardware modeling and identifying the optimal interface between hardware and software.


Internships


Previous Work

As an undergrad in Prof. Ian Davidson’s lab, I collaborated with Zilong Bai on graph-based unsupervised feature selection, which results in a SIGKDD paper.


Teaching

I strongly believe that student engagement in classroom and research comes from a deep understanding of the problem, coupled with a fluency in using tools (e.g., using software, using facts, and using abstractions) for problem-solving. The recent emergence of LLMs makes this foundational understanding and command of tools even more essential, enabling students to formulate the right questions for AI assistants and verify the answers.


Previous Projects

As a simulator developer, I did a lot of “zero-to-one” projects, i.e., implementing something that does not exist.


Open-source Contributions


Updated: Jun 1st, 2026