My first job was an internship as a Flash developer at a web development company in my home town. I was working there as Flash was beginning to decline and modern CSS3 and HTML5 were coming to the fore, and I used my substantial downtime in the office to begin working with Ruby on Rails and front end technologies like CSS and Javascript. By the end of my third summer, I had taken the lead on projects rebuilding native apps for iPad as mobile websites optimized for tablets.

The summers after my sophomore and junior years of college, I worked as a Software Engineering intern at startups in San Francisco. I worked the first summer for Klout, the social media scoring company, and I had the opportunity to be part of the engineering fellowship program put together by the venture capital firm Kleiner Perkins. My greatest achievement in that role was in building their mobile site as an independent project - for more detail, you can see the Klout page of this website. The summer after that, I worked as the second engineer at a Google Ventures backed startup called Airseed. I wore a lot of different hats there, but spent the bulk of my time experimenting with machine learning to build a product tagging API, creating a javascript library to allow easy creation of interactive cross-filtering charts and data visualizations, and creating deploy tools for a distributed worker farm with Capistrano and Redis.

Studying Computer Science at Princeton, I got to develop an understanding of the technologies and key abstractions that underly computers and the Internet. I began as an electrical engineering major, so I learned how to build transistors from silicon and how to build a simple processor from transistors. I learned how Assembly language works from both a computer's and a programmer's perspective and how C creates useful abstractions on top of this. I learned how higher level languages can use an interpreter written in a low level language or a virtual machine like the JVM to allow the programmer the conveniences like dynamic typing and memory management, and the tradeoffs that these languages entail. I learned about the layers of the internet and the details of each protocol that allow the internet to run without crushing itself under the weight of its own requests.

Beyond learning about foundational computer systems, I also learned about the analysis of algorithms, and the methods computer scientists use to create algorithms for a wide range of problems. I learned about the important algorithms in machine learning, and got some experience with the trickiness of supervised and unsupervised learning. I did my first independent project under Brian Kernighan, in which I built an email sorting tool that classified each message in a user's inbox. You can read more about on the Grinbox page of this website.

In my final year and a half at Princeton, I grew very interested in the intersection between neuroscience and and computer science. I took two graduate seminars on computational neuroscience, and was exposed to the current research of how populations of neurons can learn and compute. I did a few modeling projects and ultimately did my senior thesis under Thomas Funkhouser and Sebastian Seung about using computer vision to reconstruct 3D neurons from stacks of 2D images. You can read all about my thesis on the Gala page.

I graduated Princeton magna cum laude in June 2014, and worked as a freelance web developer for a year. Though I enjoyed the flexibility, I craved something more motivating, and found a position with SumOfUs, a non-profit that fights corporate power through online advocacy. As part of a team of three, I rebuilt their digital campaigning platform using Ruby on Rails, Backbone, and React into an open-source CMS we call Champaign. The platform is robust and serves hundreds of thousands of users per month.

I also began to use the platform we were building to make microsites to support our campaigning. For example, I designed and built for our campaign against the proposed purchase of Monsanto by Bayer. I've gotten more involved with the conceptualization process as time has gone on, and I'm excited to be a part of SumOfUs's work.

You can also check out my Github or connect with me on LinkedIn.