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.
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.
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.
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'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.
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.
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.
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.
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.
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).
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.
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.
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 OSGraffiti and the Virtual Keyboard. Proceedings of the Human Factors and Ergonomics Society 46th Annual Meeting.
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
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.
2/2010 – 11/2010
SDLC Partners, LLP
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.
1/2008 – 2/2010
RJ Lee Group, Inc.
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.
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.
1/2006 – 11/2006
Management Services, Payroll and Insurance Group, Inc.
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.
8/2003 – 8/2005
Human-Computer Interaction Institute, Carnegie Mellon University
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
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.
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#.
Master of Human-Computer Interaction
8/2003 – 12/2005
Carnegie Mellon University
2 years of practical experience with interdisciplinary teams working on HCI design projects:
B.S. in Computer Science & B.A. in Psychology
8/1999 - 5/2003
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: