Eric Dobbs

eric@dobbse.net

Boulder, Colorado

PDF version

Summary of Strengths

Software Engineer

Pivotal Labs

November 2010 to September 2011

Learning

Mastered Ruby within a month. Immediately effective maintaining and updating existing Rails application for Groupon Merchant Center team.

Scale

Refactored Groupon's merchant analytics into an independent service-oriented architecture. Improved largest deal analytics reports from a query time of 7 minutes down to 15 seconds.

Usability

Initiated an informal usability analysis for Groupon's editorial tools via direct observation of editors and deal creators.

Dramatically improved deal creation and editorial workflows. Streamlined communications between sales and editorial teams by integrating with Salesforce.

Methodology

Full-time pair-programming, behavior-driven design (BDD), continuous integration, collective ownership, small releases, planning game, retrospectives, on-site customer.

Aikido Instructor

University of Colorado Recreation Center

August 2005 to Present

Impact

Three students gave direct feedback that my teaching changed their lives.

Increased typical class enrollment by 50%. Inspired many students to join Boulder Aikikai.

Consultant

bivio Software, Inc.

December 2003 to May 2010

Impact

Changed the company culture: Testing became a core value. Extended internal unit testing framework to simplify testing core business logic. Number of test files grew from 85 to 585 or 20% to 60% coverage.

Drove successful adoption of XHTML and CSS for web interfaces, and wikis and blogs for content mangagement, both internally and for bivio's customers.

Learning

In order to build a python interface to a C++ scientific visualization toolkit, learned on demand the toolkit's API, C++, Qt, PyQt, OpenGL, PyOpenGL, NumPy, python distuitls, SIP, and GNU autotools.

Kept pace with bOP, an extremely complex and abstract web framework under continual evolution: The framework grew from 390 classes to 900+ through 720 releases with a median days-between-release of 1.

Teaching

Trained programmers with wildly diverse levels of experience from high-school student interns with no previous programming experience to veteran C++ and Java developers with decades of experience.

Trained customer support staff in investment club accounting software, managing customer expectations, and in the use of CRM systems. Most of the training was by teleconference or online via WebEx or GoToMeeting.

Lead a three-day bOP training course for a client's entire development team whose programming skills ranged from systems administrators to senior embeded systems programmers. Also created the overall training plan and most of the supporting documentation. Received strong positive feedback from all participants.

Client Impact

Saved face for the company when the president forgot a meeting with the biggest client. Took his place offering valuable contributions around complex design and security issues. Client was seriously impressed with my ability to step in unprepared and to turn a potential train wreck into a productive meeting.

Complexity

Maintained and extended applications in diverse and complex domains including a state-wide insurance accounting system, a non-profit grant application system, a formal balloting system for industry standards, an alumni association membership system, and an investment club tax accounting system.

Independent Contractor

Microcomputer Training Specialists

March 2003 to December 2003

Impact

Coached the developers of the City and County of Denver's Wastewater Management Division building an internal J2EE web application. Previous failures to replace or repair the legacy system made the project particularly high-risk. Delivered a replacement system to production in nine months.

Methodology

Demonstrated agile development values (communication, simplicity, feedback, and courage) and practices (small releases, simple design, test-driven code, refactoring, collective ownership, coding standards).

Developed automated acceptance tests in close communication with the users. 75% of internal code was written test-first.

Senior Software Engineer

PlanetCAD Inc.

July 2000 to September 2002

Impact

Delivered three major releases precisely on schedule. Customers were very impressed by the features added in each release.

Designed extensible workflow engine to manage automated processing of complex transformations of engineering data.

Leadership

Promoted to Lead Developer after only four months. Acting Development Manager for eight months. Cultivated a very cohesive development team despite strikingly different personalities and significant turnover among executives and management.

Worked with company officers to influence PlanetCAD's technical direction. Conducted formal and informal presentations and meetings. Gave detailed benefit and risk analyses of three Java web application frameworks.

Led design meetings. Negotiated product requirements and development schedule. Summarized key differences of opinion. Resolved disagreements. Built consensus. Balanced maintenance of existing features with new development under tight deadlines.

Learning

Learned PHP, Java and Python on demand. Ported an online CAD translation service from PHP to Java.

