Peter Cowan · Software Developer
I am the lead developer at a small nonprofit dedicated to using the Internet to generate new charitable giving. I have 10 years of experience
development processes, interacting with clients to define project requirements and collaborating with the business team on long term goals. In
general, I consider myself technologically agnostic; I am most comfortable in Java--and enjoy experimenting with Ruby, and Scala among others--but
ultimately, I want to use the right tool for the right job, whatever it may be.
I am looking for a position working within the web development stack in or around downtown Portland. While would I prefer a polyglot environment,
and wearing multiple hats over specialization, my main concern is working in a creative environment with a great team of peers who respect each other,
get along well and push each other to learn and grow. I would prefer an agile oriented development environment, but the aspects I care about most are
continuous integration, smaller teams, and short release cycles.
2000 - present
San Francisco, CA
- Designed and developed stored value and recurring billing systems, migrating existing data from a 3rd party service,
adding support for vendors so we could market the services ourselves. The projects paid for themselves within the year via the
reduction in fees, no longer dealing with 3rd party integration issues, and increased vendor revenue.
- Created a RESTful interface for in house use, using JAX-RS with Jersey, for search searching ~1.8 million
nonprofit records (from Exempt Organizations
Master File Data). We then geocoded the data and used it to create a Google Map mash-up for local search.
- Merged two diverging forks of a code base, each using a different 3rd party payment service, by abstracting out a common
interface. I then added a radically simplified Gateway interface for
general use, and developed and tested both implementations.
- Created a SOAP client with Apache Axis for a Rewards Points Redemption service in partnership with a major credit card company,
integrating it into the above mentioned payment interface. The redemption feature went on to bring in over $10 million in charitable
donations, and counting
- Organized a version control and release work flow using Subversion. I managed the bulk of the branching and merging while working
out the kinks of the process and training my coworkers.
Database schema design, and normalization with Postgresql. Build scripts in Ant, command line processes in bash, and some
- Refactored a single servlet webapp into a flexible, and highly configurable framework based on the
- Worked closely with clients, ranging from tiny nonprofits to large international companies, to add features to and customize
existing products to meet their needs.
2005 - 2006
- Modified a custom CMS written for a specific client in PHP for more general use. Mysql database maintenance and schema design.
San Francisco, CA
- Built an ad impression and click trough tracking system for an ASP/Visual Basic web app called gayjet.com
(now TAG Approved). Schema design and database maintenance with SQL Server.
- Developed a search index and interface for a small, curated set of nonprofits.
- Android app to track location in real time which integrated with (the now defunct) Shizzow, places and check-in API
for social features.
- Android app allowing a user to create ringtones using the Text-to-Speech library, and share them with friends.
- Java in Jails; a java library for creating, displaying and validating
forms similar to how they are handled in ruby on rails. The main feature of this library is that it is configuration free. It uses
reflection to bind a class's existing JSR-303 Bean Validation Annotations to a Jquery validation library on the client side.
It provides a ParamMapper class that can recursively convert from request parameters to Objects (and vice versa).
- Java development using J2SE, J2EE, Servlets, JSP, JSTL plus custom tag development, JDBC, JPA, JUnit, Hibernate, JSR 303, Threads, Reflection, Generics
- XML using JAXB, XStream, XPath, Sax. DOM, Castor
- Web Service client and server development using SOAP, Axis, WSDLs, REST with JAX-RS
- Server configuration Tomcat, Apache, Jersey
- Strong understanding of object-oriented design principles and patterns, refactoring, test driven development, and continuous integration.
- OS experience: Linux (prefer debian), Mac OSX, Windows
- Tools: git, svn, Maven, Ant, IntelliJ, Eclipse, vim
- Databases : Postgresql, mysql, Sql Server. Experience normalizing database design, and performance tuning.
- Payment systems: Cybersource, Verisign, PayPal.
- Other languages and frameworks used for small tasks, and side projects: bash, Android, Ruby, Scala
- Past professional experience with perl, php, visual basic/vb script,
1994 - 1995
University of California Santa Cruz
Santa Cruz, CA
Studied economics and linguistics
Studied philosophy, computer science and math