About Peter

Capable, Organized, & Motivated

Download CV:

I am a Technical Lead with a Master of Human-Computer Interaction degree, so that I can design a system from the inside and out, build it myself if I have to, and support a team so I don't. My experience is mainly with Java, both web applications with JSF, Spring, Hibernate, etc. and desktop software with Eclipse Rich Client Platform and SWT. I've also built apps for the command line and mobile platforms, and I've used everything from C to Lisp to VB.NET to PHP to Ruby.

I aspire to be knowledgeable about all tools and techniques that can help me produce awesome software, whether it be project management methods, libraries and frameworks, or esoteric server configuration voodoo. Build process issues? Database performance needs tuning? Web security config all goosed up? I can help you. Versatility is very handy, and I work to earn my reputation for being the best obscure-problem-solver on any given team.

In my most recent position at IBM, I helped bring a web-based enterprise software product to a global market, including new feature work in Java, Groovy, and JavaScript; training up new developers and managing a few old hands; and working closely with major customers to adapt the product to market and assist with deployment. Before that, I managed a large-scale content management system in Java (Adobe CQ), a lightweight eCommerce solution (KonaKart), app development for iPhone and Android, testing with rspec and watir, and all of the Apache HTTP config, system hardening, regulatory compliance, and system maintenance tasks that go with them.

I've been breaking computers (and fixing them again!) since I got my hands on my dad's C64, and I've managed to destroy (I mean repair!) every version of Windows from 3.11 to 7, every Mac OS from System 6 to 10.11, and a handful of versions of Linux, BSD, and Solaris. I wrote code for Palm OS, and I even ran a web server on an eMate 300 for a while.

Professional Accomplishments

Major technical and design contributions to multiple software projects; academic research in cognitive psychology.

Software Development

IBM UrbanCode Release

IBM UrbanCode Release is a collaborative release management tool that helps you handle the growing number and complexity of releases. I was the technical team leader, responsible for development of several major features, including the integration REST API with fluent Java/Groovy client.

www.rand.org

RAND.org is the primary publishing platform for RAND Corporation's wide range of research and policy analysis. I was the primary technical maintainer of the Adobe CQ CMS and leader of the development team that built major customizations and new features, including a content index based on a complex topic taxonomy, an ecommerce platform for research documents, and a new corporate blog.

RAND Corporation App

RAND Corporation's custom iPhone app provides access to RAND's extensive library of research, plus researcher contacts and commentary in a convenient mobile package. I was the technical team lead for the project and contributed to building the web-based backend services.

UPitt – Muscular Epidemiological Database

This product was the result of a consulting engagement with a research group at the University of Pittsburgh. The MED provides a data input and analysis platform for research investigating physical capabilities and stresses for intense occupations in athletics and the military.

eLIMS (Laboratory Information Management System)

Custom integrated business system for commercial laboratory workflow management. I was responsible for the interaction design, software architecture, and core implementation of the Eclipse-based desktop rich client application. I also contributed to the Spring-based server application (with a Tomcat + MS SQL Server 2005 stack) and its Ant and AndroMDA model-driven build environment. This system was sold as a commercial product to several high-profile US biotech companies, transforming an internal cost center into a revenue driver.

Business Transaction Server

Custom integrated business system for B2B commerce, including core accounting and inventory management modules and a pluggable framework for additional modules. This was another Eclipse-based desktop rich client application with a J2EE server component (with a Spring + JBoss + MySQL stack) and an Ant-based build environment.

CogTool

Allows software designers to predict expert performance on UI tasks via KLM-GOMS analysis -- includes a storyboarding tool, task demonstration, and results management. I participated in the full process through conception, design, testing, and implemention in Java/SWT. The first beta version was released on Oct 17, 2005 after approximately 10 months of development, and work is ongoing since I left the team in December 2005.

MetroViz

Visualization tool for the City of Pittsburgh CitiStat program -- allows city budget analysts to rapidly browse department performance data in the form of tables, charts, and graphs. This was my capstone project for the CMU Master of Human-Computer Interaction degree. I was technical lead on a five-person interdisciplinary team that built the project from vision to working VB.NET tool.

DrJava

Pedagogical Java development environment for introductory-level programming students -- provides a dynamic execution facility to encourage experimentation and rapid testing, plus traditional IDE features. I led a small group of student-developers on Javadoc and compiler features and platform integration.

Design

Müz

Conceptual design for a mood-driven music player for the homes of young moderns. This was the final project in the Interface and Interaction Design course at CMU. The complete process is documented at the link above, including early concept research, a focus-group session to refine the solution for the needs of the target audience, a physical prototype, and a video sketch to showcase usage scenarios.

Low-Carb Life

