About Me

I am currently a PhD student studying Computer Science and Engineering at the University of Michigan - Ann Arbor. After completing my bachelor's in electrical engineering at UM, I elected to stay and continue working with Michigan's great CSE faculty. My career at Michigan has allowed me to experience a broad range of technical fields in both electrical and computer engineering - from emerging applications down to digital circuits. My primary research focus lies in both computer architecture and VLSI.

My broad research vision is that Moore's law is ending, so architectures and systems will have to evolve in order to pick up the slack. More often than not, this means specializing hardware for emerging applications and integrating solutions from across the hardware/software stack. I'm looking forward to researching solutions to this problem at Michigan during my PhD. I'm also always on the lookout for internships and research experiences that tackle cutting-edge problems and emerging areas!

This semester (Fall 2017), I am taking my last 2 classes for candidacy: EECS 423 (Solid-State Device Laboratory) and EECS 482 (Operating Systems). I'm particularly excited for EECS 423 because I get to work in the Lurie Nanofabrication Facility, which features class 10/100/1000/10000 clean rooms. I have a few different research projects going on in systems architecture, application-specific architectures, and VLSI design as well.

Currently, I am researching computer architecture with the esteemed Professors Jason Mars and Lingjia Tang in Clarity Lab, which is a backronym for "Cross-Layer Architectures and Runtimes In Ten Years". Our lab focuses on computing solutions that span across layers of the hardware-software stack in order to discover new and innovative architectures. I am also doing research with Ron Dreslinski on the lower end of the stack by looking at on-chip hardware accelerators.

My current research focus has involved examining the benefits of hardware accelerators in datacenter applications, especially using FPGAs. Recent projects include creating efficient FPGA implementations of voice and natural language processing algorithms, analyzing the benefits of FPGA systems in datacenters, characterizing CDNNs (Convolutional Deep Neural Networks) on ARM hardware, and examining precision reduction and weight compression techniques for CDNNs.

Much of this work is forthcoming, but my current list of publications can be viewed here.

I have been an Instructional Assistant (IA) for ENGR 100 - section 250: Microprocessors and Toys. This class is a personal favorite of mine because of both the great introduction to computer engineering and the openness of the course project. This course is designed to give a broad overview of computer engineering to ambitious freshman. The course covers the basics of computer hardware, including CMOS transistors, digital gates, small/medium-scale devices, and control and data paths. The course also covers the basics of low-level programming via assembly, such as ISAs, I/O interfaces, and drivers. The second half of the course is an open-ended project for groups to work in teams to create a microcontroller-based toy. It's always very interesting to see the ideas students come up with!

My role as an IA has been to instruct and supervise labs as well as mentor students on their projects. Because the projects are so open-ended, students often select projects that require a much greater working knowledge than the class formally provides through lectures. It's my job to help teach and guide the students in the material that is often multiple courses ahead of their current knowledge base, although students often do a good job of learning topics on their own.

Past teaching:
          Winter 2016 - ENGR 100: Microprocessors and Toys
          Winter 2015 - ENGR 100: Microprocessors and Toys
          Winter 2014 - ENGR 100: Microprocessors and Toys

Recent News