Keith D Gregory


Senior Technologist: over 30 years of industry experience, with a wide range of languages, platforms, and applications.


Jan 2017 – Mar 2018


Philadelphia, PA

Lead Software Engineer

Member of the ClubOS development team, working on the company's health club CRM product. Primarily responsible for stability and scaling.

  • Designed and built a reporting pipeline, responding to changes in the main OLTP database by updating denormalized reporting tables.
  • Extended the reporting pipeline into a general Unified Log implementation that could be used to drive multiple asynchronous services (eg: populating the user search database).
  • Introduced the use of generated CloudFormation templates for application deployment, to ensure consistency and minimize configuration.
  • Orchestrated the migration of ClubOS infrastructure from EC2-Classic to EC2-VPC. Involved changing the deployments for 100+ EC2 instances and multiple large RDS database servers, while minimizing downtime.

Java, SQL (MySQL), Amazon Web Services

Feb 2015 – Sep 2016


Philadelphia, PA

Senior Software Engineer

Member of RJMetrics' development team, working on the company's data management products.

  • Led the design and implementation of the Pipeline back-end, a service for accepting data from large numbers of clients and batching that data into upserts to a client-managed Redshift database. Evaluated technologies and focused the team's efforts (along with writing a lot of code), leading to the product's three-month incept-to-available timeline.
  • Redshift query optimization and planning, to support multiple tenants in the company's CloudBI product.

Clojure, SQL (Postgres), Apache Kafka, Amazon Redshift

Jan 2012 – Feb 2015

Chariot Solutions

Fort Washington PA


Member of Chariot's consulting staff, working with client companies to design and build appropriate technology solutions to their business problems.

  • A web-based system for managing new client relationships for a multinational law firm. Built using Java, Spring, JQuery, and AngularJS.
  • Management systems for the cable industry. Built using Scala, Spring, and OSGi.
  • Back-end for a mobile banking application. Built using Node.js, Rails, with relational (Postgres) and no-SQL (MongoDB) databases.

Java, JavaScript, Ruby, Scala, Node.JS, Rails, Spring, AngularJS, JQuery, JQuery-UI

Jul 2010 – Dec 2011

Navteq Traffic Technologies Group

Malvern PA

Senior Architect

Member of the architecture team, providing design guidance and implementation assistance to the teams developing Navteq's real-time traffic products.

  • Designed and built the map compiler framework, which transforms Navteq's base map data into application-specific artifacts. Challenges included large volume of data (over 100MM road segments), ability to migrate to different source databases, performance of source database, and need to regenerate artifacts using varying configurations. Solution used Ant for flexible build scripts, compressed XML for “base” map extract, and a compact in-memory representation of map data.
  • Introduced use of location-aware memory-mapped binary artifacts for application data. These artifacts provide high-speed access with reduced impact to the Java heap, and support elastic scalability using hardware with limited memory.
  • Initial design/prototype of the Dempsy elastic message processing framework. Based on the “actors” model, Dempsy was created to support (soft) real-time processing of traffic data based on large volumes of consumer GPS data.

Java, memory-mapped files, Hadoop, HBase, S4

Jul 2009 – Jun 2010


Developed a product list service for eCommerce sites, allowing multiple users to share a single list for "collaborative shopping." A unique feature was its use of time-limited encrypted tokens containing all information needed to access the list.

Enhanced the Practical XML open-source library, adding conversions between XML, JSON, and bean-style Java classes.

Developed a queue benchmark for the Navteq Traffic Technology Group. This benchmark was designed to support multiple queue providers from with a core load generator that could be easily configured to test different consumer/producer/broker scenarios. To run the benchmarks, I used ad hoc clusters of Amazon EC2 instances, which corresponded with Navteq's heavily-virtualized data centers.

Java, HTML, JavaScript, JSON, XML, JMS, AMQP, HornetQ, Qpid, RabbitMQ

Mar 2007 – Jul 2009

GSI Commerce

King of Prussia PA

Solutions Architect

Initially hired as Senior Software Engineer/Tech Lead, responsible for design and implementation of enhancements to GSI's eCommerce platform, as well as mentoring junior staff and introducing process improvements. Participated in all phases of development life cycle. Maintained a high degree of client interaction, a high level of quality, and managed to meet or beat perpetually short deadlines.

Promoted to Solutions Architect, reporting directly to CTO. Responsible for working with clients to identify needs, along with initial design and prototyping of platform enhancements.

  • Technical lead for over 20 projects in 18 months, including two store launches; assisted numerous other projects. Clients included Aéropostale, Bath and Body Works, Levi's, and Zales Jewelers.
  • Developed an integration package for the Coremetrics web analytics package, consisting of a JSP taglib to generate data combined with a client-side JavaScript integration library to package that data in the format desired by particular clients.
  • Introduced development process improvements, including FindBugs for static analysis, Cactus for in-container testing, and Rhino for build-time JavaScript testing.

Java, JavaScript, JSP, JSP Taglib, Weblogic, Bazaarvoice, Coremetrics, Omniture SiteCatalyst

Jan 1984 – Mar 2007

Health Market Science, King of Prussia, PA; Senior Softwre Developer

Gestalt LLC, Camden NJ (contract)

Wellfound Technology Inc, Marietta GA; Senior Architect/Consultant

TIBCO Software Inc, InConcert division, Cambridge MA; Senior Architect

Mercator Software, Burlington MA (contract)

Parametric Technology Corp, Waltham MA (contract)

InConcert Inc, Cambridge MA (contract)

Fidelity Investments, Boston MA; Technical Advisor, Manager of Ad Hoc Programming

Symmetrix, Lexington MA; Associate

General Electric Aircraft Engines, Lynn MA (contract)

BBN Communications Corp, Cambridge MA (contract)

Strawberry Software, Watertown MA; Software Engineer

Keithley Instruments Data Acquisition & Control, Boston MA; Software Engineer

THINK Technologies, Lexington MA; Software Engineer


Harvard University

ALB cum laude, 2002; concentration in History

Skills Summary

  • Java
  • JavaScript
  • SQL
  • C
  • Clojure
  • Ruby
  • MySQL
  • Postgres
  • Redshift
  • Oracle
  • Eclipse
  • Ant
  • Maven
  • Git
  • Subversion
  • Spring
  • Rails
  • AngularJS
  • JQuery / JQuery UI

Annotated List of Open-Source Projects

KDG Commons
Yet another library of utility classes, in the mold of Apache Commons. Created because I found myself rewriting the same classes over and over, and the adoption delay for submissions to Apache Commons is quite long (although one of my classes did end up there).
Practical XML
Utility classes to enhance Java's default XML library. In addition to simple utility methods like “add a child and inherit parent's namespace,” provides a nice XPath wrapper and a library to convert between XML and a variety of other formats.
Extensions to Apache Commons BCEL. At the present time, this is focused on supporting annotations.
A tool for examining Java Web Applications to discover their URLs. Supports Spring 2, Spring 3 (annotation-driven), and basic servlets and JSPs.
A set of tools for examining and cleaning Maven POM files. See also the series of blog posts that I wrote in July and August of 2012 about was to simplify Maven projects.
Appenders for Log4J that support writing to multiple AWS destinations. Provides an alternative to Logstash or the Amazon logging agents, particularly when feeding the logs into ElasticSearch.


Author: Programming with Motif; Springer-Verlag, 1992

Co-author: Complete Turbo-C; Scott, Foresman, 1989

Presenter, Philadelphia Java Users Group:

DZone “Most Valuable Blogger”

Copyright Keith D Gregory, all rights reserved

Third-party recruiters may not republish or redistribute this resume in any form without express written consent.