I am a Lead Software Engineer at MongoDB working on Distributed Systems for the Server Replication team.
I graduated from Brown University in 2015 with a joint concentration in Math-Computer Science.
I first began programming in high school and fell in love with it when I took my first class in college.
I love computer science because it is an incredibly rewarding way to answer real world questions. There is no better feeling than fixing the last bug in a program or getting an algorithm to work as intended. I’m especially drawn to the algorithmic, mathematical portions of computer science. I love solving hard problems.
What else do I do?
Outside of CS, I enjoy running half-marathons, playing ultimate frisbee, and seeing Broadway shows.
Other Technologies: MongoDB, Git, LaTex
MongoDB, Lead Software Engineer August 2015 - Present
Server Engineer on the Replication subteam of the Distributed Systems team. I've worked on the initial sync process, two different replication rollback procedures, the Raft consensus protocol, and multi-document transactions.
View on Github
MongoDB, Software Development Intern Summer 2014
Created a pipeline in Python to automatically translate code documentation and tutorials from English into other languages. I used an open source statistical machine translation system called Moses to aid with the translations. I tested multiple different translation, language, and reordering models and measured their quality with the BLEU scoring metric, improving by over 150% from initial tests. I also created a flask web app to allow contributors to edit and approve translations that the machine or other contributors created. The code for the web app and associated scripts are packaged into the package Pharaoh in PyPi.
View on Github
View on PyPi
Brown University CS Department, Head Teaching Assistant March 2013-December 2013
Directed the Design and Analysis of Algorithms course. Supervised a staff of four other TAs. Wrote problem sets, solutions, lectures and exams. Graded problem sets, held office hours, and ran recitations. Topics included Dynamic Programming, greedy algorithms, divide and conquer, data structures, Fourier transforms, linear programming, and optimization.
Tenzer Computer Consulting, Inc. and Solus, Intern Summer 2013
Tenzer: designed, created, and managed databases with Microsoft Access, websites with HTML and CSS, and applications with VBA to run a large-scale art show. Added new functionality to a database that runs a summer day camp.
Solus: created telephony applications to streamline and improve the day-to-day operations of the company. Helped customers with network IT consulting.
Brown University CS Department, Undergraduate Teaching AssistantFall 2014
Helped run the Intro to Computer Systems course of 225 students. Held office hours, guided labs, edited assignment specifications, and graded student work. Student assignments included creating a Shell and implementing Malloc.
Brown University CS Department, Undergraduate Teaching AssistantFall 2012
Helped run the Intro to Object Oriented Programming course of 220 students. Held office hours, guided labs, created and graded assignments. Sample assignments included programming Tetris and Othello.
Camp Ramah in Wisconsin, Program Supervisor and CounselorSummers 2011-2013, 2015
Supervised campers and planned camp-wide programs. Managed the camp's IT infrastructure and IT staff. Restructured and supervised the boating program and trained boating staff.
Meiklejohn Peer Advisor, Brown UniversityAugust 2013 - May 2015
Advised freshmen about their introduction to college coursework, extracurricular activities, and any other questions they have.
Wubappella, Brown University February 2013 - May 2015
President and founding member of Brown’s only exclusively dubstep acappella group.
Matched Advising Program for Sophomores, Brown UniversityAugust 2014 - May 2015
Advised sophomores about their coursework, internships, and concentrations. Counselled them on any concerns or questions in their lives.
Alpha Epsilon Pi, Brown UniversityJanuary 2012 - May 2015
Participated in social events as well as philanthropic fundraisers.
Lobster Log Viewer August 2017 - May 2018
Lobster is a React application that dynamically renders test logs as needed. It allows users to search, filter, and bookmark interesting logs. During a company hackathon two coworkers and I created Lobster, and we won the hackathon. In our spare time, we continued improving it, and after a few months it was made the default log viewer in our continuous integration (CI) system. As the default, it became actively maintained by our CI team.
View on Github
Novel Planning Algorithms in Stochastic Infinite Domains January 2015 - April 2015
For my senior honors thesis, with Professor Michael Littman as my advisor, I conducted theoretical research into novel planning algorithms for stochastic and infinite domains. The algorithms lexicographically maximize the probability of reaching the goal and then among those tied for the maximum, they maximize expected total reward. My research considers the termination conditions of the algorithms as well as the runtime using various reward functions.
Optimizing Merchant Behavior in Various Domains August 2014 - December 2014
Conducted research with Professor Michael Littman at Brown University. I used reinforcement learning techniques, particularly those for solving Partially Observable Markov Decision Processes (POMDP) to research how optimal merchant behavior varies across different consumer models.
Puddle Store January 2015 - April 2015
My partner and I developed a distributed file system using Go. The file system uses Tapestry to store all data and uses Raft to keep track of the current versions of all files. The file system uses copy-on-write for updates.
Monopoly for the Gods February 2013 - May 2013
We designed, developed, and tested a full-featured, networked Monopoly adaption from scratch with a group of four. Players attempt to choose optimal heuristics with which the application makes decisions for each player in thousands of game simulations. I created the Monopoly game itself including all decision rules and a simple AI, as well as the user experience leading up to the game screen. The entire project was created using Java.
View on Github
Map Application February 2013 - April 2013
Developed a networked map application in Java that takes street data and allows the user to drag and zoom the map and get turn-by-turn directions between locations. Users can input street addresses that are corrected with a self-made autocorrect engine or click on the map to specify locations. The application also takes traffic data from a server to provide the optimal directions.