Software Engineer — Web Developer — Tinkerer
Status: Frontend Engineer at Instagram
Instagram (2016 – Present)
I’m currently a Frontend Engineer on the Instagram Web team. We’re a small team that manages Instagram.com. Instagram.com is a single-page responsive webapp written in React with Redux. I’ve played a significant role in launching features like:
- A redesign of the website and app.
- Support for viewing and accepting a private account follow requests.
- Related user suggestions on profile pages.
I’ve also helped to grow the team, and our site architecture. I’ve helped in converting the data model from Flux to Redux, improving Flow type and test coverage, and maintaining our project’s tooling.
Facebook (Summer 2015)
As 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 large set of custom rules.
Amazon (Summer 2014)
I completed an internship with Amazon’s Fulfillment team, developing tooling for optimizing the dimensions of packaging material available to Fulfullment Center workers based on previous orders shipped from a given location. Small reductions in “air shipped” at Amazon’s scale has a great potential to reduce both costs and the footprint on the environment.
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.
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.
Bachelor of Science in Computer Engineering
I graduated Cum Laude with a 3.42 GPA from the University of Florida in December 2014.
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.
This Web Page
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
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.
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.
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.
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.
- 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