Andrew J. Peterson
NDP Software•
4104 - 24th Street, #202
•
San Francisco, CA 94114
Land
415.508.6059
• Mobile
415.377.3998
• Email:
andy@ndpsoftware.com
Goal
Challenging technical projects, where I can use my broad software experience to build great, user-focused software.
Overview
-
20 years delivering commercial and vertical market software.
-
Strong software design: excellent problem analysis, object-oriented analysis, design methods, human interface design and database design. Software includes enterprise level client applications, vertical market software, successful commercial products, and web-based applications.
-
Solid understanding of the software development process, including requirements gathering, analysis and design, development tools and technologies, release and version control, contemporary testing methodologies, and deployment management.
-
Excellent written and verbal communication skills.
-
Versatile and pro-active leader, team-player and problem-solver. Capable of working with tight deadlines. Fast learner.
-
Technical expertise in popular development tools, web technologies, languages, servers, and applications.
-
Software Designer:
Agile development,
Analysis,
Behavior-driven Development,
Data Presentation,
Database,
Design Patterns,
Extreme Programming,
Human Interface Design,
Kanban,
Object-oriented Design (OOD),
Object-oriented Programming (OOP),
Pair programming,
Prototyping,
Refactoring,
Software Architecture,
Story writing,
Test-driven development,
UML,
User Testing,
User stories,
Writing
Work Experience
November 2007 - November 2010
Carbon Five •
Team LeadCarbonFive delivers software through an iterative and collaborative consulting process. The focus is mainly open source Java and Ruby on Rails platforms. I was responsible for client, project and technical management.
Tools:
Ericsson SMS,
GTalk,
Hoptoad,
jQuery,
regex (regular expressions),
Ruby on Rails,
SendGrid,
Site Uptime,
Sphinx,
YUI
Platforms, Technologies & Protocols:
Ajax,
Csster (creator),
Engine Yard Cloud,
Erector (contributor),
Geocoding,
Git,
Heroku,
jQuery,
jQuery plugins,
Jasmine,
JSON,
Mongrel,
Nginx,
RSpec,
SVN,
Selenium,
SMS,
SMTP,
Struts 2,
Ubuntu,
Unit Testing,
Verisign Credit Card Processing,
Webrat,
WebServices
Software:
Atlassian Bamboo,
Atlassian Confluence,
Atlassian JIRA,
EasyMock,
Git,
GitX,
Github,
Google Maps API,
Hibernate,
Hibernate 3,
HttpUnit,
IntelliJ IDEA,
JBoss,
JDOM,
JUnit,
JWebUnit,
Jakarta Commons Java utilities,
Lucene,
MPW,
Maven,
MySQL,
Pivotal Tracker,
Postgres,
Projector,
Prototype,
RubyMine,
Sphinx,
Spring Framework,
Spring MVC,
Struts 2,
Subversion (SVN),
TeamCity,
Unix,
YUI,
source code control
Primary projects:
Power Reviews
PowerReviews Express: created and integrated self-service portal for small businesses online shopping product review service.
goBalto.com
goBalto.com: Pharmaceutical manufacturing industry directory, network and web application.
Aardvark
Innovative social search product (purchased by Google, IM integration).
Tracker Story Maps
"Story Map" visualization of Pivotal Tracker stories, created as a shared
project for developers with "down time." Created initial spike
and coached junior developers.
October 2006 - November 2007TeeBeeDee •
Principal Software ArchitectSocial and information networking platform for Baby Boomers.Tools:
Ant,
Apache Commons,
Atlassian Bamboo,
Atlassian Confluence,
Atlassian JIRA,
Compass,
DWR,
EasyMock,
Hibernate 3,
IntelliJ IDEA,
JSAN,
JUnit,
Lucene,
MochiKit,
MySQL,
Photoshop,
Prototype,
Scriptaculous,
Solr,
Spring Framework,
Spring MVC,
YUI-2.3.0Platforms, Technologies & Protocols:
Ajax,
Apache Jakarta Tomcat,
Apache web server,
JSON,
JSP Documents,
Linux,
MacOS X,
SVN,
Search Engines,
Windows XPArchitect
Set technical strategy and advocated internal development projects. Provided technical
leadership and mentoring.
Established standard development patterns to improve maintainability and development velocity.
Created tools to reduce code complexity.
Software Developer
Designed and built the "kudos", a peer rating system; member profile pages; "Invite a Friend"; Q&A; "Real-life Scripts", and various parts of other functionality. Worked at all tiers: DB schemas, persistence mappings, services, web controllers, and views.
Scrum Master
Ran daily stand-up meetings, iteration check-in meetings, engineering estimations, and iteration retrospectives.
Advocated agile development and worked with product development to implement an agile process.
March 2005 - October 2006
GreatSchools.net
•
Software Manager, Senior Software Architect
The premier guide to K-12 school information, the non-profit GreatSchools provides
resources for parents to improve the U.S. education system.
Tools:
Ant,
Apache Commons,
Clover code coverage,
Cruise Control,
Google Maps API,
Hibernate,
Hibernate 3,
IntelliJ IDEA,
JUnit,
Lucene,
Maven,
MySQL,
Photoshop,
Sitemesh,
Spring Framework,
Spring MVCPlatforms, Technologies & Protocols:
Ajax,
Apache Jakarta Tomcat,
Apache web server,
CGI,
CVS,
FreeBSD,
Geocoding,
JSP Documents,
Java WebStart,
MacOS X,
Swing,
Verisign Credit Card Processing,
WebServices,
Windows 2000,
Windows XPArchitect
Defined the technology stack and designed architecture to transition a data-intensive, high-traffic web site (max 2-3k page view per minute) from Perl to Java. Developed transition strategy and completed initial implementation.
Software Manager
Implementing an XP/agile-based methodology including test-driven development, pair programming, code reviews, user stories and "planning poker." Hired and managed staff, and coordinated contractors as needed. Coordinated releases and development schedule.
Senior Software Developer Implemented numerous web pages, from the CSS and Javascript down to the database schema. Prototyped new product ideas, especially mapping and Ajax-based UIs.
Added secure Verisign credit card processing. Delivered user-friendly Swing-based data loading tool to internal team.
March 1999 - present
NDP Software
•
Principal
NDP Software creates high-quality software products and provides consulting services for enterprise, commercial and non-profit clients. Services range from web development
to software development along with consulting.
2006-2011
Developer, Mini-Projects
I developed numerous "side projects" during this period. These
range in content, but most are small-- testing the limits of what value can be created
with extremely limited development time. Here are a few:
July 2002 - March 2005
Java Architect, Presentation Tier
•
Navis LLC
Led web tier development of company's Java EE platform. Defined, tested, documented, taught and sold the overall approach to the team and other teams. Built all framework components, including site map, navigation system, data dictionary, taglibs, ui "widgets" and business tier API. Used some aspects of extreme programming, notably unit testing and continuous integration.
Tools:
Ant,
Apache Jakarta Tomcat,
BBEdit,
CVS,
Cruise Control,
Eclipse,
Hibernate,
HttpUnit,
IntelliJ IDEA,
JBoss,
JDOM,
JUnit,
JWebUnit,
Jakarta Commons Java utilities,
Macker,
MySQL,
Spring Framework,
Struts,
source code controlPlatforms, Technologies & Protocols:
J2SE,
JDBC,
JSP Taglibs,
Java EE,
MacOS X,
SDKs,
Servlets,
TCP/IP,
ULC (Canoo),
UML,
Unit Testing,
Unix
2002-present
Partner/Developer
•
SpinGuys
Provides quick to set up and easy-to-manage political campaign web sites to local and state-wide candidates.
Tools:
Apache,
BBEdit,
Eclipse,
FTP,
MacroMedia Fireworks,
MySQL,
Unix
2000-present
Web Site Developer
•
AIDA
Inter-American Association for Environmental Defence
Sole developer of a web site for the non-profit. Initially included hundreds of pages of content, but now is migrated to a custom, bi-lingual content management system. Site has instigated social change throughout the Americas.
Tools:
Apache,
BBEdit,
Eclipse,
FTP,
MacroMedia Fireworks,
MySQLPlatforms, Technologies & Protocols:
Unix
October - November 2002
User Interface Consultant, M&R
•
Navis LLC
Built prototype of new product to improve product design and work out ambiguities in the specifications. Worked with product managers, designers and graphic artist to create frameworks for current and future applications.
Tools:
BBEdit,
CVS,
MacroMedia FireworksPlatforms, Technologies & Protocols:
MacOS X,
Unix
2001-present
Web Project Management Consultant
•
IDEX
International Development Exchange is a non-profit partnering with small, local, non-profits around the world to facilitate grass-roots development.
Provided project management consulting throughout the web site production, and then became the "web guy." Created a user-friendly web content management system. Site now helps bring in thousands of dollars in donations.
Tools:
Apache,
BBEdit,
Eclipse,
FTP,
MacroMedia Fireworks,
MySQLPlatforms, Technologies & Protocols:
Unix
2001-2002
Programming Consultant
•
Liquid Audio
Developed from the ground up a flexible, usable "Music Organizer" component for a secure digital music player.
Tools:
Metrowerks CodeWarrior,
Perforce,
PowerPlant,
source code controlPlatforms, Technologies & Protocols:
MacOS,
SDKs
2000
Database Consultant
•
Rosenberg for Congress
Database design and implementation for a campaign donation tracking system, used throughout a campaign for U.S. Congress.
Tools:
FileMaker Pro,
source code control
1999
Database Consultant
•
Site of Care Systems
Database design and implementation of a bug-tracking system for a medical software developer.
Tools:
FileMaker Pro
2000-2002
Open Source Developer
•
MacCVS Pro
Added AppleScript scripting capabilities to MacCVS Pro. Designed and implemented an enhanced "history" view, which provides an easy way to explore the history of a file, its tags and branches.
Tools:
CVS,
Metrowerks CodeWarrior,
source code controlPlatforms, Technologies & Protocols:
MacOS X
February 2002 - October 2002
Version Control Consultant
•
Navis LLC
Facilitated migration of an Oracle-forms based product from an un-versioned development process to a scheduled, versioned release process. Performed data gathering through extensive interviews. Recommended technical direction and best practices. Created all necessary technical tools and materials. Trained all stakeholders. Integrated in-house change management system with CVS, providing accurate mapping of code changes to bugs and enhancements. Designed a CVS front-end system. Integrated CVS with an in-house bug tracking system.
Tools:
CVS,
Doxygen,
source code controlPlatforms, Technologies & Protocols:
JDBC
January - October 2001
Development Tools Consultant
•
Navis LLC
CVS Conversion. Convert large codebase (1000 files) with dozens of active versions from MPW Projector to CVS source code control.
Created reliable and easy-to-use build system for a complex, cross-platform product. Facilitate conversion of large codebase from Object Pascal to C++. Provided coding style guidelines to faciliate C++ migration.
Tools:
CVS,
Doxygen,
Metrowerks CodeWarrior,
source code controlPlatforms, Technologies & Protocols:
DOS,
MacOS X,
Microsoft Windows
2001 - 2002
City College of San Francisco
•
Instructor of web technologies
Taught CIS 135 series, which includes in-depth HTML, XHTML, and CSS; covered briefly Javascript, Java applets, CGI, PERL, XML, PHP, ASP, security and legal issues. Prepared course outline and homework assignments and delivered lectures. Graded student work.
Tools:
MySQLPlatforms, Technologies & Protocols:
Apache,
CGI,
DOS,
IIS,
ODBC,
TCP/IP,
Unix
6/1992 - 2/1999
Navis LLC
•
Senior Software Engineer and Software Development Manager
The leading supplier of software solutions for container terminals, shipping ports and lines, and distribution centers.
I helped Navis Corporation grow from just a few clients when I joined (employee number eleven) to the world-wide market leader. I focused on the SPARCS product, a real-time, decision-support, client/server system that manages over 100 containership terminals around the world. I served many varied roles (often simultaneously) while at Navis.
Tools:
Eudora Pro,
FileMaker Pro,
MPW,
MacApp,
Metrowerks CodeWarrior,
Projector,
source code controlPlatforms, Technologies & Protocols:
MacOS,
Microsoft Windows,
SDKs,
TCP/IPSoftware Development Manager (shared)
I built the development team, helped set the strategic direction of the company, and managed 4-10 major projects each year (and countless minor projects). I advocated for, and helped institute strategic planning, source code control, a coding style guide, task tracking and scheduling systems. Coordinated weekly technical meetings, project plans and roadmap.
Senior Software Engineer
Designed, wrote, installed, maintained, and supported two of the software products with a team of five to ten engineers. I created several key features of the product. I performed successful on-site installations and upgrades around the world. With team members, ported from 68k to PPC (MacOS), and later to WindowsNT. I solved y2k problems.
Tools Manager
I managed a source code system that supported over a hundred releases a year, with people working worldwide. I created a build system and trained a non-technical staff to use it while travelling.
QA Manager
I created a QA department and established a bug tracking and release process.
3/1992 - 1/1993
Self-employed
•
Independent ContractorFree-lance Technical Writer
•
Software Ventures Corporation (SVC)
Wrote 80-page user's manual on TCP/IP.
Tools:
Microsoft Word
Software Developer
•
Software Ventures Corporation (SVC)
Developed installation tools.
Tools:
MPWPlatforms, Technologies & Protocols:
TCP/IP
1/1990 - 1/1992
Farallon
Netopia
•
Senior Software Engineer Team Leader
Farallon Computing was a leading supplier of MacOS software and hardware.
Led a six-engineer team in the creation of the top-selling SoundEdit Pro / SoundEdit 16 (MacroMedia). To improve software quality, I founded (with three co-workers) the User Interface Task Force, which began user testing company-wide.
Tools:
Apple Projector,
MPW,
MacAppPlatforms, Technologies & Protocols:
MacOS,
SDKs
8/1988 - 12/1989
Software Publishing Corporation
•
Software Engineer
Software Publishing Corporation is a leading supplier of commercial PC software.
Designed and coded three cross-platform projects: a high-end word processor, a database and a presentation graphics product (Harvard Graphics). I analysed and recommended potential product acquisitions. I advocated quality, initiated internal documentation requirements and set programming style guidelines.
Tools:
MPW,
Symantec compilersPlatforms, Technologies & Protocols:
DOS,
MacOS,
Microsoft Windows
7/1986 - 9/1986, 7/1987 - 8/1988
Mansfield Systems, Inc.
• Software Engineer
As employee number four at this start-up company, I created a technical desktop publishing application for MacOS. I started as a summer intern and grew to a primary developer of the word processor.
Tools:
Lightspeed C compilerPlatforms, Technologies & Protocols:
MacOS
9/1985 - 6/1987
University of Oregon Computing Center
•
Student Programmer
The Computing Center provides computer services to the campus community.
I administrated, installed, and maintained labs serving 800 students per term. I maintained libraries and organized electronic conferences, planned and taught classes, solved problems, tutored students and sold computers.
Platforms, Technologies & Protocols:
DOS,
MacOS
Summer 1985
Applied Navigational Devices
• Programmer
Supplies hardware for mapping underground oil exploration sites.
Maintained quality assurance software.
Platforms, Technologies & Protocols:
DOS
1984 - 1985
University of Oregon Institute of Molecular Biology
• Programmer
Wrote plotting and spectrometer data-acquisition programs.
Platforms, Technologies & Protocols:
DOS
1981 - 1983
Quality Educational Designs
• Programmer
Ported more than 50 small educational programs from the Apple II to the Commodore PET. These programs sold successfully for years on the Q.E.D. label.
Education
University of Oregon
B.A. in Computer Science, 1987
Dean's List, Phi Beta Kappa, Presidential Scholar, Honors College, Student Senator
UC Berkeley Extension
Technical Marketing
Community
Streetside Stories
President and Member of Board of Directors
2000 - 2005
Streetside Stories builds literacy, critical thinking, and community among middle school students through volunteer-led storytelling literacy arts programs in Bay Area schools. Initiated and oversaw transition of board to a committee structure. Hired and managed Executive Director.