I enjoy implementing and extending experimental software systems and pushing the frontier of what is possible. A recurring theme in my research is the pursuit of technology that enables programmers to more productively construct high performance software systems.
During my career, I have made research contributions in a variety of areas, including the analysis and optimization of object-oriented languages, virtual machine design and implementation, scalable runtime systems, Just-In-Time compilation, online feedback-directed optimization, memory management, and cloud programming models.
Since joining IBM Research in 1998, I have worked on a number of projects:
- My current research focuses on Cloud Programming Models and Serverless Computing. I contribute to Apache OpenWhisk and serve on its Project Management Committee. In the KAR project, we are developing a new fault-tolerant cloud programming model based on actors, reliable message delivery, and principled retries.
- I helped bring the Swift programming language to Linux as part of the Swift@IBM technical team and the Swift.org community.
- I co-led the X10 Project. X10 is an object-oriented programming language with integrated support for fine-grained concurrency and distribution. Although originally designed for supercomputers, X10 provides scalable performance and programmer productivity on a variety of systems ranging from single multi-core machines, to the cloud, to high-end HPC-style clusters.
- I was a member of the Metronome Project, which developed the real-time garbage collection technology for Java that became the basis for IBM's WebSphere Real Time product.
- I was part of the Jikes RVM open source community, serving on the Jikes RVM core team and steering committee. Jikes RVM grew out of the Jalapeño research project at IBM. I worked on the Jalapeño optimizing compiler, adaptive optimization system, and other aspects of the VM runtime.
Please see my external professional web page for a complete list of my publications, service activities, and awards.