Software Engineer — Web Developer — Tinkerer
Status: Starting at Facebook in early February 2016.
Recruiters: Please do not contact me with openings at this time.
Facebook (Summer 2015)
I was an intern on the React team at Facebook. I was responsible for porting all of Facebook’s web frontend from JSHint to ESLint, along with a plethora of custom rules. I have received and have accepted a return offer.
Amazon (Summer 2014)
I recently completed an internship with Amazon’s Fulfillment team in Seattle. I declined a return offer in favor of Facebook.
UF ACIS Lab (Summer 2012)
Under a NSF Research Experiences for Undergraduates Fellowship grant and through UF’s University Scholars Program, I worked on IPOP and iDigBio.
Bachelor of Science in Computer Engineering
I graduated Cum Laude with a 3.42 GPA from the University of Florida in December 2014.
Master of Science in Computer Engineering
I graduated with a 3.66 GPA from the University of Florida in December 2015 through UF’s Combined BS/MS program.
An extremely easy-to-use tool for configuring and running tor relays and full bitcoind nodes. It uses a long list of technologies to automate installation, upgrades, and error recovery, as well as to provide metrics. This list includes:
- UFW (iptables)
The goal of the project is to assist these decentralized and trustless networks, by encouraging people to run them on cheap and potentially unreliable hardware or virtual machines.
A lightweight email-focused fork of Sovereign that makes it simple and inexpensive to run your own secure email server, and migrate from an existing IMAP server.
This Web Page
I just recently re-did my website, using a long laundry-list of technologies. Check out my blog post about it!
These projects aren’t abandoned, but they’re stuff that I am not actively working on at the moment.
A P2P VPN working by forwarding raw packets from a TAP device over UDP via STUN and TURN using libjingle (part of WebRTC) and XMPP.
- Raw packet networking with Linux Multiple routing modes (using a social graph or a fixed group)
- Cloud, mobile, and social applications
I wrote packaging scripts for a Python-based user-friendly upload tool. Targets were:
- Windows (via cx_freeze)
- Mac OS X (via py2app)
- A Virtual Appliance (via VirtualBox and Puppet)
iDigBio is an NSF 10+ year project, so a strong emphasis was placed on maintainability. Work was done under an undergraduate research fellowship.
A highly experimental AI commenting robot for the Reddit social network.
- 26 stars and 6 forks on Github.
- 6,401 comment “karma” points on Reddit.
The bot was written quickly as a prototype in MongoDB, and has since been partially re-written in CoffeeScript with MySQL.
Pandoc is a “universal” document converter. It can output HTML, but it comes with no styling. Pan-Am is a simple responsive stylesheet written in SASS with the goal to make any document compiled with Pandoc look nice.
I personally and independently developed library to automate various web-resources operated by the University of Florida via screen-scraping.
- Medium-to-large library, containing more than 10k LOC.
- Uses LXML to parse page content.1
- Designed to be fault-tolerant.
A daemon to interface between the StrongSwan IPSec daemon and GroupVPN to provide encrypted communication over GroupVPN’s Brunet P2P network. Acheron will be used to provide communication for Contrail, a cross-cloud computing framework. This project represents a collaboration between UF and VU University in Amsterdam.
GroupVPN’s functionality has since been reimplemented under the IPOP project, which provides strong DTLS encryption, obsoleting this project.
These aren’t necessarily complex or even useful projects, but they were fun and/or had interesting results. None of these projects were for classes.
A proof-of-concept port of some of the more interesting bits of Haskell’s prelude.hs to GNU make without shelling out or using guile. GNU make is a Turing-complete functional language, but lacks many simple features, such basic arithmetic.
I posted it to Reddit, where it was well-received.
Flood-It Game Solver
I made a pure coffeescript solver for the NP-hard game “flood-it”. It implements
- A greedy solver (used as a heuristic) with limited lookahead.
- Navigation meshes computed with a modified version of Dijkstra’s algorithm.
- An A-Star solver.
- A custom minheap implementation used by the A-Star and Dijkstra’s solvers.
I have a (very minor) security patch in Ruby, although I do not know much about the language itself.
I use GPG for my email, and we should trade keys in-person.
In an effort to simplify my personal system administration work, I’ve standardized on Debian Stable, and use it wherever possible, including my workstations.
Let me see how many buzzwords I can cram in here!
- Programming Languages
- Markup Languages
LaTeX, Markdown, HTML5, HAML, CSS, SASS, Less, JSON, and YAML
Debian GNU/Linux, Bash, Zsh, POSIX Shell, VIM, Git DVCS, Nginx, Postfix, Dovecot, Ansible, Salt, and Vagrant
Beautiful Soup didn’t support Python 3 at the time.↩