Peter Cowan · Software Developer
Summary
I am currently self-employed, working on small projects that satisfy my curiosity. Until recently I was a lead developer at JustGiving, a global, London based company focused on fundraising tools for nonprofits. After 2 years of frequent international travel, and then getting acquired I decided to move on.
I have 15 plus years of experience developing web based applications in Java and Javascript. My main responsibilities have been writing reusable Java libraries to support our web app, web
services, command line processes. Recently I have focused more on writing React/Redux/Node.js front end features.
Objective
I am looking for a position working within the web development stack in or around downtown Portland. I would prefer an agile oriented development environment,
but the aspects I care about most are continuous integration, smaller teams, and short release cycles.
Experience
2016 - 2018
London, UK (Remote)
Senior Developer
- Rebuilt core site features from scratch using React/Redux as an isomorphic (universal) Javascript app using Node.js.
- Developed a toolkit of shared components including everything from CSS styles (using Sass) to React components, and Redux middleware.
- Maintained legacy Java application.
2000 - 2016
San Francisco, CA
Lead Developer
- Rebuilt the core features of the main web application to use React/Redux/Node.js with a JAX-RS backend.
- Converted a site feature from using Servlets/JSPs to using Backbone.js with a JAX-RS backend.
- Updated the persistence layer of our web app from a Castor to standards compliant JPA, using Hibernate. This was a long term fork of the codebase, and involved much query optimization and improvements to the model layer.
- Designed and developed in house stored value and recurring billing systems with vendor support.
- Created a RESTful interface for in house use, using JAX-RS with Jersey, for search searching ~1.8 million
nonprofit records.
- Abstracting out a common interface for serveral different 3rd party payment services, then added a radically simplified
Gateway interface for general use.
- Created a SOAP client with Apache Axis for a Rewards Points Redemption service in partnership with a major credit card company.
- Organized and managed a version control and release work flow using Subversion.
- Develop, maintain and refactor applications in Java, JSP and client side javascript, CSS and HTML.
Build scripts in Ant, command line processes in bash, and some legacy perl.
- Database schema design, and normalization with Postgresql.
- Refactored a single servlet webapp into a framework based on the Model-View-Controller pattern.
- 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
eCarbonated
Oakland, CA
Software Consultant
- Modified a custom CMS written for a specific client in PHP for more general use.
2001
Community Marketing
San Francisco, CA
Software Consultant
- Built an ad impression and click trough tracking system for an ASP/Visual Basic web app called gayjet.com
(now TAG Approved).
2000
GotPing
Software Consultant
Lead Developer
- Developed mostly static web applications for big companies using javascript, DHTML, and perl.
Other Projects
- Android app to track location in real time and check-in to places.
- Android app allowing a user to create ringtones using the Text-to-Speech library.
- Java in Jails; a simplified library for creating, displaying and validating
forms bound to Objects, similar to how they are handled in ruby on rails.
Skills
- 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
- Client side development, and some design with HTML, CSS, Javascript, AJAX, Jquery, JSON (Gson, Jackson on the back end)
- 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,
Education
1994 - 1995
University of California Santa Cruz
Santa Cruz, CA
Studied economics and linguistics
1992-94, 2000-2001
Cabrillo College
Aptos, CA
Studied philosophy, computer science and math