Java Developer in Arvada, CO, United States
Senior Software Engineering Consultant2012 - 2018I.S. Consulting
Technologies: Java, SQL, EJB, Spring, JPA, Hibernate, GWT, Postgres, Wildfly, OpenShift, Kubernetes, AngularJS, Keycloak, Groovy
- 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 large migration into a cloud architecture by building REST-based microservices with Java8, Spring Boot, Redis, and RabbitMQ. Created templates and scripts for automatic building and deployment of services and applications 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 overall responsiveness of the application, especially for an event-sourced data structure. Created documentation and guidelines for other developers to use for performance tuning and analysis.
- Created an android application for receiving payments and streaming advertisements on a tablet deployed into taxi cabs. Application interfaced with both a REST-based data service and the taxi-meter.
Senior Software Engineer2006 - 2007OpenLogic
Technologies: Java, Groovy, sh/bash
- 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 together.
- Updated Swing-based Java user interface for displaying and manipulating current installed software stacks.
Senior Software Engineer2001 - 2005Computer Research Inc.
Technologies: Java, Python, HTML, JSP, SOAP, AS-400, Solaris, DB2, Websphere
- Designed, implemented, documented and deployed a Java/JSP based web application for conducting online purchases of municipal bonds. Interfaced with legacy COBOL code and DB2 databases. Application handled multi-million-dollar transactions securely.
- Designed and implemented a system for handling Orders and Order Allocation requests from a FIX (Financial Information eXchange) data sources and interfacing with legacy COBOL applications. The application was a combination of Java and Python code, utilized raw socket programming, and was deployed to both Sparc/Solaris and Linux environments.
- 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, Linux.
- Primary system admin for five production Linux systems and one Sparc/Solaris. Also set up and acted as 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).
Technical Team Lead1999 - 2001Exactis.com
Technologies: Java, Swing, JSP, Oracle, LDAP, Linux, Sparc, Solaris
- Led a team of developers working with Swing, JSP, and Java-RMI to develop sophisticated user interfaces for content management.
- Spearheaded 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.
Software Engineer1996 - 1999I.T.I.C.
Technologies: Java, Delphi, C++, HTML, SQL
- 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 authenication and authorization framework for Delphi applications allowing for enabling, disabling, or hiding screen components dynamically.
- Source to Image Builder for Dropwizard (Development)https://github.com/egeorge-nolab/s2i-dropwizard
I created a builder image and associated OpenShift templates for deploying Dropwizard REST services into an OpenShift cluster.
This allows for the creation of CI/CD pipelines for this type of application in a Kubernetes context.
- Enterprise LDAP Integration (Development)
As part of my work building an enterprise application for a healthcare software company, I set up the security for the app to utilize the existing LDAP server for authentication.
I designed the LDAP schema to meet the needs of the new project, and also be compatible with the structure of the existing LDAP server, which was relied upon by other legacy apps. I configured Spring Security in the new app (which was EJB-based) to use LDAP.
Once the code was complete, I created scripts and LDIF files to bootstrap new installations as well as automate Dev and QA deployment with a standard set of test and demo user credentials.
- Mobile Payment and Ad Streaming App (Development)
I designed and built an Android application that accepted card-swipe payments for taxis on a tablet mounted in the backseat. The application integrated with the taxi meter using raw serial communications to capture trip duration information.
During the trip, the tablet would play video advertisements. It would receive push updates of both the application as well as the advertising content.
- Migrated Multple Web Applications to use a Single Sign-on Solution (Development)
We had several web applications, some running Spring Boot and one using EJBs and Spring Security. In order to make these applications function seamlessly together without users having to log into each, I implemented a single sign-on solution to consolidate the authentication.
I configured Keycloak as my identity provider, using an existing LDAP server for its data store. Since all of the applications used Spring Security, I was able to configure that using the appropriate OpenID adapter.
One of the challenges with this migration was that the EJB application needed to maintain the ability to authenticate directly against LDAP. This was to allow for a smooth migration in case the new authentication scheme did not work.
- Event Management System (Development)
I worked for a startup that had to process a huge number of incoming emails. The emails would be sorted by one script, pushed to various servers where a cron job would pick them up and create database records for some of them. Then a similar cycle would send the data along further.
With all of the cron jobs polling and checking, it took over 30 minutes to process something that took only a few seconds of computer time.
I saw there was a better way, so I built an event management system with Java that could trigger a task remotely when it was needed, eliminating all of the wasteful polling and waiting. The product used Java-RMI to communicate between servers and XML to define the jobs (both new technologies at the time).
I eventually licensed the product to a company who made software to synchronize data between disparate relational databases. We enhanced the product to allow for embedded Jython scripts and wrote connectors for the transaction logs of major database systems.
FrameworksGWT, Spring Security, JSON Web Tokens (JWT), Spring Boot, Hibernate, JPA, Angular, AngularJS, Spring MVC
ToolsGit, DbVisualizer, Jenkins, Jira, Postman, Spring Tool Suite (STS), KeyCloak, Shell, WildFly, RabbitMQ
StorageRelational Databases, PL/SQL, PostgreSQL, MySQL
ParadigmsREST, Test-driven Development (TDD)
PlatformsOpenShift, Docker, Eclipse, Kubernetes, Linux
OtherLDAP, Shell Scripting, Ant, Domain-driven Design (DDD)
Libraries/APIsJenkins Pipeline, Spring REST, JMS
- Bachelor's degree in Mathematics1998 - 2003Metropolitan State University of Denver - Denver, CO