Principal Software Engineer
2/1/2021 to present
Assignment at Apple
Technical lead, working with AWS, CI/CD and architecture.
Via: Nespon IT Services
Contract - Software Engineer; 4/2020 to 1/2021
Currently in role of Lead Developer and Architect for enterprise sales quoting applications team.
Development of code and team best practices for supporting microservices:
- Research, prototype, and implementation of migration of REST (Spring MVC) microservices from custom embedded
Tomcat to Spring Boot 2 architecture. Developed Gradle plugin to share common configuration
implementing CI in Windstream's specific environment. The services support the quoting applications and
utilize Redis, Mongo, and Oracle databases.
- Leading team's migration from microservices on VMs to Docker images on Kubernetes (Rancher) deployed via
Azure DevOps pipelines. Built and documented template containing technologies relevant to the team.
- Set up and maintain Jenkins continuous integration server on Linux and Sonatype Nexus 3 for proxying and
publishing npm, NuGet, Docker and Maven artifacts. Assisted management of TeamCity CI jobs.
- Leading team's migration of Mercurial/Atlassian/TeamCity/Jenkins toolset to new Windstream-wide standard on
git and Azure DevOps. Built scripts to convert Mercurial to git and template projects and Azure pipelines. The
Nexus 3 server I set up was migrated to the organization-wide architecture team as it was adopted in the
microservices and Azure DevOps infrastructure.
Main quoting application used by direct sales:
- Primary team contact for architectural design and integrations with other applications. Assist business
stakeholders in requirements design for our application to ensure a cost-effective solution that meets
business needs.
- Rewrite JSF-based UI of the company's primary internal sales quoting application to use HTML5+AngularJS
frontend with JSON backend implemented in JAX-RS+Groovy on Weblogic. The new backend also allowed replacing
Selenium-based integration testing with direct API testing, reducing automated testing times from hours to
minutes.
- Part of a team to integrate the application with Salesforce, converting some existing code utilizing Oracle
PL/SQL to SOAP/SOQL queries
- Plan, architect, and implementation of a Groovy rules framework to replace proprietary usage of IBM JRules
system. Manage and implement the actual migration with a few other developers.
- Performance optimization project involving Oracle table and index design, Guava and Redis caching. For Redis
I was involved with technology selection/justification, configuration and deployment scripts on Linux.
- Team lead for project working with IT infrastructure to move main application and all supporting microservices
to a different data center at a different domain. Included assisting RHEL OS upgrade and Oracle RDBMS upgrade including
writing and testing initial datapump script.
Simplified portal for external (indirect) sales:
- Selected technologies, design and build backend and frontend for a sales quoting application used by
external sales users and API for quoting aggregators
- Backend provided SOAP (JAX-WS) and REST (JAX-RS) web services using Jetty and CXF, implemented in Groovy
- Frontend written in JavaScript, using AngularJS and Bootstrap with Grunt, Bower, and npm
- Configure services and Apache on Linux development and production servers
Senior Staff Engineer
11/2011 to 08/2013
Staff Engineer
12/2003 to 10/2011
- Lead software design and development process for multiple projects primarily under Office of Naval Research funding:
- Generic Java framework for a modular vehicle diagnostics and telematics
system. Used Java 1.3-1.7, JDBC, SQL, XML, and networking
technologies to develop the project.
US patent 8175848 granted for this project.
- Java Swing-based maintainer's interface, and data synchronization software
- Android version to collect and store data from light vehicles (OBD-II)
- Projects have been deployed in US Marine Corps, commercial applications, and a spin-off company,
Vnomics
- Work with team to introduce and facilitate Agile programming
(Scrum,
Continuous Integration)
- Work with MySQL databases on Linux and SQL Server databases (100s GB+ size) in Windows.
- Developed and implemented team workflow and release management processes.
- Interview, hire and manage student co-ops (paid internships).
- Evaluated, configured and maintained development services (SVN,
Trac,
Apache, ScrumWorks, TeamCity,
and MySQL) on a Linux Ubuntu server.
Software Co-op
5/2002 to 11/2002 + 5/2003 - 8/2003
- Started design and coding for vehicle monitoring application and maintainer's interface, described above.
Web Application Developer Co-op
5/2001 to 8/2001 + 11/2001 to 2/2002
- Used JSP, JDBC, Oracle, JavaScript, CSS, and HTML to create intranet
web applications
-
Worked in a project to redesign the
Tulsa Historical Society website (since
redesigned)