Robin Paul Dunn

Education:
B.S., Computer Science, Brigham Young University, Aug 1991
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:
 
May 2012
Google's Google Drive product uses wxPython for the User Interface of the preferences dialog and other visual components.
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.
June 2012 - October 2012
Software Engineer Consultant
Bio-Rad Laboratories -- Pleasanton, CA
  • Languages: Python, C++
  • Platforms: Mac OSX, Windows
Software development of a desktop application using wxPython, NumPy and Matplotlib, which facilitated the visualization of the droplets processed by a scientific digital PCR machine, and provided other information about the results.

April 2008 - March 2012
Software Engineer Consultant
University 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 2011
April 2008 - Aug 2008
Software Engineer Consultant
National 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 2008
Software Engineer Consultant
Open 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 - present
OSS Developer and Leader
wxWidgets and wxPython Open Source Projects
  • 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 2002
Software Architect
SMB 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 2001
Software Architect
Sliceware -- 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 2000
Senior Technical Director
System Architect
Jenkon 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. 1996 Senior Software Engineer
Project Architect
Product Lead
Illuminet, 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. 1994
Software 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 1990
Systems Administrator
Brigham Young University -- Provo, UT
March 1989 - Feb 1990
PC Programmer
Eagleplace Inc. -- Provo, UT
June 1988 - July 1989
Teaching Assistant
Brigham Young University -- Provo, UT
Jan 1988 - Sept. 1988
PC Programmer
Timp 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: 24-October-2012