Software Architect and Full Stack Developer
- 20 years of experience in designing and developing software applications on over 25 different engagements, focused primarily on enterprisescale Java systems and components.
- Proficient with concepts and techniques of BDD, TDD, OOA, OOD, AOP, Design Patterns, and agile development processes like XP, Scrum, Kanban, and Lean.
- Dedicated to producing quality work; implemented two open source tools for analyzing and reporting on internal code quality.
- Enjoys challenges, thrives in teams, hard worker, excellent communicator, and strong writing skills.
BS in Information and Decision Systems
External Web App
Euclidean Geometry Theorem Checker
Education Web App
MS in Philosophy: Logic, Computation and Methodology
Principal Technical Consultant and Owner
Internal Web App
Distinguished Technical Consultant
Principal Technical Consultant and Owner Oct 2018 - Present
Designed and implemented critical menu configuration structures and logic as well as front-end web views for the rewrite of an online ordering system. React SCSS Java Spring Boot MyBatis Groovy SQL Server
Investigated a business critical legacy component with a history of reliability and quality concerns and then planned for and led an incremental rewrite based on the Strangler design pattern. Architecture Java Microservices REST Spring Boot MyBatis SQL Server RabbitMQ Shedlock SQL
Integrated a proprietary ordering system for a food service client with over 500 locations with the Uber Eats API, designing for maximum resilience and up-time. Java Microservices Spring Boot REST Splunk
Embedded with an architecture team for a large health insurance provider, helping to investigate and prototype key architectural and devops improvements. Architecture OAuth2 Git Docker
Led a team of four to build a daily sweepstakes content for an online ordering platform, optimizing for security and monitorability to prevent fraud. Java Microservices Spring Boot REST Splunk
Performed architecture for a variety of small to mid-size companies with varying goals, from rewrite-or-refactor to MVP feasibility. Architecture
Worked with a higher-education client to optimize their DevOps pipeline, building custom Git hooks, modifying build scripts, and tweaking application code. Python Git Gitlab CI Maven Java Jenkins
Assisted with strategy, prototyping, and rollout of an effort to containerize an ecosystem of 30+ services formerly hosted on virtual machines. OpenShift Microservices
Principal Architect Oct 2017 - Oct 2018
Financial Services Company
Architected, designed, and led the development of a proprietary ad hoc reporting tool which allowed power users to create and curate data sets and publish them out to end users. Java Spring Boot Angular SCSS MongoDB Docker Elastic Search
Provided guidance to teams within Corporate Treasury in the areas of DevOps, development best practices, performance testing and optimization, and process. Architecture
Distinguished Technical Consultant Jun 2007 - Oct 2017
Convenience Store Client
Designed and implemented a flexible menu authoring framework that allows Sheetz to customize food and beverage offerings, promotions, crosssells, and upsells based on location, time of day, weather, order history, and other contextual factors. Java
Architected a data lake to capture online and instore order data, and from which key business insights were mined to improve customer experience and crosssell conversions. RabbitMQ Splunk
Led the discovery and implementation of a major release to deliver personalization features to the instore ordering experience, allowing customers to log in, view order history, mark “favorite” items, and see recommendations. Architecture Java Spring Boot Microservices
Built a recommendation engine to deliver personalized recommendations to customers, using a itembased collaborative filtering algorithm. Java Mahout
Implemented a voicebased user interface for accepting orders using Amazon's Alexa platform. Java Alexa EC2 Lamda OAuth
Higher Education Client
Led a development team of 9 to modernize a proprietary Student Information System, a legacy application which is the backbone for all student related business processes including admission, registration, graduation, scheduling, and accounting. Java Spring MyBatis Maven Ingres Oracle
Designed a frontend framework based on the MVP pattern on top of which more than 100 screens were written. GWT
Spearheaded an exploratory effort to analyze Carnegie Mellon’s unique and rich requirements for authorization, investigating different open source and proprietary products. Upon finding no suitable solutions, designed a custom, enterprisestrength authorization engine to manage both role based and attributebased access controls. Java Spring JavaCC MyBatis
Helped map out and then implement a strategy for automating testing at both a unit and integration level. Junit Groovy Spock Cucumber Gherkin Selenium
Implemented a Person Matching component used to prevent the duplicate entry of students, prospects, and applicants, and students for any of Carnegie Mellon’s campuses. Java Spring
Analyzed and then assisted in the optimization of the business critical, online student registration logic to ensure it met key performance and scalability demands. Java Grinder
Integrated Carnegie Mellon’s information systems with both internal and external systems, including health insurance, housing and dining, ID cards, and authentication. Spring REST CXF SAML
Implemented the business logic for registering and scheduling classes for students. Java
Led a team of 4 to modernize the Student Information Online application, a portal for students to view and manage their grades, schedule, accounts, contact, and health insurance information. Java GWT Spring MyBatis Ingres Maven
Conducted multiple rounds of usability tests to help understand the intentions and behavioral patterns of students when interacting with the student portal application. Usability Testing
Helped modernize the student billing and aging processes, including creating the first online bill for students. Java GWT Spring MyBatis Ingres
Worked along side a team of 5 to architect, design, and implement a greenfield Software as a Service (SaaS) product for the client built for universities to manage their payments to students and faculty. Helped deliver the system on time and under budget. Java Spring MyBatis SQL JSP
Created and configured a Spring Web Services module and created an endpoint that accepted messages about new client accounts opened by students. Java Spring JDOM
Designed and maintained the relational data model consisting of over 40 tables. Oracle
Created and configured the infrastructure for an automated unit and integration testing framework and helped maintain 100% pass rates throughout the course of the construction phase. Java JUnit DbUnit Spring
Led the design and development of a web-based system used to manage the process of customers opting out of license agreements with the client. Java JSP Struts Oracle EJB SQL
Implemented key enhancements to a proprietary workflow engine, allowing the client to track license requests from customers. Java JSP Struts Oracle SQL
Designed, garnered consensus on, and then implemented a key refactoring to an infrastructure piece responsible for managing configuration files. Java EJB JMS
Helped implement enhancements to the client's Online Application system to support a critical business goal of increased agility and responsiveness to customer requests. Java EJB Struts JSP SQL
Senior Consultant Jan 2005 - Jul 2007
Led the analysis, design, and development of the Delivery Locations feature for Vocollect’s VoiceLink 3.0 product. Utilized the dependency injection design pattern to improve testability and extensibility of business logic, and used ORM techniques to achieve portability and better maintainability of database persistence code. Java Spring Hibernate WebWork Ajax SQL
Managed the implementation of the reporting module, which entailed integrating a proprietary reporting component and open-source reporting frameworks with the VoiceLink 3.0 system. Jasper Reports Spring Hibernate
Served as the lead consultant of 13, helping to coordinate tasks and manage knowledge.
Helped to coordinate, administer, and analyze a usability test of the VoiceLink 3.0 product and helped to pinpoint and then eliminate over two dozen critical usability issues. Usability Testing
Played a key role in an architecture assessment of MSA’s Gabriel product, a 5 million line ERP system for the Media industry. The assessment spanned functional, organizational, and technical domains to discover the extent to which each architectural element supported critical business goals.
Implemented a performance instrumentation solution utilizing Aspect Oriented Programming to achieve better maintainability and extensibility. AspectJ Ant Java
Analyzed and refactored a critical core component that was responsible for system-wide performance problems. Java Stored Procedures PL/SQL Java
Acted as a mentor to junior Java developers, performing code reviews, holding consistent brown-bag learning sessions, and offering general support and assistance.
Developed a tool used to visualize Ant target workflows for the purposes of understanding complex Java build scripts. Java Ant
Research Programmer Apr 2004 - Jan 2005
Carnegie Mellon University
Collaborated with Information Visualization specialists from the Human Computer Interaction Institute to design an effective interface for searching and navigating large, multi-faceted, hierarchical data sets. JSP Struts MySQL Java
Implemented a web-based portal and discussion engine used in Pittsburgh’s 2004 Deliberation Day. The portal was used to host and facilitate political conversations among citizen participants toward the goal of strengthening democratic discourse MySQL PHP Flash
Consultant Jun 2001 - May 2002
Implemented key business components within the EJB specification for an internet application used by Railroad operators for placing railcar orders Java EJB DB2 WebSphere
Programmer Sep 1999 - May 2001
Led the development effort for a web-based administration system used by online publishers and advertisers to configure and deploy digital coupons Java JSP Servlets XSL XSQL
Developed the beta version of AdClip’s first wireless product, the Wireless Wallet Perl WML XML
MS in Philosophy: Logic, Computation and Methodology Aug 2004 - May 2011
Thesis: Automated Diagrammatic Reasoning: A proofchecker for the language of E
Logic Game Theory Computability Theory Decision Theory Philosophy of Mind Data Structures
BS in Information and Decision Systems Aug 1995 - May 1999
3.67 QPA (4.00 scale)
Data Structures Algorithms Systems Design Database Theory Software Engineering Organizations Statistics Empirical Research Methods Policy Analysis SQL Java
Publications and Presentations
Trainings and Certifications
Sun Certified Programmer 2000
Awards and Accolades
Contractor VIP Award - Retail Client 2017
Created a web app for hosting interactive resumes geared for the tech industry.
Created a static source code analysis tool which reports on the maintainability (or "cruftiness") of your Java code. Whereas other tools generate an unwieldy list of maintainability violations from which it's difficult to know what to do, Cruft4J generates one score which is based on just two things: cyclomatic complexity and copy-paste.
Collaborating with Dr. Jeremy Avigad and Dr. John Mumma, I built an automated theorem checker for a formal system of Euclidean Geometry. A user enters facts about a diagram, and the tool generates a list of logical entailments - i.e. conclusions that could be deduced using pre-defined logical rules.
Created a better visualization of a developer's skills than the traditional resume, and captured 2,000+ sign-ups in 3 months
Java MyBatis Spring JSP
PMD Reports 2007
Built a wrapper around the popular open-source Java code analysis and bug detection tool, PMD. Whereas PMD generates and displays code quality statistics at a source code level, PMDReports persists and aggregates these statistics so that code quality can be viewed from a more macro, component level.
Internal Web App 2007
Rewrote an existing web application used to manage internal banking documents using Java-based technologies to keep consistent with IT standards. The site was used by 200+ users located in different FHLB branches around the country.
Custom CRM 2005
Designed and implemented a web-based system to help a local fire protection business track inventory and route technicians to customer sites. The system was intended to reduce operational costs and increase customer retention, thereby increasing revenue.
External Web App 2002
Created a basic web site for a local small business that distributes statistical reports on real estate transactions in Allegheny county. The site provides potential customers the ability to generate sample reports online, demonstrating the power of the RealSTATs data set.
PHP MySQL SQL
Education Web App 2002
Developed a very simple web site to showcase their distinguished faculty. The site consisted of two parts: the web site itself, containing instructional videos and teaching resources, and an administrative console where the web site content could be updated.
Created an intelligent MP3 player that learns your music preferences and then optimally plays songs based on your current mood and tastes using a basic statistical algorithm to select an optimal group of songs to play for you at that time.
Java JMF Swing
Gym Database 1998
Built a database for a local gymnastics gym to track their customers, inventory, and sales.
Gym Database 1997
Wrote a database management system for a local rock climbing gym to manage daily passes, memberships, and other purchases.
MavenGitGitlab CIDockerKubernetesOpenShiftJenkinsSplunkElastic SearchAnt
Tools and Libraries
Patterns and Specs