I delight in making, creating, and exploring.

Why is programming fun? What delights may its practitioner expect as his
reward?

Fred Brooks, The Mythical Man-Month

Between school, hackathons, and my free time, I always find myself gravitating
towards programming. I absolutely love working on projects, whether alone or
with others. Over time I’ve accumulated a portfolio of projects that I’m
particularly proud of.

TuneMachine started out as a hackathon project. It aims to be a
“time machine for your Spotify tunes.” It’s built with CoffeeScript and
React—my two favorite web technologies at the moment.

TeXDown was a small experiment to build an online note-taking app
that combines the expressiveness of Markdown, the power of LaTeX, and the
editing speed of Vim. TeXDown gave me a great venue to experiment with
perspectives that I eventually brought when I worked on the Dropbox Paper
team.

Autolab aims to vastly improve programming-based computer science
classes through “autograding,” allowing instructors to spend more time
educating. Autolab is developed completely at CMU, so there’s a strong sense
of community among the developers.

Other than being a TA, one of my favorite ways to engage and connect with the
tech community at CMU is by leading talks and workshops. Two of my more popular
talks have been Vim as an IDE, a talk to introduce people to Vim
plugins and help them embrace their editing environment, and JavaScript
Fundamentals, a workshop introducing the fundamentals of
JavaScript by writing a full-fledged web game.

I’m also a part of ScottyLabs, a student organization at CMU dedicated to
improving the campus tech community through hosting educational events and
developing useful services. Our biggest attraction is TartanHacks, a
400-person undergraduate hackathon held yearly. Organizing and mentoring at a
hackathon is by far one of the most exciting and action-packed events I’ve
experienced.

Teaching has always been a passion of mine, and I get to live it out every day.

I reflect on what I’ve learned.

You are all computer scientists.
You know what FINITE AUTOMATA can do.
You know what TURING MACHINES can do.
For example, Finite Automata can add but not multiply.
Turing Machines can compute any computable function.
Turing machines are incredibly more powerful than Finite Automata.
Yet the only difference between a FA and a TM is that
the TM, unlike the FA, has paper and pencil.
Think about it.
It tells you something about the power of writing.
Without writing, you are reduced to a finite automaton.
With writing you have the extraordinary power of a Turing machine.

Manuel Blum, Advice to a Beginning Graduate Student

Writing is a way for me to collect my thoughts, distill my knowledge, and share
my discoveries with others. I publish my writings at Bits, Bytes, and
Words, my personal blog, and occasionally at the Autolab Development
Blog. For the curious, here’s a sampling of my posts.

Autolab: Autograding for All is a piece written for the Autolab
blog outlining the benefits of autograding and how it improves student
learning in computer science classrooms.

Noteworthy Dotfile Hacks dissects my sophisticated dotfiles
setup to place the interesting parts at the forefront, making it
easier for others to incorporate the interesting bits into their setups as
well.

Let’s Have a Chat About Encryption is a based on a real
dialogue I once had. It discusses topics surrounding encryption’s usage,
impact, and importance, as well as how it related to the Apple v. FBI case.

I mix work and passion.

… but I like what is in the work—the chance to find yourself. Your own
reality—for yourself

Joseph Conrad, Heart of Darkness

My heart is in the work.

Andrew Carnegie

I’ve had three wonderful opportunities for summer software engineering
internships. Through them, I’ve been able to discover my talents and
preferences, meet new friends, and enjoy myself.

At Stripe I worked on Checkout, a fully-featured online
payment form that makes it as easy a possible for merchants to start accepting
payments. I love Stripe’s mission of building developer-facing tools to
advance the internet and create a more economically interconnected world,
and the engineering culture and rigor keep me engaged.

At Dropbox I worked on Dropbox Paper, a product that
completely re-envisions notetaking (at the very least, I think so!). It
focuses on real-time collaborative, rich-text editing. Think Google Docs, but
without all the parts that feel too much like Microsoft Word and with a
gorgeous design to boot. My project was to build out rich-text embeds (think:
YouTube videos, Google Drive docs, Spotify songs) from the ground up. The
high-impact, small-team vibe was an intensely positive experience.

At Bloomberg I worked on an internal financial simulation tool in
C++ that enabled developers to prototype and test their apps. I got the
opportunity to participate in the design, implementation, testing, and
deployment of a complete project, which was invaluable as a post-freshman
undergrad.

Having lived in both New York and San Francisco, I’m still undecided on where
I’d like to move when I graduate college in 2017. I’m a Midwesterner at heart,
but I enjoy being close to my college and intern friends on the coasts.
Regardless of where I work, though, I hope to find somewhere I can live out my
passions.