— Patrick Tufts, co-founder of 24 Hr. Diner
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:
- ActionScript (AS3): 3
- C: 3
- C++: 3
- Dart: 5
- Erlang: 2
- Go (golang): 3
- Haskell: 3
- Java: 3
- 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
- FreeBSD (including creating ports): 5
- Linux (Ubuntu, Fedora, etc.): 5
- OS X: 4
- Solaris: 2
- 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
- Ansible: 2
- AWS: 2
- Kubernetes (EKS): 3
- AWT and Swing: 4
- GTK and GNOME (C, PyGTK): 4
- QT and KDE: 4
- SDL and PyGame: 4
- Tk (Perl, Ruby, Python): 4
- Android: 2
- iOS: 2
- MySQL: 5
- PostgreSQL: 3
Protocols (RFC-level knowledge):
- gRPC: 2
- HTTP: 4
- IPv6: 4
- SIP: 4
- Git: 4
- Selenium: 4
- Agile software development (XP, Scrum, Kanban): 4
- Application Security (AppSec): 3
- Asynchronous network programming (stackless Python, gevent, Twisted, node.js, etc.): 4
- Behavior Driven Development (BDD using Cucumber, RSpec, and Webrat): 5
- Client/server programming: 4
- Compiler and interpreter design: 2
- Design patterns: 4
- Distributed computing / cloud computing: 3
- Functional programming: 4
- Internationalization (I18N) and localization (L10N) including multi-byte languages, Unicode, and UTF-8: 4
- Machine learning: 2
- Microservices: 3
- Model view controller (MVC) programming: 4
- Multi-threaded programming: 3
- Object oriented programming (OOP): 4
- Peer-to-peer programming (P2P): 3
- RESTful web services: 4
- RPC mechanisms (CORBA, XML-RPC, RMI, etc.): 3
- Concurrency and Python
- Developer Diaries: The Pull on Python Programmers
- Translating C to English Using Haskell
- Everything Your Professor Failed to Tell You About Functional Programming
- The Inverse Extension Design Pattern
- Prototyping Interpreters using Python Lex-Yacc
- Learning Scala
- Play Framework Essentials
- Dart: Up and Running
- Expert Python Programming
- Python for Unix and Linux System Administration
- Treading on Python Volume 1
- Core Python Programming
- Core PHP Programming
- I maintain a fairly popular technical blog.
- I've spoken at most of the nearby Python and Ruby users groups, including PyCon.
- I was moderator of BayPiggies (the Bay Area Python Interest Group) for 3 years.
- My work with Jeffrey Posnick on "Party Playlist Picker" at Google led to a patent application for realtime YouTube playlist collaboration.
- I was acknowledged in Foundations of Agile Python Development.
- I was acknowledged in RFC 3974 and RFC 4193.
- I am the author of GCipher, an open source encryption GUI and network proxy written in Python using PyGTK.
- I am the author of Aquarium, an open source Web application framework written in Python. Aquarium was mentioned in Oracle and Open Source and was used by IronPort Cisco for many years.
- I was the coauthor of Freetrade, an open source shopping cart system written in PHP and used in several ecommerce sites.
- Practical Ethical Hacking - Udemy
- Machine Learning - Stanford
- Functional Programming Principles in Scala - École Polytechnique Fédérale de Lausanne
- 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
- 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
- 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 YouTube.com/create. 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, js.io, gevent, WebOb, Twisted, zeromq, Flask, Jinja2, Ruby, Rails, and MySQL.
- 6/2009 to 10/2010 - Fandor (a small indie film startup)
- 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 foxmarks.com (the corporate website), login.foxmarks.com (the account management application), and my.foxmarks.com (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 my GitHub account.
Here are some of my professional videos.
References are available upon request.