Experience
2019 — Now
Burlingame, California
Specializing in graph algorithms and scalable frameworks. Specific work has focused on:
LLVM-based compiler for Quadric EPU, primarily back-end, but also front-end and middle-end
Custom-built pre-silicon verification, including block-level random testbenches and functional modeling
Neural-network scheduling - mainly core algorithms/data structures and scalable framework design
Evanston, IL
Working on developing a thread-parallel execution engine/runtime system for the high level, data-parallel language NESL, originally developed at CMU. The eventual goal is to build the system into the Nautilus Aerokernel, with the Intel Xeon Phi platform in mind.
Evanston, IL
I am finalizing development of a novel framework to automatically select and replace random number generators for C and C++ programs. The overall framework consists of LLVM passes that analyze and transform incoming programs, interacting with OpenTuner to build heuristics and use machine learning to select the best possible random number generators to a program. While this compilation framework is completely portable, it is sensitive to the program, its inputs, and the underlying architecture. So far, by compiling with our framework, we have measured up to 30% speedup on PARSEC benchmarks by modifying the equivalent of less than 10 lines of C++ code
Evanston, IL
Currently working for Professor Peter Dinda's Prescience Lab. We are working on Nautilus, a lightweight kernel designed be built into application runtimes in order to maximize parallelism on high-performance computers.
I am personally responsible for porting newlib, a C standard library. This has mainly involved implementing a system call interface, largely related to the filesystem and I/O, and the necessary underlying data structures it relies on. I also wrote a device driver for the RTC and wrote/modified extensive scripts to allow for seamless linking into nautilus.
As a member of the research group, I also attend and contribute to weekly brainstorming sessions and other group meetings, and generally assist with the development of nautilus and other research regarding parallelism wherever possible
Worked on a small team of mobile, client-side engineers, programming in Unity/C# and following Agile Development strategies and a MVCS framework
Implemented features in an as-yet unannounced game that required extending a core state machine, managing asynchronous events and performing a major version upgrade of a core system
Contributed to development of a core service to allow the marketing team to display offers in the company’s largest app, including development of a machine learning algorithm using linear regression to predict users' token balance behavior over time
Education
Northwestern University