Eric G.

Eric G.

Denver, United States of America
Hire Eric G. Hire Eric G. Hire Eric G.

About Me

Eric is an expert Java software engineer specializing in back-end and microservice development as well as workflow/release engineering. Comfortable with a broad set of libraries and environments, he is also skilled in CI/CD and cloud deployment. Additionally, Eric focuses on test-driven, domain-driven, and object-oriented design.

Backend

Database

Relational Databases SQL Databases PostgreSQL

DevOps

QA & Testing

Workflow

Other

Work history

Exclamation Graphics, Inc.
Java Web Developer
2022 - 2023 (1 year)
Remote
  • Worked in a team, building new features into the company's flagship Identity access management product. Added new features, including automating a large part of the users' workload. Worked at every level of the stack, but mostly Java and SpringBoot.

  • Stabilized codebase by introducing Spring best practices, Lombok annotations, and Java Stream notation. Simplified and sped up unit tests by introducing better mocking strategies and test data management.

  • Identified and corrected a major security vulnerability that affected every REST endpoint, including creating robust integration tests to be certain of the fix.

  • Mentored several new-to-Java programmers who had come from a Node.js background and showed them how to avoid basic mistakes.

HTMLJavaSpringNode.jsReact DockerJava 11 Spring BootPostgreSQLSpring Data JPA HATEOAS RESTGitLab CI/CD
U.Group
Senior Software Engineer
2018 - 2021 (3 years)
Remote
  • Developed an application to allow DoD Intelligence officers to track international financial transactions to determine national security risks from foreign investments. Utilized Spring REST microservices, Postgres, Elasticsearch, GraphQL, and React.

  • Developed an application to help experienced government contractors mentor small companies who aspire to be government contractors. Used Spring REST microservices, Postgres, and React/TypeScript.

  • Developed a large data aggregation service that pulled data from government databases such as FPDS and SAM and correlated it with public financial data sources such as Factset. Utilized NiFi, Postgres, and AWS API Gateway.

  • Built and managed CI/CD pipelines using Concourse for several projects triggered by private GitHub repositories and sent notifications to Slack. Used Bash scripting as well as customized Docker images delivered with AWS ECR.

  • Redesigned a large, monolithic Terraform deployment script to be more modular with less repetition and faster deployments to AWS (S3, ECS, ECR, RDS, Secrets Manager). Integrated this with a newly rebuilt Concourse pipeline.

JavaPostgreSQLKotlinJSON Web Tokens (JWT) SpringSpring BootRESTGraphqlMicroservicesAmazon S3 (AWS S3) Amazon Elastic Container Service (Amazon ECS) Amazon Elastic Container Registry (Amazon ECR) Amazon API Gateway AWS Lambda TerraformConcourse CI Apache NifiSpring Data Elasticsearch Spring Data JPA SQLjUnitTestcontainers DockerDocker ComposeReact TypescriptPythonPostGisAPIsJavaScript
I.S. Consulting
Senior Software Engineering Consultant
2012 - 2018 (6 years)
Remote
  • Built a large enterprise application using Java, Postgres, and GWT from prototyping through maintenance. Made design and architectural decisions and provided guidance and code reviews for several offshore teams.

  • Facilitated a migration into a cloud architecture by building REST-based microservices with Java8, Spring Boot, Redis, and RabbitMQ. Created templates and scripts for building and deploying services into an OpenShift/Kubernetes cluster.

  • Implemented single sign-on with Keycloak and LDAP to function across multiple applications using Spring Security and OpenID. Authentication of REST endpoints utilized the same mechanism but created JWT bearer tokens.

  • Performed performance analysis and optimization of Java and SQL code to improve the application's overall responsiveness for an event-sourced data structure. Created documentation and guidelines for the team to use for performance tuning.

  • Created an Android application for receiving payments and streaming advertisements on a tablet deployed into taxi cabs. The application interfaced with both REST-based data service and the taxi meter.

