My research focuses on enabling managed code to perform low-level, real-time, and safety-critical tasks, by advancing the state-of-the-art of garbage collectors, virtual machines, runtime systems, and programming models.
| Ph.D., Purdue University, West Lafayette, IN, dissertation topic: Java on Bare Hardware. Key courses: Compilers, Programming languages, Operating Systems, Formal Compiling Methods, Analysis of Algorithms, Parallel Computing, Numerical Methods, Randomized and Probabilistic Algorithms, Numerical Solutions to Ordinary Differential Equations. Due to graduate in 2009. | |
| 2003 | B.S., Purdue University, West Lafayette, IN., double-majored in computer science and math. Key courses: Computer Architecture, Analysis of Algorithms, Data Structures, Databases, Compilers, Operating Systems, Software Engineering, Computer Networking, Real Time Systems, Scientific Computing, Numerical Methods, Calculus, Discrete Math, Linear Algebra, Differential Equations, Abstract Algebra, Physical Mechanics I (Honors), Gamma-ray Astrophysics, Russian. |
| 1999 | High school diploma, Brebeuf Jesuit Preparatory School, Indianapolis, IN. |
| Microsoft | Microsoft Research, Redmond, WA
Research intern, Winter 2006-2007 and Summer 2007 Along with Erez Petrank and Bjarne Steensgaard, designed and implemented three algorithms for concurrent copying garbage collection. Also designed and imlemented a new compiler optimization for improving garbage collector performance. Our CoCo algorithm for concurrent copying (published in ISMM'07) was the first such algorithm to support lock-freedom and multiprocessors while being fast enough for practical use. |
| S3 Lab | Secure Software Systems Lab, Purdue University, West Lafayette, IN
Research Assistant, 2003-present Core OpenVM developer. OpenVM is currently being used by several companies to evaluate Realtime Java, and was recently used in an unmanned aerial vehicle by Boeing. My contributions include the real-time garbage collector, the I/O scheduling subsystem, and various smaller components. I also developed new points-to analysis and abstract interpretation techniques as part of another project. |
| VERITAS | Very Energetic Radiation Imaging Telescope Array System, Purdue University, West Lafayette, IN
Research Assistant, 2000-present Designed and developed software for the VERITAS telescope array. VERITAS is an international project consisting of over 20 universities and research institutions. The telescope array is the largest of its type in the northern hemisphere. My work includes the design and development of the backend data acquisition system, the real-time data analysis, and the standard data format. |
| IBM | T.J. Watson Research Center, IBM, Hawthorne, NY
Research intern, Summer 2004 Member of original design team for the X10 programming language. Developed original X10 compiler. |
| Bartok Compiler | Extended the Microsoft Bartok Research Compiler to support three new on-the-fly lock-free concurrent copying garbage
collectors and a new compiler optimization for improving garbage collector
performance. Also added numerous useful enhancements to other parts of the system (including the reference counting collector, inliner, devirtualizer, and code scheduler).
See http://research.microsoft.com/research/act/default.aspx for more information about Bartok. |
| VERITAS Telescope | Member of the core engineering team. I'm responsible for the standard "VBF"
data format, one of the main data analysis packages (namely, the Quicklook real-time analysis), and the backend data
acquisition system. My software is critical to the real-time recording,
compression, and analysis of the 20 MB/sec VERITAS data stream.
See http://veritas.sao.arizona.edu/ for more information about VERITAS. |
| OpenVM Java VM | Member of the core team. Designed novel garbage collection, scheduling, and data analysis techniques, in addition to implementing numerous
features and fixes to other parts of the system. Currently maintaining the memory management and thread scheduling frameworks.
See http://www.ovmj.org/ for more information about OpenVM. |
| Jikes RVM | Contributor. Worked on fixing handling of JNI entry and stop-the-world garbage collection (RVM-431), fixing the triggering of on stack replacement (RVM-439), and cleaning up how compilers handle global data structures (RVM-445). Currently working on implementing pure native threading.
See http://www.jikesrvm.org/ for more information about Jikes RVM. |
| TSF library | Designed and implemented the TSF open source data format library. TSF
is a scientific data format not unlike HDF5, FITS, or NetCDF, and is used by
VERITAS for storing data summaries.
See http://homepage.mac.com/pizlo/tsf/ for more information about TSF. |
| Stochastic M-CAS | Designed and implemented a mechanism for lock-free atomic multi-word compare-and-swap (Multi-CAS, or M-CAS)
based on random numbers. Stochastic Multi-CAS can be used for a variety of
non-blocking applications, especially concurrent garbage collection.
See http://homepage.mac.com/pizlo/smcas/ for more information about Stochastic Multi-CAS |