A music résumé is also available.

Owen Duncan Smith

Last updated: May 2015

538 Shorebird Cir #22201
Redwood City, CA  94065
(510) 684-5434
ods@stanfordalumni.org
Web owendsmith.com
LinkedIn ods94065
StackOverflow Owen S.
GitHub ods94065

I'm a senior software developer with broad experience in web and server development, deployment and configuration management, project leadership, technical communcation, and mentoring. I have particular interest in internet technologies, programming languages, functional programming, and emerging technologies.

Experience

Back End Engineering Lead, Udacity, Mountain View, CA, 11/13–present.
I am leading a small, elite team of engineers to revolutionize the world of education. Most of my work is in a support role, guiding and reviewing the work of the team across all back-end systems. Additional projects include:
  • Complete the enrollment system for our paid course subscription product.
  • Implement a redesign of all transactional email in the system, introducing Mako template inheritance to streamline the effort.
  • Assist in building a processing pipeline for course video archives and transcripts of course videos, as well as additional documents that may be downloaded in the classroom.
  • Lead the rolling out of Puppet automation across our AWS infrastructure.
Work has focused on our web services API, queue processors, and core infrastructure libraries, using Python on the Google App Engine platform.
Senior Member of Technical Staff, PayPal, San Jose, CA, 10/03–06/13.
I started at PayPal as a nearly entry-level software engineer and concluded as one of the leaders of the engineering and operations organizations. Projects included:
  • Implement SiteCatalyst web analytics tags for the front-end web site.
  • Implement an integrated EFT bank web flow into our China product offering.
  • Implement an email-based notification and approval system for our emergency bug fix release process.
  • Lead the development of the payment system for eBay Express.
  • Redesign the payment platform for eBay Checkout.
  • Assist the build team in porting the C++ codebase to a new build management tool built around gmake.
  • Design and execute large-scale code refactoring efforts.
  • Migrate the development organization to a new operating system.
  • Architect the overhaul and standardization of deployment tools and process, introducing the use of Puppet for configuration management.
Work has involved everything from front-end HTML templates to back-end database layer design and implementation, from user-facing applications to tools and infrastructure. Work on web applications and refactoring done in C++, using largely proprietary libraries and technologies. Work on internal tools done in Ruby, Puppet, Python, bash, and Perl.
Independent Web and Computer Consultant, 2000–2003.
Design and implement a web site for a performing artist using HTML 4.01 and CSS1. Maintain and upgrade PC software and hardware. Achieve proficiency in Java.
Developer Technical Support Manager, Be, Inc., Menlo Park, CA, 2/00–8/00.
Director of a team of 3-4 engineers, both on and off-site, in support of developers of the first generation of media-savvy Internet appliances. Investigate BeIA support for incoming hardware. Provide development releases of BeIA, and development tools, to customers. Interview and hire team members. Evaluate team members' performance and recommend promotions/ raises.
Developer Technical Support Engineer, Be, Inc., Menlo Park, CA, 6/98–2/00.
Focused effort upon support of audio, MIDI, and application/interface technologies, in C++. Answer technical queries about development in BeOS. Develop sample code and newsletter articles. Design and write code for third parties developing applications and libraries on BeOS. Maintain and develop online developer support database. Develop and present all-day sessions for Be developer conferences.
Product manager, Tanner Research, Inc., Pasadena, CA, 6/96–5/98.
Drive specification and development of a Windows schematic entry tool for ASIC, MCM, and MEMS design. Manage a team of up to 5 developers, and coordinate integration with simulation tools. C++ and MFC were used in the implementation, with Mainwin being used for a port to UNIX.
Systems engineer, Tanner Research, Inc., Pasadena, CA, 10/95–6/96.
Completed development of a DOS and UNIX schematic entry tool for ASIC and MCM design, using Watcom C and the GNU development system.

Education

BA Music (Music, Science, and Technology); Stanford University, Stanford, CA. Coursework included classes in computer science, digital signal processing, audio engineering, psychoacoustics, and computer music composition.

Skills

Programming languages: Python, C, C++, Ruby, Haskell, bash, Perl, Common LISP, Java, Javascript, Matlab, Emacs Lisp, Scala, Objective C.
Operating systems: Linux (RHEL, Ubuntu), OS X, BeOS, Windows.
Technical proficiencies: multi-tier web service design and implementation, TDD and BDD, REST API design, multithreaded / multiprocess / microthreaded / actor-model concurrency, functional and OO programming, configuration management, RPM packaging and application deployment, regular expressions, combinator-based and LR/LL parsing, XML-based data design and transformation, fonts and encodings, audio production software, OS design, agile project planning and execution.
Internet technologies: Google App Engine, HTML5, CSS, AngularJS, XML (incl. SAX and DOM frameworks), XSLT, Django, WSGI, Apache, PHP, FastCGI, CGI, Hunchentoot, HTTP/S, SSH, YAML, JSON, Node.js.
Database technologies: Oracle, Google App Engine, PostgreSQL, MongoDB, Riak databases; SQL; Django and SQLAlchemy ORM.
Programming tools: GNU Emacs; GNU Make, gcc, Rake, Maven, and Jam build tools; Puppet configuration management; RPM packaging; RSpec (Ruby), HSpec (Haskell), nose2 (Python), unittest (Python), Test::More (Perl), and Google Test (C++) frameworks; Git/GitHub, Perforce, and ClearCase source control; gprof; doxygen and similar documentation frameworks.