Summary
- Highly proficient in a variety of Java technologies, including Java EE, JPA (Java Persistence API), JSF (Java ServerFaces), Maven, Spring (including Spring Boot), Groovy, and Spock/JUnit unit tests.
- Experienced in developing in all three of the major Java IDEs (NetBeans, Eclipse, and IntelliJ IDEA).
- Highly proficient in SQL as well as databases such as Oracle, PostgreSQL, and MySQL.
- Highly proficient with web development in Node.js, HTML, CSS, JavaScript, TypeScript, JSON, Angular, AngularJS, Vue.js, and Jasmine/Karma unit tests.
Work History
Crown Equipment Corporation | Senior Software Engineer | June 2023 - Present
Internal Sales Tools | Senior Software Engineer | June 2023 - Present
- Implemented custom PDF generation capabilities using Spring Boot, Thymeleaf, and OpenHtmlToPdf.
- Completed reimplementing a new front-end application to Angular 14, which included upgrading the TypeScript version to TypeScript 4.7.
- Completed reimplementing the back-end of that Angular application with versions 2.7.0 of the Spring Boot Framework, including Spring Data (JDBC & JPA), Spring MVC, Spring Security, and testing using Spring Test and JUnit 5.
- Also upgraded that backend from Java 8 to Java 17.
- Completed these implementations several months ahead of schedule.
Optum | Senior Software Engineer | January 2022 - April 2023
MBM Now Client Experience Management | Senior Software Engineer | December 2022 - April 2023
- Worked on upgrading a front-end application from Angular 8 to Angular 14, including upgrading the TypeScript version from TypeScript 3.4 to TypeScript 4.7.
- Aided in the refinement of software requirements, including breaking down complex ideas into smaller, simpler and more manageable units of work.
- Worked on automating front-end Jasmine/Karma unit tests in a Jenkins pipeline.
- Routinely mentored junior software engineers and quality assurance engineers.
- Attended and participated in regular scrum ceremonies, including daily stand ups, retrospectives, and sprint planning sessions.
MBM Now / Martin’s Point Healthcare TruCare API Integration | Senior Software Engineer | October 2022 - February 2023
- Led the effort to map over 25 different database values in MBM Now to the JSON parameters specified by the TruCare API.
- Used Postman to identify, test, and validate the TruCare API endpoints.
- Enabled client-side SSL encryption using private keys, certificate files, Java KeyStore (JKS) files, and the WebClient API of the Spring Framework.
MBM Now Utilization Management | Senior Software Engineer | January 2022 - December 2022
- Led my scrum team to win 3rd place in the 2022 annual hackathon by improving the user experience.
- Implemented a content security policy (CSP) in the web application in order to mitigate cross-site scripting (XSS) attacks.
- Provided fixes and enhancements to a web application that uses AngularJS (in addition to vanilla JavaScript, HTML, and CSS) in the front end, Java, Groovy. and JBoss EAP along with a Spring framework in the back end; as well as a MySql database (with migrations via FlyWay).
- Increased and enhanced unit test code coverage with the Spock Framework for the back-end and Jasmine/Karma the front-end.
- Attended and participated in regular scrum ceremonies, including daily stand ups, retrospectives, and sprint planning sessions.
- Effectively utilized Git and GitHub to regularly contribute to the project.
Northrop Grumman Corporation | Senior Software Engineer | January 2014 – December 2021
Project 5 | Senior Software Engineer | July 2021 - December 2021
- Provided updates to web pages written with PHP that used JavaScript frameworks including Bootstrap and Vue.js in a secure environment.
- Created JSON REST endpoints using Oracle JSON Data Structures in a PL/SQL environment delivered through Oracle REST Data Services (ORDS).
- Aided in coworker’s use of Matomo Analytics and debugging of a JSF & JDBC application.
Project 4 | Senior Software Engineer | February 2021 - July 2021
- Identified & corrected bugs in the software that has existed for years prior.
- Used automated software tools (Eclipse autoformatting & save actions) to reduce the complexity of the software code, allowing for easier debugging.
- Self-managed software development activities, as well as collaborated with others using tools such as Jira, Confluence, Fisheye, and Crucible.
- Provided fellow team members with simpler methods of doing complex & tedious tasks.
Project 3 | Senior Software Engineer | July 2020 – February 2021
- Created a Node.js web application that queries and updates data in a PostGreSQL/PostGIS database.
- Created a Docker container that holds that Node.js; created another Docker container that holds a PostGreSQL database that mirrors the schema of the real-world PostGIS database; ran both in a single Docker Compose instance.
- Enabled the Node.js web application and the mirror database to use SSL file certificates instead of a username/password.
Project 2 | Software Engineer | March 2018 – July 2020
- Provided maintenance and new functionality to an existing Java Swing desktop application.
- Maintenance activities included eliminating processing bottlenecks by using tools such as JProfiler to identify those bottlenecks.
- Consistently created unit tests that covered at least 90% of newly written code.
- Reduced the amount of “code smell”” in existing code by about 8% largely by using code formatting tools.
- Used software tools such as SonarLint, SonarQube, and HP Fortify to identify and fix software issues, including vulnerabilities and duplicate code.
Project 1 | Software Engineer | January 2014 – March 2018
- Modified an existing Java Swing desktop application by improving its mapping capabilities using OpenMap 5.0.3, added advanced metrics, and applied redesigns to the GUI.
- Migrated that Java Swing desktop application to a web application using GlassFish, JPA, CDI, JSF, PrimeFaces, PrimeFaces Extensions, and an Oracle XE database. Provided major customizations to the PrimeFaces JSF timeline component. Configured the build and dependency tool Maven such that the web application could be built while not connected to the Internet.
- Maintained and updated the public website for the Defense Production Act Title III program. Made this website into HTML5 compliance by modifying and customizing the PHP files, CSS files, and image files in such a way that the website’s overall appearance did not change. Implemented a mobile-friendly version using CSS media queries.
Moreover Technologies | Quality Assurance (QA) Engineer | May 2013 – October 2013
- Automated web applications using the Java library Selenium.
- Tested REST interfaces using JMeter.
- Reported bugs using JIRA.
Air Force Institute of Technology | Computer Programmer / Research Assistant | Mar 2011 – May 2013
- Generated 3D models from 2D imagery using the structure-from-motion (SfM) C/C++ library Bundler.
- Generated simulated images using Blender.
- Provided input on an AFIT student’s graduate thesis.
Wright State University | Teacher’s Assistant | September 2010 – June 2012
- Taught computer labs in the Java language for non-majors (CS141 & CS142).
- Graded student projects in a timely manner.
- Reported student performance to the teacher.
Open Source Contributions
DefinitelyTyped
- Created
@types/greenlock-express
for TypeScript in the DefinitelyTyped project, allowing typed use of thegreenlock-express
npm package. - See Pull Request at https://github.com/DefinitelyTyped/DefinitelyTyped/pull/65440.
Jenkins Embeddable Build Status Plugin
- Resolved a bug/defect in the Jenkins Embeddable Build Status Plugin involving an infinite loop.
- See Pull Request at https://github.com/jenkinsci/embeddable-build-status-plugin/pull/133.
JSON-java
- Created additional JUnit unit tests to test numerical JSON values in the JSON-java project.
- See Pull Request at https://github.com/stleary/JSON-java/pull/691.
Apache Commons Lang
- Updated the
ObjectUtils#isEmpty()
utility method in Apache Commons Lang to handle Optionals properly. - See Pull Request at https://github.com/apache/commons-lang/pull/933.
Projects
Content Security Policy for Spring
- A Content Security Policy builder and bean to help secure Spring applications.
- Source hosted on GitHub.
- Available at Maven Central.
- Blog post introducing the package.
Moonshot
- GitHub Game Off 2020 Entry
- Written in Java using the libGDX gaming engine.
- Source hosted on GitHub.
- Available in the Google Play Store.
- Available in the Amazon App Store.
- Available on itch.io
- Blog post discussing my experience.
Tic Tac Toe Android Application
- The Classic Game of Tic Tac Toe for Android.
- Source hosted on GitHub.
- Available in the Google Play Store.
- Available in the Amazon App Store.
Tagger for Amazon Associates
- Android App written in Java that allows Amazon Associates to tag Amazon URLs with their affiliate code in order to earn affiliate revenue.
- Source hosted on GitHub.
- Available in the Google Play Store.
AutoPhotoSync for Google Photos
- AutoPhotoSync is a desktop Java application. It runs in the system tray (known as the Notification Area in Windows) with a simplistic GUI.
- Source hosted on GitHub.
- Blog post introducing AutoPhotoSync.
Family Tree database and web application
- FamilyTree is a simple web application using JavaServerFaces, Java EE, and a SQL database to load, display, edit, and examine a family tree. It was initially created as a project for CS7700 Advanced Database Systems at Wright State, and is was also used for CS7720 Data Mining at the same school.
- Source hosted on GitHub.
- Generated Documentation.
Education
Wright State University | Master of Science (M.S.) in Computer Science | 2014 – 2018
Wright State University | Bachelor of Science (B.S.) in Computer Science | 2008 – 2012
Certifications
Scrum.org Professional Scrum Master I | May 28, 2021
CompTIA Advanced Security Practitioner (CASP) | October 2, 2016
Oracle 1Z0-803 - Java SE 7 Programmer I | September 2015
Awards
Competent Communicator | Toastmasters International | February 9, 2020
Competent Leader | Toastmasters International | February 21, 2019
Volunteerism
The City of Huber Heights
Ordinance Review Commission | September 28, 2020 - June 30, 2021
The Ordinance Review Commission is appointed by the City Council at least every ten years per the City Charter. The Ordinance Review Commission reviews the City Code and other ordinances or resolutions of the City and makes recommendations to the City Council for the elimination or revision of provisions of the City Code and other ordinances or resolutions which may have outlived usefulness or practicality. The Ordinance Review Commission was established by the City Charter.