Recipe website tailored to the needs of low-carb dieters, especially during the difficult early stages of lifestyle transition. This was another project from the CMU IID course. My contributions include the CSS-based layout of the final prototype (tailored for Apple's Safari browser).

Web Survey Toolbox

Library and tools for creating JSP-based web surveys -- includes a graphical survey editor and a survey admin webapp. I was part of a small team that designed the survey editor, and I personally wrote the first iteration of the online survey management add-on.

Research

Driver Interruptibility

I performed a review of the available psychological literature on interruption as part of a General Motors-funded project to predict the effects of interruption on drivers. Detailed notes are available.

Conference Presentations

John, B. E., Salvucci, D. D., Centgraf, P., & Prevas, K. (2004) Integrating models and tools in the context of driving and in-vehicle devices. Proceedings of the 6th International Conference on Cognitive Modeling. [Poster (3.8MB)]

Salvucci, D. D., John, B. E., Prevas, K., & Centgraf, P. (2004). Interfaces on the road: Rapid evaluation of in-vehicle devices. Paper presented at the Human-Computer Interaction Consortium 2004.

Fleetwood, M. D., Byrne, M. D., Centgraf, P., Dudziak, K., Lin, B., & Mogilev, D. (2002). An analysis of text-entry in Palm OS—Graffiti and the Virtual Keyboard. Proceedings of the Human Factors and Ergonomics Society 46th Annual Meeting.

Work Experience

Senior Application Developer / Technical Lead

1/2013 - 6/2015
IBM / UrbanCode
Chapel Hill, NC

Technical team leader for IBM UrbanCode Release from initial commercial deployments as UrbanCode Release through IBM acquisition and worldwide distribution. Managed the work queue for the design and development team, developed key elements of the technical foundation, and oversaw technical advisory relationships with several major customers. Responsible for development of several major features, including integration REST API with fluent Java/Groovy client.

Senior Application Developer / Technical Lead

11/2010 – 1/2013
RAND Corporation
Pittsburgh, PA

Lead developer and primary support for a complex CMS-driven web presence with 80k+ pages and extensive automation. Coordinated a cross-functional team. Dramatically improved system uptime and attack resilience. Integrated a new eCommerce solution and led the development of a new corporate blog and mobile apps for iPhone and Android.

Consultant

2/2010 – 11/2010
SDLC Partners, LLP
Pittsburgh, PA

Technical lead for engagements with diverse clients. Produced significant QA cost savings via IBM Rational Functional Tester, automated a research process via a new Java EE web app, and supported a commercial print pipeline using PHP.

Technical Lead

1/2008 – 2/2010
RJ Lee Group, Inc.
Pittsburgh, PA

Lead developer and Scrum Master roles for an agile team of 7 developers and testers with multiple concurrent projects for internal and external customers. Team achieved 18 major releases in 24 months of innovative laboratory automation tools.

Software Designer / Engineer

1/2007 – 12/2007
RJ Lee Group, Inc.
Pittsburgh, PA

Development of a custom, enterprise-wide Laboratory Information Management System for internal use and commercial sale. Lead visual and interaction designer as well as system architect and lead developer.

Java Developer

1/2006 – 11/2006
Management Services, Payroll and Insurance Group, Inc.
Mason, OH

Development of an innovative Eclipse Rich Client Platform (RCP)-based client for a custom n-tier J2EE ERP system using JBoss and Spring. Fulfilled multiple roles as user researcher, designer, architect, and developer.

Research Programmer

8/2003 – 8/2005
Human-Computer Interaction Institute, Carnegie Mellon University
Pittsburgh, PA

Development of applications, tools, and user documentation in Java, Common Lisp, and C for Palm OS. Cognitive modeling research in the area of driver distraction, including a publicly available literature review.

Temp. Research Programmer

5/2003 – 8/2003
Computer Science Department, Rice University
Houston, TX

Full-time development of the DrJava pedagogical development environment. Multi-platform user interface implementation, including interface improvements based on feedback from the Rice TeachJava workshop.

Software Engineering Intern

5/2000 - 5/2003
Direct Supply, Inc.
Milwaukee, WI

Full-time summer position with year-round projects. Interaction design and software construction roles for data access applications and frameworks in MS-SQL, VB6, C++/WTL, and C#.

Education

Master of Human-Computer Interaction

8/2003 – 12/2005
Carnegie Mellon University
Pittsburgh, PA
GPA: 3.50

2 years of practical experience with interdisciplinary teams working on HCI design projects:

  • full development of a data mining and visualization tool for the City of Pittsburgh CitiStat program
  • conceptual design of a web community to facilitate favor exchange across social networks in families
  • interaction design of a mobile search application, a mood-driven music player, and a food website

B.S. in Computer Science & B.A. in Psychology

8/1999 - 5/2003
Rice University
Houston, TX
GPA: 3.25 in Computer Science, 3.31 in Psychology, and 3.20 overall.

Dual majors with a focus in Human-Computer Interaction. Course experience includes:

  • software design and implementation in Java (including generics), C, and Scheme
  • agile development techniques such as UML data modeling, unit testing, and pair programming
  • design, execution, and data analysis of original studies in cognitive psychology