Full Stack Human
Resume | Github

I am a software engineer at SpaceX.

Music Flyer

Using the Oculus Rift, I built an app that lets you "fly through" a MIDI song, controlling your ship with the position of your head. It's kinda like guitar hero in VR. If you have a mac and an oculus, you can get the app here!
  • MIDI
  • Oculus
  • Unity
  • C#

Polyphonic Tuner

This is a neat little Arduino project which turns your arduino into a polyphonic tuner. The tuner tells you what chord you are playing! Works with all MIDI instruments and it has a passthrough mode so that you can plug it into an existing setup without needing a splitter cable.
  • MIDI
  • Arduino

146 Lloyd

I build a website for my house in college. I hooked it up to a Particle Core so that my roommates could check in and out of the house. Useful for when we are locked out!
  • Arduino
  • C

Hack At Brown Website 2016

Currently leading the H@B dev team. Hosted on Google App Engine, using Google Cloud SQL. I built the whole infrastructure of the app. A lot of cool usability stuff including: JS unit tests, functional testing with selenium, python unit testing. Linting, hinting, and tests employed in push hooks to keep code clean. We write isolated CommonJS modules and Browserify them so we serve one JS file per page. We work in an agile fashion, using a scrum-style Trello board.
This gif demonstrates this year's 3D landing page
  • CommonJS
  • SCSS
  • Semantic UI
  • Three.js
  • Gulp
  • React
  • SQL
  • Python WSGI
  • Selenium
  • GoogleAppEngine

Times Trailers

During my internship at the New York Times, I built a tool to generate videos and GIFs automatically from New York Times articles. The videos are intelligently generated, but we also built a fully-featured in-browser video editor to allow content producers to tweak them. We create the videos on the front end, and this makes the application as a whole very scalable.

The Times is using this project internally.
  • AngularJS
  • Node.js
  • Busboy.js
  • FFMPEG
  • Bootstrap
  • Fabric.js

Stop and Frisk NY

Using D3 and NYPD-issued stop-and-frisk data from the last 13 years, we built a classifier to display the probability of being stopped relative to an average New Yorker based on different demographic data. Then, we compared this against income and demographic data in different areas.

  • D3.js
  • Scikit-learn
  • Flask
  • jQuery
  • SQL

Hack At Brown Website 2015

I am one of the most active members of the hackatbrown webdev team. Our website serves over 2200 applicants.

This gif demonstrates some of the features I created, including the dashboard, the upload/download workflow, and the reimbursements form.
  • AngularJS
  • Semantic UI
  • Socket.IO
  • NDB
  • Python WSGI
  • Google App Engine

City Map

This simple but beautiful little project attempts to generate something like a city map using different paths on a random walk. It's easily customizable and pretty. There's a jar you can run here.

  • Java Swing

Maps

This project (Java) handles real-world map data and provides path information. You can pan around and click points on the map, or you can use the input fields to input cross-streets and find paths between them. It connects to a traffic server and dynamically updates clients with traffic information. The project is backed by a few interesting data structures.

  • KD Tree - Handles the nodes in the map. It has a custom constructor which reduces construction time to k*nlogn. The KD Tree also allows us to specify the boundaries of the map.

  • Radix Tree - Provides autocompletion results for each street. Faster and more efficient than a typical trie, it also creates suggestions based on levenshtein distance, possible whitespace errors, and bigram frequency.

  • Binary Search File - A custom wrapper for Java's Random Access File - this class has numerous optimizations that allow for quick retrieval of information from the Random Access File with minimal system calls.

The project uses multiple threads to ensure that the frontend GUI remains responsive no matter what kind of requests are being made to the server.

  • Java Swing
  • Guava
Here we see the Djikstra A* pathfinding algorithm avoiding a high-traffic (red) road.

Audio Flashcards

One of my first projects, it had a pretty large feature set. Hosted on EC2, and with a java swing client app, The backend uses a lightweight H2 database for storing cards and their tags. It allows you to import cards in several ways. When you're finished, you can export the cards as an iTunes playlist or as MP3s to sync with your phone.

  • Java
  • Guava
  • SQLite

Cookie Monster / Galletine

Crowd-controlled cookie crushing. Websockets, Streaming Video, Intel Edison.

  • Node.js
  • Socket.IO
  • Intel Edison

Lunch Date

This is a little app to help you pair off members of your team for lunch dates.

  • AngularJS
  • Node.js
  • Bootstrap
  • Mongo

PixelCraft

This is the beginning of a game which allows you to draw your own sprites to overcome obstacles.

  • Node.js
  • Mongo