About
I am a Software Engineering Manager at iZotope, Inc., where I lead an amazing team working on audio hardware devices integrating with mobile and cloud applications. I spent 2.5 years as a PhD student at the University of Massachusetts Amherst, working in the PLASMA lab with Arjun Guha, and graduated with a Master’s degree before returning to industry. I spent the Summer of 2018 as a Research Intern at IBM working on Serverless Compositions. I also worked a two year stint at iZotope before graduate school, developing desktop audio software and hacking together Linux device drivers.
Research
Serverless Computing
I have worked on a number of projects in the space of systems and semantics for serverless computing. This worked includes formalizing the execution semantics of serverless functions, implementing DSLs and JavaScript language extensions for programming serverless compositions, and implementing performance improvements on the OpenWhisk platform for certain patterns of Conductor actions.
Some of this work is open sourced, while parts are currently in submission for publication.
Stopify
Stopify is a JavaScript-to-JavaScript compiler that makes it possible for other compilers and Web-based IDEs to gracefully run long-running programs, stop non-terminating programs, support blocking I/O, set breakpoints, and step through code entirely in the browser. These features are enabled by Stopify’s first-class continuation support for JavaScript. There are some interesting insights necessary to implement efficient continuations, get in touch if you want to discuss this!
This work appeared at PLDI 2018.
Paper | Source Code | Talk
Conferences & Workshops
Year | Venue | Title |
---|---|---|
2018 | Draft | Formal Foundations of Serverless Computing |
2018 | PLDI 2018 | Putting in All the Stops: Execution Control for JavaScript |
2017 | IBM PL Day | Wrestling Control from the Browser: Compiling to JavaScript with Fewer Compromises |
2017 | NEPLS | Stopify: Web-based Debugging For Free |
Education
- University of Massachusetts - M.S. in Computer Science. December 2018.
- Boston College - B.A. in Computer Science and B.S. in Mathematics. May 2014.
Experience
- Engineering Manager - iZotope Inc. January 2019 - Present.
- Research Assistant - University of Massachusetts Amherst. June 2016 - December 2018.
- with Prof. Arjun Guha
- Research Intern - IBM. May - August 2018.
- with Olivier Tardieu
- Software Engineer - iZotope Inc. June 2014 - June 2016.
- Undergraduate Research Assistant - Boston College. May - September 2013.
- with Prof. Hao Jiang.
Contributions
Adapton
Adapton is a library of incremental data structures for performant reuse of sub-computations. I ported probabilistic tries from the original OCaml implementation to Rust and wrote some preliminary benchmarks using tries to implement incremental computation over sets, finite maps, and graphs.
Frenetic
is a family of languages and tools for network programming, providing a semantic foundation for trusting network programs. I hacked on frenetic’s compiler internals and extensions to the NetKAT semantics, playing with expressions of network behaviors and constraints so that network administrators don’t have to hate themselves.
nanomsg
As a software engineer at iZotope, I prototyped the inter-plugin communication seen in their Neutron product using the socket library nanomsg. I identified and fixed race conditions in their in-process and pipe-based transports causing crashes on rebinding and closing sockets.
Awards
- Sudha and Rajesh Jha Scholarship - University of Massachusetts Amherst. 2016.
Activities & Service
- PLDI Student Volunteer. Volunteer. June 2017.
- ECOOP Summer School. Attendee. June 2017.
- UMass CICS New Student Committee. Member. 2016 - Present.
- P4 Developer Day. Attendee. November 2016.
- Women in Engineering and Computing Day. Volunteer. October 2016.
- Oregon Programming Languages Summer School. Attendee. June - July 2016.
- Programming Languages Mentoring Workshop. Attendee. POPL 2013.