Education - I have a Bachelor of Arts (with honors) in mathematics with a concentration in computer science from St. Mary's College of California. I won the Br. Alfred Brousseau award for "outstanding scholarship as a mathematics major."

Profile - I am an enthusiastic and friendly extrovert. My most notable traits as a programmer include: an incredible dedication to producing clean, well-documented, well-tested code on time and on budget; a passionate love of programming and especially programming languages; and a commitment to the open source community.

Skill Set - On a scale of one to five, five being the most familiar, I am familiar with the following technologies:

Programming Languages:
  • ActionScript (AS3): 3
  • C: 3
  • C++: 3
  • Dart: 5
  • Erlang: 2
  • Go (golang): 3
  • Haskell: 3
  • Java: 3
  • JavaScript (ES6): 4
  • Kotlin: 3
  • Objective-C: 2
  • Perl: 4
  • PHP: 5
  • Python: 5
  • Ruby: 4
  • Scala: 3
  • Scheme: 2
  • Shell scripting (sed, awk, sh, make): 3
  • x86 Assembler: 2

Operating Systems:

  • FreeBSD (including creating ports): 5
  • Linux (Ubuntu, Fedora, etc.): 5
  • OS X: 4
  • Solaris: 2

Web Programming:

  • Angular 1.X: 3
  • Apache: 4
  • CSS: 3
  • Django: 4
  • Google App Engine (Python, Go, Java): 4
  • Google Web Toolkit (GWT): 3
  • HTML5: 3
  • jQuery: 4
  • Less: 3
  • MobX: 4
  • nginx: 3
  • Play Framework: 3
  • Rails: 4
  • React: 4
  • Spring (Spring Boot): 2
  • Twisted: 2
  • Webpack: 4
  • XML (SAX, DOM, etc.): 3
Cloud Development:
  • Ansible: 2
  • AWS: 2
  • Kubernetes (EKS): 3
GUI Programming:
  • AWT and Swing: 4
  • GTK and GNOME (C, PyGTK): 4
  • QT and KDE: 4
  • SDL and PyGame: 4
  • Tk (Perl, Ruby, Python): 4

Mobile Development:

  • Android: 2
  • iOS: 2


  • MySQL: 5
  • PostgreSQL: 3

Protocols (RFC-level knowledge):

  • gRPC: 2
  • HTTP: 4
  • IPv6: 4
  • SIP: 4

Other Applications:

  • Git: 4
  • Selenium: 4
Other Programming Skills:


Technical Editing:

Other Achievements:

Online Classes:

Employment History:

10/2015 to current - Udemy (through the IPO)

Q2 2020 - current (and throughout as a contributor)
Architect on the AppSec and Fraud Team

  • Created cross-company AppSec educational materials. Fixed tons of vulnerabilities reported by HackerOne. Overhauled and fixed our approach to XSS in user-generated content on the frontend. Was responsible for the Virus Scanner service which we used to scan user-uploaded content.

Q1 2019 - Q2 2020 (and throughout as a contributor)
Architect for the Microservices Platform

  • My two co-workers and I built the microservices platform for Udemy using AWS, EKS, Kubernetes, Python, Kotlin, gRPC, Spring Boot, Terraform, Ansible, make, etc. After the first year, we had 11 services running in our prod cluster. Led the choice of technologies, did consensus building, developed strategies for moving the monolith to microservices, wrote example services, and wrote most of the documentation for the platform.

Q4 2015 - Q4 2018 (and throughout as a contributor)
Architect (promoted from Principal Software Engineer) on Team F

  • Worked on "frontend, frameworks, fast, and frickin' awesome things". Led the migration from require.js to Webpack on my own. My team as a whole led the successful migration from Angular 1.X to React, MobX, and modern JavaScript. On the backend, we used Python, Django, and MySQL. I also built the core of the isomorphic rendering engine.
  • Wrote most of the developer documentation for web developers and onboarded most of the engineers who worked on the web app. Both of these things made me well-beloved among my co-workers.
5/2013 to 7/2015 - Twitter (through the IPO)

Q1 2015 - Q3 2015 (and previously as a 20% contributor)
Staff Education Engineer for Twitter University

  • Developed and/or taught various classes for Twitter University with a focus on core software engineering subjects.
  • Led "Flight School Basics", the new hire orientation for engineers.

Q2 2013 - Q4 2014 (and afterwards as a 20% contributor)
Staff Software Engineer on the Capacity team in Infrastructure and Operations

  • Developed a custom supply chain management system to manage the flow of incoming servers. This was used to create the Allocation Plan, Master Production Schedule, Rack Plan, etc. Used Python, Django, MySQL, Linux, JavaScript, jQuery, and Apache Mesos.
  • Created and taught a class called Best Practices for Software Engineers. This class became part of the new hire orientation process for engineers.
5/2011 to 4/2013 - Google

Q2 2013 - Q2 2013 (and previously as a 20% contributor)
Senior Developer Advocate for Dart within Chrome Developer Relations

  • Gave talks about Dart. Gave 7 international talks in 6 countries. Gave 9 talks locally.
  • Wrote open source code. Developed doc-code-merge and led development of doc-code-verify to make sure code samples embedded in documentation stay correct. Led a project called dart-html5-samples to port samples from HTML5 Rocks into Dart. The samples are linked to from the welcome page of Dart Editor. Worked with another developer to build a project called Irrduino. The frontend that I built in Dart looks like Farmville, but it actually controls a real sprinkler system. Built Tetris in Dart only a month after Dart was first announced.
  • Advocated for Dart using video. Hosted or helped host 7 episodes of Dartisans for Google Developers Live. We've gotten over 11k views for just those 7 episodes. Gave a talk on Dart in Spanish that resulted in 1.8k views and 166 hours of watch time. This took a lot of effort since I am not a native Spanish speaker! Created a screencast on using Dart with GWT that got 1.7k views and 161 hours of watch time. Created a video about Irrduino that resulted in 6k views and 200 hours of watch time. Spoke remotely at 3 DevFests for a total of 300 attendees.
  • Wrote blog posts about Dart. Wrote the most popular blog posts on Dart two quarters in a row thanks to my blog posts on TypeScript and dart-html5-samples.

