Robin Paul Dunn
*****@*******.*******://alldunn.com/robin
blog: wxForty-Two
Education:
B.S., Computer Science, Brigham Young University, June 1990
Skills:
Languages:
Python, C/C++, Java, Obj-C, JavaScript, PHP, Perl
Operating Systems:
Linux, Mac OS X, MS Windows, Solaris, HP-UX, AIX
Tools and Tech:
wxPython, wxWidgets, SWIG, SIP, HTML, XML, Emacs, Apache, Subversion, Mercurial, Git,
Trac, Zope, XML-RPC, Oracle, SQL Server, MySQL, PostgreSQL, GTK, Win32 API, Carbon, Cocoa,
Google Apps, Virtualmin, MoinMoin, WordPress
Achievements:
1998-present
Created and maintain wxPython, an Open Source project that implements a cross platform
GUI toolkit for Python, built upon wxWidgets. Member of the wxWidgets core development
team. Built up a community of thousands of wxPython users and contributors. Provided
dozens of successful releases as the project evolved. Developed a high skill level in user
interface design principles and computer-human interaction concepts.
March 2006
Coauthored wxPython in Action, published by Manning Publications.
July 2003
Python 2.3 includes an extension module originally written by me, the bsddb module.
July 2002
Awarded the ActiveState Programmers' Choice Award for my work on wxPython.
2000-present
Presented tutorials and talks at various software development conferences.
1992
3M Circle of Technical Excellence group winner
Work Experience:
More work experience details can be seen at
http://alldunn.com/robin/resume.html.
April 2008 - presentSoftware ConsultantUniversity of Nebraska Medical Center -- Omaha, NE
Languages: Python, C++
Platforms: Mac OSX, Windows
Worked with the Advanced Clinical Application Programs (ACAP) group, primarily on the
IntuaDesign and IntuaCare applications, which enable non-programmers to create and deploy
data collection forms and reports for tracking of patients requiring long-term care. Uses
wxPython for the user interface and Oracle for the backend database. My responsibilities
were primarily associated with the UI and related issues.
April 2011 - Dec 2011April 2008 - Aug 2008Software ConsultantNational Oceanic and Atmospheric Administration (NOAA) -- Seattle, WA
Languages: Python, C++
Platforms: Mac OSX, Windows
Created and maintained a desktop GUI application for Windows and Mac OS X called CAMEO
Chemicals Standalone that enables NOAA's CAMEO web application to be used entirely
offline. Pioneered and used the BILS (Browser Interface Local Server) design pattern to
embed the server-side application within the client-side application.
Dec 2002 - Feb 2008Software ConsultantOpen Source Applications Foundation -- San Francisco, CA
Languages: Python, C++
Platforms: Mac OSX, Windows, Linux
OSAF was funding the development of wxPython through me. About 50% of my time was
dedicated to wxPython and the rest to OSAF's Chandler project.
First line of support for OSAF developers with wxWidgets or wxPython questions.
Assist with UI design and implementation, and also finding and fixing wxPython related
bugs in Chandler.
Ongoing design, development, documentation, etc. of the wxPython toolkit.
Contribute to the wxWidgets project as a member of the core development team.
De facto leader of the wxPython user community.
Co-authored a book about wxPython.
Other wxPython related projects.
1998 - presentOSS Developer and Leader
wxWidgets and wxPython Open Source Projects -- Planet Earth
Languages: Python, C++, SWIG, SIP
Platforms: Mac OSX, Windows, Linux
I have been deeply involved with these projects for more than a decade. wxWidgets is a
C++ library that provides a GUI API over the native user interface APIs on each platform.
wxPython is C++ and Python code that wraps wxWidgets and enables Python applications to
use the wxWidgets APIs. My work on these projects has at times led me to do work in the
C++ code dealing with the native APIs for each of the core platforms, as well as in the
cross-platform areas of the code. Almost all of the wxPython C++ and Python code was
written by me or generated by tools that I helped to create or enhance.
Over the years my involvement with the projects has ranged between just spare-time hobby
work to having my time working on the project be sponsored by the companies I work for,
and I have also had some consulting jobs that have used wxWidgets or wxPython in their
projects. See above in the Achievements section for more information about my roles and
accomplishments with the projects. My profile at ohloh.net also shows some interesting
statistics about the projects and my involvement.
Aug 2001 - Nov 2002Software ArchitectSMB Technologies -- Portland, OR
When Sliceware closed the intellectual property was purchased by SMB Technologies and I
was kept on to continue development. In October 2002 the IP and other assets were
purchased by a third company and after the transfer was complete it was decided that they
no longer needed my services.
Helped design a custom Linux system installer, automated remote system update, and etc.
Directed their implementation by another programmer.
Designed a system for remote administration of generic "network appliances" via XML-RPC
over an SSL channel and implemented the foundation pieces.
Jan 2001 - July 2001Software ArchitectSliceware -- Portland, OR
Design and implement a GUI application using wxPython to act as client for widely
distributed server-based applications.
Enhance and maintain wxPython and other Open Source tools.
Participate in the design of future versions of current software and new software
products.
Assist with technical recruiting.
Involved with the design and prototyping of a general purpose framework for presenting a
remote user interface (either GUI or browser-based) for server-based or distributed
applications, to be used for aggregated remote management of Sliceware's next generation
of network appliances and Internet gateway devices.
Due to regulatory problems the the VC was not able to adequately fund Sliceware and so
Sliceware was forced to close up shop.
Sept 1996 - Dec 2000Senior Technical Director
System ArchitectJenkon International, Inc. -- Vancouver, WA
Interim Webmaster until IS could hire somebody to fill the position.
Company-wide resource for Web and Internet related issues.
Responsible for the design and implementation of a Web based E-Commerce Application which
interfaces with Jenkon's core, legacy application running in the Unidata database
environment.
Also responsible for the design and implementation of a non-browser communications
interface to the same data and functionality for a Windows product implemented by a
partner company. Assisted with the design and technical direction of this application.
Utilized an interpreted OO language called Python, with several components written in
C/C++, to implement the web application and client interface. Trained new staff on the
Python language. Was personally responsible for all the foundation work that the remaining
staff built upon, and orchestrating the coming together of all the components.
Designed and implemented an RPC server for the legacy application to allow the web
application to reside on a web server remote from the application server. Features include
user authentication, compression and encryption of the data stream.
Assisted with defining team structure, hiring of staff, project plans, all technical
resources, etc.
Designed and implemented the first phase of a distributed, fault-tolerant credit card
processing system that interfaces with IC Verify from CyberCash.
Assigned as System Architect and act as a company-wide resource, assisting with or
mentoring on projects in all product lines.
Worked on the design and implementation of a next generation system to replace current
legacy applications. It is a highly distributed, object-oriented data management system.
The design of the project is being done using UML and following the Rational Unified
Process. The implementation is in Java and JPython, is using CORBA and Voyager for the
middleware, and various ODBMS and RDBMS for the backend.
Oct. 1994 - Sept. 1996Senior Software Engineer
Project Architect
Product LeadIlluminet, Inc. (formerly U.S. Intelco Networks) -- Olympia, WA
Assisted with the completion of the AMAT7 project (a SS7 network monitoring and deductive
billing application, which is Bellcore TR-NWT-001087 compliant) for the Tele-Sciences LDOS
(real-time) platform. This product allows SS7 network providers (the telephone companies)
to perform usage sensitive billing of network resources.
Performed a lot of "clean-up" engineering activities on the project which was 18 months
past deadline, and 2 million dollars over budget when I started. Enabled the project to be
completed within six months.
Assigned as Project Architect (equivalent to Technical Lead) for a new project, CDR7
(Call Detail Recording, also implemented via deductive SS7 network monitoring) for the
Hewlett-Packard AcceSS7 platform (vxWorks and HP-UX). This product enables per call
billing for the use of the voice trunks by an interconnecting provider.
Did initial object oriented design work, and prototypes. Implemented several foundation
classes in C++, including abstract data types, utilities, and an event-driven framework
for the real-time processes. Also implemented an object oriented messaging subsystem for
the IPC between processes.
Coordinated with our partner company, HP Telecommunications Systems Division in
Edinburgh, Scotland. Led the development work of the project with 9 Software Engineers
working under me.
Assisted in landing a multi-million dollar contract with a major Regional Bell Operating
Company, (RBOC). Successfully moved this product through the Alpha, Beta and release
stages.
Did design work for a rewrite of the AMAT7 product for the HP AcceSS7 platform. Guided
the development of this work.
Promoted to Product Lead (equivalent to Development Manager). Assumed responsibility for
all aspects of the technical development of SS7 networking products, as well as
supervision/management of the employees and contractors working on the products. Took a
more direct role with communicating with senior management and customer contacts.
Assisted with responding to an RFP by another major RBOC, and participated in a field
trial for the RBOC with our only major competitor. As a result, we were named as vendor of
choice.
May 1990 - Sept. 1994Software Engineer
3M Health Information Systems -- Salt Lake City, UT
Helped maintain a large scale medical records database program on the Data General MV/40
platform.
Wrote simple utility programs in the X-Windows/Motif environment.
Developed a small scale medical records database product using Clarion, a 4GL.
Worked on development of a large scale database project called HDM for hospital medical
records departments in 'C' on DOS. Was responsible for the low to medium level database
routines, (built on top of BTrieve,) an internal query management language compiler and
executor, Novell based license management routines, 386 protected mode specific modules. I
was also the technical representative on the management team which 'owned' the project.
Took over as Project Technical Lead for the HDM project.
Coordinated development efforts of other engineers.
Selected development tools and trained other engineers in their use.
Implemented much of the main data entry module for HDM.
Designed a system whereby HDM and Codefinder, another 3M HIS product, could communicate
with each other via IPC, on top of DOS.
Successfully saw the project through Alpha, Beta, and several release phases.
I organized, developed, and taught a C++ programming class to the engineers in my group
as well as a few from other groups.
July 1989 - May 1990Systems AdministratorBrigham Young University -- Provo, UT
March 1989 - Feb 1990PC ProgrammerEagleplace Inc. -- Provo, UT
June 1988 - July 1989Teaching AssistantBrigham Young University -- Provo, UT
Jan 1988 - Sept. 1988PC ProgrammerTimp Software -- Provo, UT
References:
Available upon request.
NOTE: If you are reading a hard-copy version of this resume, you can access the original
at http://alldunn.com/robin/resume.html.
Last updated: 16-February-2012