Curriculum Vitae
Summary
Ph.D. candidate in Computer Science at the University of Michigan
researching live programming languages and their application to malleable
software. Particularly interested in utilizing the intersection of
Programming Language Theory and Human-Computer Interaction to make the
power of computing better for everyone. Previously a professional software
engineer for over a decade.
Employment
Graduate Researcher, University of Michigan (Future of Programming Lab)
September 2024-Present
-
Conducting research on live programming languages, focusing on
Hazel and its application in creating malleable
software
-
Exploring the intersection of Programming Language Theory and
Human-Computer Interaction to make computing more accessible
-
Longtime contributor to the
open-source Hazel project, building language features, testing infrastructure and developer
tooling
Senior Software Engineer, DRW Holdings (Reference Data)
April 2020-June 2024
-
Performing feature development, maintenance and support for dozens of
polyglot services (Java, Ruby, Clojure, Python)
-
Leading greenfield development of multiple projects while onboarding
team on using functional abstractions in Java
-
Work directly with Reference Data analysts on evolving the firm-wide
domain model of financial instruments
-
Led the first Ruby upgrade of firm's internal Reference Data system in
over 5 years with no major production outages
-
Maintained multiple internal libraries for common infrastructural code
-
Migrated build process to containers and began transition of services to
Kubernetes
Software Engineer, DRW Holdings (Market Data)
May 2017-April 2020
-
Performed software archaeology to reverse engineer and document a poorly
documented but critical system; this provided the firm with the ability
to redeploy the system onto new infrastructure and allowed for feature
improvements for the first time in years
-
Participated in daily pair programming to upgrade reliability of
streaming market data platform as well as onboarding additional
exchanges and regularly performing in exchange protocol upgrades
-
Built a custom ETL solution to import data from AWS S3 and allow for
analyst defined data overrides with a custom UI written in React
-
Led project to perform scheduled price capture from a variety of
external services
-
Performed ground-up rewrite of various services replacing the underlying
database technology as well as altering the domain model from first
principles
- Represented department in university recruiting initiative
Senior Software Engineer, OneMain Financial
November 2014-March 2017
-
Built a microservice architecture operating on the Ruby on Rails
platform
-
Worked closely with product managers, designers and UI engineers on a
consumer oriented
-
Developed secure authentication for API to API communication to keep
data safe
- Built workflow management service that internal users used daily
Software Engineer, Telnyx
July 2013-November 2014
-
First employee who led development team after CTO exit while assuming
full stack responsibilities in a startup environment
-
Set up automated deployments (Ansible) and notifications saving
developers hours per day and decreasing downtime
Education
University of Michigan, Ph.D. Candidate, Computer Science, 2026-Present
University of Michigan, Ph.D. Student, Computer Science, 2024-2026
Georgia Institute of Technology, M.S., Computer Science, 2016-2017, GPA 3.8
University of Louisiana at Lafayette, B.S., Computer Science, 2009-2013
University of Louisiana at Lafayette, B.S., Mathematics, 2009-2013
Louisiana School for Math, Sciences and the Arts, High School, 2009
Publications
Talks
Open Source
Longtime contributor to Hazel, a live functional programming environment
with typed holes. Built property-based testing for type preservation,
added a command line interface for running Hazel programs, and maintain
the project's CI, coverage and build tooling.
Longtime contributor to a functional patterns library for Java. Fixed
fusion and fold bugs and added new functionality. Active in the support
chat teaching functional programming to new users.
An experimental structure editor for JSON in TypeScript and React,
exploring structured editing as an interface for working with data. Live demo.
Skills
Languages
Proficient: OCaml/Reason, Python, Java 8+, Ruby, SQL
Intermediate: Clojure, Haskell, JavaScript/TypeScript, C++
Beginner: Prolog, LaTeX
Technologies
Docker, Kubernetes, Ansible
Git, Linux, GraphQL, RabbitMQ, Redis
Communities
Malleable Systems Collective:
Catalog Curator for community looking into research/techniques of ways to
make computing more malleable and accessible to a wider range of audiences.