Resume

Objective

I’m currently employed by the Mozilla Corporation and very happy, therefor I am not seeking a new primary employer. I am accepting part time consultant work.

Projects

Please refer to the projects page.

Skills Summary

Operating Systems

Linux, Windows and Mac. Prior experience with Solaris.

Networking

TCP/IP, IPv4 & IPv6, TCP & UDP, ARP/RARP, ICMP & ICMPv6, LAN/WAN, DNS, appletalk, IPX

Web Protocols

HTTP 1.0 and 1.1, XMLRPC, JSONRPC, WebDAV, CalDAV, Atom Pub/Sub in XML/JSON, GData. Generally comfortable with any new REST protocol.

Programming

My primary programming language is Python and I am acceptable at programming JavaScript. I have prior but by no means recent experience in Perl, tcl/tk, PHP, C, C++ and Objective-C.

Python Technologies

Outdated experience with TurboGears and Pylons. Recent experience in Django. Experience with all modern ORM’s; Django Models, SQLObject, SQLAlchemy (with/without Elixir). Strong experience with WSGI. Some experience with Twisted web2 WSGI. Lots of experience/annoyance dealing with date/time parsing and representation. Significant experience with; setuptools, cherrypy, simplejson, mako templates, pygments, and most of stdlib.

Conferences

Mozilla Summit 2008, Whistler, BC, Canada
Speaker — Automating Firefox, July 2008
BayPIGgies, Mountain View, CA
Speaker — Automated Ajax WebUI Testing with Windmill, October 2007
OSCON 2007, Portland, OR
Speaker — Automated Ajax WebUI Testing with Windmill, July 2007
CalConnect, Various Locations, USA
Round Table Participant, Interop Rep, Steering Committee Rep — September 2006, January 2007, May 2007, September 2007

Employment History

Mozilla Corporation

Python Developer, Jan 2008 - Present
I am currently working on a suite of tools for testing Mozilla applications, all of which are open source and written in Python and JavaScript. The tools I’m currently working on are referenced above; mozrunner, jsbridge, and mozmill.

Open Source Applications Foundation

QA Development Engineer, Jan 2006 -Jan 2008
I was given technical leadership over the tools and automation development at OSAF. This includes a variety of in house automation systems including a wxWidgets/wxPython based recordering/playback framework, an end-to-end webUI testing framework called windmill, and a small framework for HTTP based protocol testing (CalDAV, atom, etc). I was also the primary representative for OSAF to CalConnect, a consortium of universities, non-profits, and corporations designing and implemented open standards for calendaring.

Real Networks

I had a long history at Real Networks spanning many projects and technologies. Below my history is broken up by title, project, and time.

QA Development Engineer, Server Products, August 2005 - October 2005
I went back to RN on a short term contract to help the server team get up to speed on automation and testing in order to meet a shipping deadline. My focus was mainly on initial testing and automation of networking intensive features.

QA Project Lead, Client Core, December 2004 – June 2005
I was responsible for the QA schedule for all the components of the client core during Real Player and Helix Player releases. I attended triage, read code checkins, assigned regression, and dictated process and automation tasks for the product group.

QA Engineer, Client Core, January 2004 – December 2004
I participated in the core testing of the Real Player for the 10 Gold release, Mac Player (10.0 GOLD), and Strummer. My focus was network functionality and WMDRM (Rhapsody CES Beta).

QA Engineer, Server Team, July 2003 – January 2004
I participated in the testing of the Real Server for the Vodafone R2 release, the Mobile Server Releases and the Server 9 maintenance releases. I was responsible for a variety of features such as logging, 3gpp, Live, congestion controls, and Media delivery.

Software Test Engineer, Enterprise Client & Server, April 2002 - August 2002
I was responsible for all Unix Enterprise Server testing and interaction between the Unix Server and Windows Player. This included a variety of stress testing and administrative interaction from the server to the client on a variety of server operating systems including; Linux, FreeBSD, Solaris 2.7 & 2.8 and HPUX.