Keith D Gregory
Summary
Senior Architect: 28 years of industry experience, with a wide range of languages, platforms, and applications.
Focus on database and distributed applications.
Responsible for design/evolution of both green-field and mature products.
Hands-on member of implementation team.
Extensive client interaction; management experience.
Languages
- Java
- C
- SQL
- JavaScript/DHTML
Databases
- Oracle
- MySQL
- Sybase/MS-SQLServer
- Hypersonic/HSQLDB
Tools
- Eclipse
- NetBeans
- Ant
- Maven
- CVS
- Subversion
- Mercurial
- Git
- MS-Office
J2EE Platforms
- JBoss
- Tomcat
- WebLogic
Experience
Jul 2010 – present
Navteq Traffic Technologies Group
Malvern PA
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 an elastic message processing framework, based on the “actors” model, to support (soft) real-time processing of traffic data.
Java, memory-mapped files, Hadoop, HBase, S4
Jul 2009 – Jun 2010
Independent
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 encrypted tokens containing the information needed to access the list, access permissions for a particular user, and a time limit. This enabled the list to be managed directly from the browser, without the need to log into a user's account.
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 matched TTG'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
Mar 2005 – Mar 2007
Health Market Science
King of Prussia PA
Senior Software Developer
Developed Java-based applications to support HMS data acquisition and delivery.
- Common Data Repository: a system to manage and transform large datasets, accessed via EJB. Responsible for a desktop client using Swing, automated load tools driven by JMS message queues, and Ant tasks allowing repeatable load scripts.
- Prototype for a “next-generation” data matching system, using declarative rules expressed in XML to describe and relate data.
- Entity Storage Manager: a system to efficiently store hierarchical datasets by replacing text with a compact, ID-based representation. Responsible for design (front-end and database) and implementation.
Acted as mentor for junior development staff, via one-on-one interaction as well as numerous “lunch and learn” sessions on topics ranging from Hibernate to Java bytecode.
Java, Swing, JSP, Servlet, Web Services, JBoss, Oracle, Maven, Ant
Mar 2004 – Mar 2005
Gestalt LLC
Camden NJ
Contract
Member of technical staff working on the Distributed Mission Interoperability Toolkit (DMIT) project, a DoD-sponsored web-service-driven set of applications providing integrated access to mission data.
- Designed a client-side data model and transformation framework, allowing client code to remain consistent while server code was in constant flux.
- Co-developed a Swing-based reference client for the DMIT services.
- Developed a JSP-based web-application on the common client data model, using JSP taglibs to replicate Swing GUI components (pre-JSF).
- Built numerous core GUI components to cover gaps in those provided with Java Swing.
Java, Swing, JSP, Servlet, Web Services, WebLogic, Oracle
Nov 2002 – Mar 2004
Wellfound Technology Inc
Marietta GA
Senior Architect
Member of Wellfound's consulting staff, with a lead role in the analysis, design and implementation of Enterprise Application Integration (EAI) solutions focused on the TIBCO product suite.
- Mentored clients' technical staff on the design and implementation of EAI systems using the TIBCO product line (InConcert, IntegrationManager, BPM, ADB).
- Provided leadership and mentoring in refactoring a client's J2EE application.
- Analyzed and restructured a client's core database packages, reducing database load by 90% and improving end-user response time by more than 75%.
Oracle, SQL, PL/SQL, Java, TIBCO, InConcert, IntegrationManager
Sep 2000 – Jun 2002
TIBCO Software Inc, InConcert division
Cambridge MA
Senior Architect
Responsible for planning, designing, and (in many cases) implementing enhancements to the InConcert workflow server, a mature, cross-platform C++ application supporting multiple database back-ends. Feature roadmap was driven by input from both internal product management and direct customer communication.
Designed and prototyped a replacement server written in Java. Key features of this server:
- Improved performance via multi-threading and object caching.
- Ability to support multiple databases via object-relational mapping, with overrides for query optimization (pre-Hibernate).
- Ability to run stand-alone (using TIBCO Rendezvous as communications layer) or inside J2EE EJB container.
- Ability to support legacy clients via generated bindings.
Provided “crisis mode” support for clients, as well as mentoring and assistance to other departments within TIBCO.
C, C++, Java, SQL, PL/SQL, Oracle, TIBCO Rendezvous
Feb 2000 – Sep 2000
Mercator Software
Burlington MA
Contract
Responsible for end-of-life development support for the DbBlend product, an object-relational mapping tool supporting multiple database back-ends, and exposed as EJB 1.0 beans. This position required me to rapidly understand the thousands of classes that composed the product, interact with clients, and make bugfixes and enhancements to meet client needs.
Member of the team developing a server to HTTP-enable Mercator's core data transformation products, with responsibility for the HTTP protocol parser and servlet container.
Java, SQL, Oracle, Visual Café, HTTP, Servlets, Enterprise JavaBeans
Jan 1984 – Jan 2000
Parametric Technology Corp, Waltham MA; Software Engineer (contract)
InConcert Inc, Cambridge MA; Software Engineer (contract)
Fidelity Investments, Boston MA; Technical Advisor, Manager of Ad Hoc Programming
Symmetrix, Lexington MA; Associate
General Electric Aircraft Engines, Lynn MA; Software Engineer (contract)
BBN Communications Corp, Cambridge MA; Software Engineer (contract)
Strawberry Software, Watertown MA; Software Engineer
Keithley Instruments Data Acquisition & Control, Boston MA; Software Engineer
THINK Technologies, Lexington MA; Software Engineer
Education
Harvard University
ALB cum laude, 2002; concentration in History
Other
Author: Programming with Motif; Springer-Verlag, 1992
Co-author: Complete Turbo-C; Scott, Foresman, 1989
Presenter, Philadelphia Java Users Group
- November 9, 2010: Byte Buffers and Off-heap Memory
- October 14, 2009: Code Coverage
- December 12, 2007: Java Reference Objects
Open-source contributions:
- admin: Practical XML, a library to simplify working with JAXP
- admin: KDGCommons, a collection of Java utility classes
- admin: SwingLib, a collection of classes for Swing GUI developers
- contributor: OpenHMS
Copyright Keith D Gregory, all rights reserved
Third-party recruiters may not republish or redistribute this resume in any form without express written consent.