I am currently employed at SiFive. While at SiFive I will be managing the
RISC-V ports of various open source projects. I currently maintain:
- binutils, which has been accepted by upstream for the 2.28 release.
- GCC, which has been accepted by upstream for the 7.1 release.
My calendar is availiable online and is
generally kept up-to-date. Unless otherwise specified, blue events are
on campus while all other colors are off campus. I am generally in my
office when I'm on campus, but you should schedule a meeting ahead of
time if possible.
I can be reached by
also uploaded my resume, but since I'm not currently
looking for a job it's probably fairly out of date.
If you're looking for me to get something done, then the best way to go about
this is to submit a pull request against my TODO
Here's a list of the projects I have worked on in the past:
- PLSI: a portable VLSI flow for RTL-based computer architecture research.
- Hurricane: a multicore RISC-V implementation designed for power
efficient DSP. This project resulted in a chip on ST's 28nm FDSOI.
- DREAMER, a coarse grained reconfigurable architecture designed for
high speed circuit emulation. The goal of DREAMER is to reduce the
time to complete a design cycle down the same order of magnitude as
- ChiselCrypt, a generator for cryptographic accelerators. 
- A port of Sun's OpenJDK to
Tilera's Tile-Gx architecture, including both
the HotSpot interpreter and C2 (the server JIT). [2012-2013]
- The design and implementation of a real-time background subtraction
algorithm taking advantage consumer of depth cameras. This research
spawned Personify (formally Nuvixa). [2009-2010]
I graduated in 2011 from the University of Illinois at
Urbana-Champaign with a B.S. in Electrical and
Computer Engineering, where I was advised by Sanjay
Patel and Steve
I will soon graduate from the
University of California: Berkeley with a M.S in
Computer Science, where I was advised by Krste
Asanovic and Jonathan
- I, along with Vedant Kumar, am currently one of two TAs for
CS194-24: Advanced Operating Systems Structures and Implementation,
an upper division undergrade operating systems course at UC Berkeley
during the Spring 2014 semester. This class is being tought by John
- I was the sole TA for CS194-24: Advanced Operating Systems
Structures and Implementation, an upper division undergrade
operating systems course at UC Berkeley during the Spring 2013
semester. This class was tought by John Kubiatowicz.
- I was an undergraduate TA for ECE391: Computer Systems Engineering,
an upper division undergraduate operating systems course at UIUC. I
was a member of the staff for four semesters, from 2009 to
2011. This course was tought by Zbigniew Kalbarczyk, Nikita Borisov,
and Steve Lumetta while I was a TA.