OpenLogic
Senior Software Engineer
2006 - 2007 (1 year)
Remote
  • Built testing and installation scripts for various collections of different open source projects. The scripts would configure different applications to work together so users could install a whole technology stack.

  • Updated the Swing-based Java user interface for displaying and manipulating currently installed software stacks.

  • Tested submissions for bug bounties the company awarded for solutions to interoperability problems with open source software.

Computer Research Inc.
Senior Software Engineer
2001 - 2005 (4 years)
Remote
  • Designed, implemented, and deployed a Java/JSP-based web application for conducting online purchases of municipal bonds. Interfaced with legacy COBOL code and DB2 databases. The application handled multi-million-dollar transactions securely.

  • Designed and implemented a system for handling orders and order allocation requests from FIX data sources to legacy COBOL applications. The application used Java and Python, raw socket programming, and Sparc/Solaris and Linux deployments.

  • Collaborated with developers on a project for handling high volumes of financial purchase orders via SOAP web services. Utilized Java, customized ant tasks, XML, XML-Schema, FIXML, Axis 1.1, JBoss, Apache, and Linux.

  • Acted as the primary system admin for five production Linux systems and one Sparc/Solaris. Set up and served as the administrator for our internal CVS repository. Designed and documented source repository branching and merging strategies.

  • Mentored junior developers and led them on a project using screen-scraping technology to interface modern web applications with legacy COBOL applications.

  • Worked closely with the QA department to develop, document, and implement release management for projects which required multiple components in different languages (e.g. Cobol, Java, and Jython).

WebSphereIBM DB2SolarisAS/400 SOAPJakarta Server Pages (JSP) HTMLPythonJava
Exactis.com
Technical Team Lead
1999 - 2001 (2 years)
Remote
  • Led a team of developers working with Swing, JSP, and Java-RMI to develop sophisticated user interfaces for content management.

  • Spearheaded the effort to bring test-first techniques to the development team and to provide infrastructure for running automated tests.

  • Worked on R&D team to find newer and faster templating tools for building high-volume email mailings.

  • Supported QA and Perl development teams to interface with Java and Linux-based products.

SolarisLinuxLDAPOracleJakarta Server Pages (JSP) SwingJava
I.T.I.C.
Software Engineer
1996 - 1999 (3 years)
Remote
  • Developed client/server applications and 3-tiered applications for Windows with Delphi, MS SQL Server, and Paradox databases.

  • Contributed to a large, multi-threaded C++ application for handling huge collections of scanned images.

  • Performed network and email server maintenance for the company.

  • Built audio capture application for recording voice content in high-fidelity, then encoding and sending the audio files via email.

  • Created reusable authentication and authorization framework for Delphi applications allowing for enabling, disabling, or hiding screen components dynamically.

Showcase

Source to Image Builder for Dropwizard
  • Developed a builder image for Dropwizard REST services.

  • Associated OpenShift templates for deployment within an OpenShift cluster.

  • Creates CI/CD pipelines for this application in a Kubernetes context.

Enterprise LDAP Integration
  • Implemented security for the app using an existing LDAP server for authentication.

  • Designed the LDAP schema to align with the existing server's structure.

  • Configured Spring Security in the new app (EJB-based) to utilize LDAP.

Mobile Payment and Ad Streaming App
  • Developed an Android application for card-swipe payments in taxis using a tablet mounted in the backseat.

  • Integrated with a taxi meter via raw serial communications to capture trip duration.

  • The application includes video advertisements during the trip.

Migrated Multple Web Applications to use a Single Sign-on Solution
  • Implemented a single sign-on solution to consolidate authentication across multiple web applications.

  • Configured Keycloak as the identity provider, leveraging an existing LDAP server for data storage.

  • Designed the solution to accommodate the EJB application's need to authenticate directly against LDAP for a seamless migration.

Event Management System
  • Developed an event management system using Java to automate the processing of incoming emails.

  • Implemented a Java-RMI-based system to communicate between servers and XML for job definition.

  • Enhanced the product with embedded Jython scripting and transaction log connectors for major database systems.

Education

Education
Bachelor's Degree in Mathematics
Metropolitan State University of Denver
1998 - 2003 (5 years)