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. My GPG
key is also availiable.
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.