Ben Northrop
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.
ArchitectureJavaMicroservicesSpring BootRabbitMQ
Pittsburgh, PA
26 years professional experience
Timeline
1995
2002
2009
2016
Present
Work Experience
Principal Technical Consultant and Owner
Oct 2018 - Present
Full-stack Development
-
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
Architecture
-
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
DevOps
-
Built out the backend foundation and devops pipeline for a commercial real estate application, including security, logging, persistance, and business logic. NodeJS ExpressJS Javascript OAuth2
-
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
Summa
Convenience Store Client
-
Led a development team of 7 to build from scratch the instore ordering platform which is used in 500+ stores and handles over 250k orders per day. Java JAXRS Spring RabbitMQ Javascript Angular SCSS Event Driven
-
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
-
Helped in the design and implementation of a new, responsive, singlepage web app for online ordering; ported over components from the instore menu framework to ensure reuse and maintainability. Java JAXRS Spring Boot MyBatis Javascript Angular SCSS Responsive
-
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
Financial Client
-
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
Telecom Client
-
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
Consulting Company
Logistics Client
-
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
Media Client
-
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
Ciber
-
Implemented key business components within the EJB specification for an internet application used by Railroad operators for placing railcar orders Java EJB DB2 WebSphere
-
Built a JSP Custom Tag library used in the presentation tier to encapsalate and reuse complicated client-side logic for validation, filtering, and complex input fields. Java JSP Javascript
Programmer
Sep 1999 - May 2001
Adclip Networks
-
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
Education
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
Java
Awards and Accolades
Contractor VIP Award - Retail Client
2017
Side Projects
TechRez
2021
Created a web app for hosting interactive resumes geared for the tech industry.
Spring Boot Java React Javascript JQuery Elastic Beanstalk CloudWatch S3 IAM RDS MySQL
Cruft4J
2013
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.
Java Maven
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.
Java JavaCC
CodersCV
2008
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.
Java XSL
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.
Java Webwork Hibernate MySQL Javascript
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.
Java Struts Hibernate JSP Javascript SQL
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.
PHP MySQL
BUMP
2001
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.
Filemaker Pro
Gym Database
1997
Wrote a database management system for a local rock climbing gym to manage daily passes, memberships, and other purchases.
Filemaker Pro
Skills
Backend
Spring BootHibernateMyBatisNodeJSExpressJSRabbitMQSpring
Frontend
ReactAngularSCSSJQueryGWT
Languages
JavaGroovyJavascriptPythonPHPSQL
Devops
MavenGitGitlab CIDockerKubernetesOpenShiftJenkinsSplunkElastic SearchAnt
Data Stores
OracleSQL ServerMongoDBMySQLIngres
Tools and Libraries
MahoutShedlockGrinderSeleniumCucumberJUnitJavaCC
Patterns and Specs
OAuth2ResponsiveMicroservicesEvent DrivenReactive
AWS
Elastic BeanstalkS3CloudWatchLamdaEC2RDS