About Me

I’m a PhD candidate in Computer Science at the University of California, Irvine in the Center for Algorithms and Theory of Computation. My academic advisor is Dr. Michael Goodrich.

My current research interests are in the field of designing algorithms and data structures for massively parallel computing systems. I am currently working on several projects related to GPU programming, from both a theoretical and experimental perspective. I also have an interest in data sketching algorithms, which are the summarization of large data sets in a small amount of space (sadly this has nothing to do with drawing, which is not a strong suite of mine).

Outside of research, I consider programming to be one of my main hobbies. I am a big fan of Neovim as a coding environment and enjoy tweaking my setup during my free time. I also spend a non-significant amount of time trying to out different operating systems and window managers. My current setup is based heavily around NixOS, which uses a unique declarative approach to configuration management. The two main features that I enjoy is the rollback feature, which helps me recover from my own mistakes, and the ability to port my configuration to other machines with minimal effort. For more information about NixOS as a whole, I recommend checking out this youtube video by No Boilerplate.

I do have a life outside of computers, I swear. I enjoy playing the guitar and ukulele, and have been playing at a novice level for the past 8 years. I have recently begun going on walks around my neighborhood and taking photos of random things I see. I also enjoy cooking and have been trying various recipes of Mexican cuisine.

What I'm Doing

  • IBLT

    An extremely space effecient data structure which performs the signed symmetric set difference operation.

  • Accountable Storage

    The accountable storage problem is an interesting application of the IBLT data structure, which allows some client to securely store data on a server while being able to recover any lost data.

  • Parallel Search Trees

    Looking at how to design parallel search trees that are efficient on massively parallel systems.

  • CPU-GPU Models

    Heterogeneous comupting systems are becoming more common, and having theoretical models to understand and analyze these systems is important.