Hi, I’m Hoa Nguyen.

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

I’m a fifth-year PhD student at UC Davis (graduating December 2026), working with Professor Jason Lowe-Power on rethinking data prefetching through the lens of hardware/software co-design, building systems that interweave the flexibility of software prefetching with the efficiency of specialized hardware. To put it differently: 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 during my PhD I’ve interned as a software engineer at Google and as a researcher at AMD.

I’ll be returning to Google for another internship in summer 2026.

Research Interests: I started my PhD thinking about the inevitable address translation bottlenecks in scatter/gather operations of vector architectures. At some point, I realized this has always been a data prefetching problem. This led to Pickle, a data prefetcher for irregular memory accesses.


Research

My research builds tools for hardware modeling and finds the right interface between hardware and software.


Internships


Teaching

I strongly believe that student engagement in classroom/research comes from understanding the nature of the problem, and from the fluency of using tools (e.g., using software, using learned facts, and using learned abstractions) for problem-solving. As an extensive user of coding agents (Copilot, Gemini, and Claude), I strongly believe that the understanding of the problem and the fluency are even more important in the AI/LLM era as these factors help students formulate the right questions to the AI.


Previous Works

I worked at Professor Ian Davidson’s lab during my undergraduate study, during which I co-authored a SIGKDD paper.


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: Apr 18th, 2026