Q2 2011 - Q2 2012 (and afterwards as a 20% contributor)
Senior Developer Advocate for YouTube APIs

  • Advocated for YouTube APIs. Spoke about YouTube APIs at 9 international events in 8 countries. Spoke at 15 local events. Won a peer bonus for giving 3 talks in one trip to Egypt. Wrote 5 blog posts for the YouTube API blog. I was the host for 9 episodes of YouTube Developers Live, which resulted in 16k views.
  • Jarek Wilkiewicz and I decreased the average customer wait time for the partner support queue by 300% in one quarter. Worked with Jarek Wilkiewicz to gain a total of 10 commitments for various YouTube API launches. In particular, worked with 6 different partners as they integrated with Had 56 partner meetings in which I solved problems, gathered feedback, and garnered integrations.
  • Gave two webinars for Google I/O. My webinar Using Ruby on Rails and YouTube APIs for Educational Apps currently has 75k views and was our most successful Google Developers Live video. My webinar YouTube for Your Business currently has 13k views.
  • Built Quizzimoto, an open source application that I used as the basis for my talk Using Ruby on Rails and YouTube APIs for Educational Apps talk. Also used it to give a talk at two local Ruby users groups, including a talk at Pivotal Labs.
  • Worked with Jeffrey Posnick to build Party Playlist Picker. It's an open source Google App Engine application written in Python that lets users collaboratively edit a YouTube playlist in realtime. Our Google Developers Live video for it has gotten over 1k views.
  • Provided technical support for business development in meetings with game publishers. I've met with roughly 15 partners including one of Google's largest advertising partners.
  • Open sourced numerous sample projects written in Python, Ruby, PHP, Dart, and Java (for Android).
10/2010 to 3/2011 - Twilio (a web services startup)
Senior Software Engineer. Lead a project as it moved from prototype to production via refactoring, performance testing, and scalability enhancements. Used Python and Twisted. Built various prototypes using Socket.IO, node.js,, gevent, WebOb, Twisted, zeromq, Flask, Jinja2, Ruby, Rails, and MySQL.
6/2009 to 10/2010 - Fandor (a small indie film startup)
Software Architect. Built, which is a site similar to NetFlix on-demand. Used Ruby, Rails, ActionScript, JavaScript, jQuery, MySQL, the Flash Media Server (FMS), Wowza, and BDD. Integrated with Boxee, Limelight, Facebook, and Roku. Made open source contributions to LongTail Video (JW Player, a Flash video player).
3/2008 to 6/2009 - 24 Hr. Diner (a three-person startup)
Senior Software Engineer. Architected and built a general-purpose recommendation system similar to Amazon's system using Linux, nginx, MySQL, and Python.
11/2007 to 2/2008 - Metaweb Technologies (a startup acquired by Google)
Senior Software Engineer. Refactored the autocomplete subsystem which was written in Python.
7/2007 to 11/2007 - MultiCosmic (a two-person Facebook startup)
Senior Software Engineer. Built a Facebook app called Free or Best Offer using Linux, MySQL, Ruby on Rails, and RFacebook.
8/2006 to 5/2007 - Foxmarks Inc. (a startup by Mitch Kapor)
Senior Software Engineer. Built (the corporate website), (the account management application), and (used to view your bookmarks online) using Linux, MySQL, Python, Pylons, and Genshi.
1/2004 to 8/2006 - IronPort Systems (a startup acquired by Cisco)
UI Platform Engineer within the Architecture and Platform Engineering Group. My Web application framework, Aquarium, was officially adopted across the entire organization. Architected the user interface to configure the email gateway appliance, including centralized management and localization to eight languages. (The user interface alone consisted of over a quarter of a million lines of code.) Built a Web server named Glass that could run under stackless Python with coroutines. Was responsible for the common look-and-feel of IronPort applications across the company.
8/2001 to 12/2003 - NTT Multimedia Communications Laboratory
Software Engineer. Worked (sometimes in a team, usually alone) on a wide range of research and development projects using: Perl, Ruby, C, C++, sh, Jython, Tk, QT, KDE, Swing, Zope, Mason, mod_perl, IPv6, HTTP, SSL, XML-RPC, Linux, FreeBSD, XML, PGP, Apache, PostgreSQL, client/server programming, multi-threaded programming, peer-to-peer programming, and I18N.
9/2000 to 5/2001 - Echobridge (a consultancy)
Programmer 2. Built Catholic Healthcare West's website using Python, MySQL, SQL Server, Apache, Linux, and Aquarium.
6/1999 to 9/2000 - Clear Ink (a consultancy)
Web Engineer 2. Worked on multiple ecommerce sites using PHP, MySQL, Solaris, and NT.
1/1998 to 4/1998 - Sun Microsystems
Resolution Coordinator Intern. Provided technical support over the phone to other members of Sun Microsystems using Solaris.
11/1997 to 5/1999 - Saint Mary's College of California
Group Tutorial Leader. Tutored groups of three to fifteen students who were learning Turbo Pascal, C++, and x86 assembler.

Here is some sample code written in Python, Ruby, Dart, and Go.

Here is my GitHub account.

Here are some of my professional videos.

References are available upon request.