Proactively extended Java and OOD skills. Independently studied design patterns, refactoring, unit testing, development processes, open source projects, UML, Java security, JMS, and object-relational modeling.

Methodology

Championed the adoption of Agile development practices including XP's Planning Game for scope-centered scheduling, automated unit testing, acceptance testing, refactoring, short release cycles, and collective ownership.

Applied design patterns including Composite, Facade, Factory, Flyweight, Model-View-Controller, Singleton, and State.

Coaching

Introduced colleagues to the use of version control in web development, UML, use-case based analysis, JSP tag libraries, and design patterns.

PathFinder Architect

VisionLink, Inc.

July 1997 to March 2000

Impact

Developed and managed VisionLink's flagship product and all client support. Carried PathFinder into the de facto standard in school-to-career data systems.

Development

Released five versions of PathFinder; each version involved a six month cycle and included all phases of development from feature request to release and ongoing support.

Engineered and implemented the transition from remotely managed installations to a software as a service (SaaS) model which thrived through the .COM crash and beyond.

Communication

Mediated interactions between clients and their ISPs. Facilitated discussions to solicit new features from clients. Led seminars on network security. Delivered presentations to audiences of up to 90 people. Provided technical support by phone.

InterAct Manager

Clark County Public Education Foundation

August 1994 to July 1997

Impact

Transformed InterAct from a pilot project BBS with seven desktop modems into a production ISP for the school district with seven T1 lines.

Leadership

Supervised an office of two full-time technicians and three student interns. Mentored staff in their professional development. Delegated responsibility with authority, conducted interviews, addressed disciplinary issues as necessary, and accepted direction from and reported progress to supervisors.

Competed with the District Information Systems Division in the deployment of wide area network sites; with only two field technicians we matched the number of remote sites and surpassed the support for those schools we connected.

Network design

Collaborated in the design of a wide-area network encompassing the entire Las Vegas valley and beyond. As of July 2000, that design was still in use connecting 250 sites across 7,910 square miles, including 234 schools, supporting 217,000 students, and more than 15,000 educators.

Customer support

Supported a complex mix of customers including teachers, students, principals, parents, administrators, school board members, existing and potential donors to the foundation, and the superintendent.

Research Assistant

University of Toronto, University of Siena

August 1990 to May 1991 and January 1992 to June 1992

Illustration and animation

Created unique visual aids for education and research. Illustrated fundamental concepts and created original animated analyses of pivotal diagrams of Renaissance perspective by Alberti, Leonardo da Vinci, Piero della Francesca and others.

Second Degree Black Belt

Aikido Schools of Ueshiba

November 2005

Bachelor's of Environmental Design, emphasizing computer methods in design

College of Architecture and Planning, University of Colorado at Boulder

May 1994

Technical Skills

(aka. buzzword compliance ;-)

Languages
  • Ruby
  • JavaScript
  • Perl
  • Python
  • SQL
  • Java
  • AutoLISP
  • AppleScript
  • PHP
  • bash
  • DOS batch files
  • a little C++
  • a little Common Lisp
Markup
  • HTML5
  • XHTML
  • HTML
  • DHTML
  • XML
  • CSS
Web frameworks
  • Rails
  • bOP
  • Struts
  • Turbine
  • a little Django
  • CGI (the simplest framework that can possibly work ;-)
Databases
  • PostgreSQL
  • Oracle
  • MySQL
  • Access
  • FileMaker Pro
Practices
  • Test-driven development (TDD)
  • Behavior-driven development (BDD)
  • Pair programming
  • Don't repeat yourself
  • Emergent design
  • Design patterns
  • Stories
  • Planning game
  • Continuous integration
  • Small releases
  • Refactoring
  • Collective ownership
  • Coding standards
Operating Systems
  • MacOS X
  • Linux
  • Windows XP, 2000, NT, 98, 95, 3.x
  • MacOS 6-9
Networking
  • TCP/IP routing, addressing, subnetting
  • NAT
  • DNS
  • firewalls
  • proxy servers
  • routers
  • ethernet hubs and switches
  • modem banks
  • file and print servers
  • network printers
  • cabling
Graphic design
  • image scanning
  • digital photography
  • image processing
  • illustration
  • page layout
  • 3D modeling
  • rendering
  • animation