Travis Offtermatt
Longmont, Colorado - travis.offtermatt@gmail.com - LinkedIn Profile - GitHub
Download: docx pdf
Dedicated, creative, and adaptable back-end developer with diverse experience supporting large-scale corporate software. Seasoned in cloud-deployment strategies and writing containerized, cloud-oriented, services. Hands-on team leader and collaborator with excellent interpersonal, communication, organization, analytical, and problem-solving skills.
Microservices
Event Driven Design
Kubernetes
Azure, GCP, AWS
Project Management
Enterprise Software Design
Design Patterns
Scalable Software
Agile Methodology
Languages: Go, C#, Java
Additional Skills: REST, gRPC, Docker, GCP, Azure, AWS, GIT, Sql, BigQuery, MongoDB, Unit/Integration Testing, Istio, .NET, J2EE, Spring, Maven, XML, Jenkins, AJAX, Soap, JPA, DirectX, OpenGL, Windows API
Initiated the refactoring of the back-end infrastructure.
The original design was a monolithic architecture with cross library dependencies.
Introduced the ideas of Domain Driven Design principles and a micro-service architecture.
Mentored the developers in how to design MVC-based, stateless, decoupled, micro-services.
Worked with product owners, VP of engineering, and the CTO to coordinate and emphasis the benefits of a micro-service architecture.
Implemented the core infrastructure that all micro-services are based on, including:
An easy to integrate builder to inject required resources into class instances.
Middleware for both REST and gRPC for consistent logging and user authentication.
A custom `context` through which request-scoped logging and user can be obtained.
Simple generics-based integration into the Event system.
Created an Event Store to allow the entire system to be event driven.
Integrated with Google Cloud Platforms publish/subscription model as well as NATS messaging for local development and testing.
Quick and efficient receiving of events, recording for replay, and emitting of events.
Robust 'dead-letter' system to alert when a message fails to be consumed for later replay.
Trained Jr. developers in better:
Coding practices like smaller functions and interface-driven code design.
Unit tests by mocking out injected interfaces with mocks.
Go, gRPC, Kubernetes, Docker, GCP
Spearheaded an effort to transition the company to an automated cloud-based microservices architecture. Efforts and results include:
Learned Kubernetes and researched service meshes like Istio and LinkerD
Refactored the microservices to work within the chosen service mesh (Istio) which included updating the code and writing yaml files to describe the deployments within k8s/istio.
Created a deployment strategy for developers to easily work within the new environment using Docker, Helm, and Skaffold.
Wrote a base microservice template in Go that allows rapid prototyping and development of new microservices.
Designed, implemented, and managed the backend for an application that allowes users to create a sandbox environment of virtual machines for cyber security training. The backend microservices included CRUD operations for defining the environment, the different virtual machines, and the networking between the different VMs as well as the ability to publish the environment to another application that would create the environments within Azure.
Go, gRPC, Kubernetes, Docker, Azure
Lead a code rewrite process that enhanced confusing server power operations by learning and rewriting power-related code operations for both end users and internal teams. Efforts and results include:
Presented interface and code to automated integration testing teams.
Enabled safer and more predictable power operations by implementing well documented and easier to understand code.
Identified individual code defects and designed collective solutions to address all technical issues.
Consistently increased organizational efficiencies and overall understanding of technical systems by identifying and resolving system issues across multiple platforms, teams, and projects.
Added abstraction to enable the OneView system to better support new hardware by teaching the system to determine basic support based off of the hardware signature type instead of rejecting all unknown hardware.
Played a key role on the server management team and supported all team hardware efforts, including enclosures, blades, rack servers, hard drives, power supplies, and wiring.
Supported the new Synergy ecosystem server hardware platform by updating PostgreSQL database tables, backend java code, REST services, and frontend html and JavaScript.
Identified and resolved code defects across areas including power control, hardware type tracking, database CRUD operations, and intersystem communication for multiple software versions.
Java, J2EE
Supported the software administration and engineering activities of a leading partner with St. Jude’s Children’s Research Hospital, including creating multiple technical portals and platforms that increased efficiencies.
Led a talented team in designing a call center portal for end-user support for operations including resetting passwords, making user name changes, and verifying users. Efforts and results include:
Adopted and implemented the UI with AngularJS while leading other programmers in completing project goals.
Achieved a time savings for the development team while simultaneously empowering call center employees to perform various end-user support actions.
Java
Designed and implemented an innovative paradigm to swiftly parse, verify, and store large amounts of external data, thereby enabling customer users to receive up-to-date and accurate information.
Improved page load times from more than five minutes to less than 20 seconds by researching and rewriting SQL queries and code to make time linear, thereby ensuring more usable user interfaces.
Oversaw an interface modernization project for a client by researching libraries, adopting AngulerJS, training the entire software engineering team on its use, and ensuring increased responsiveness with each new iteration.
Oversaw a code rewriting process that enabled better writing of software with minimal code defects, including:
Independently learning and subsequently training the software engineering team on proper ways to write and execute unit and integration tests, including the use of Mock objects.
Customizing staff training documentation and one-on-one training time across skill levels.
Redesigned the backend of a legacy user interface to increase load times from 60 seconds to 1-2 second, thereby allowing users to store specified data and perform data-related actions.
Created user interfaces using modern JavaScript libraries and RESTful web services to yield dynamic content.
Aided in implementing unit and integration testing into programs and utilized object mocking to facilitate unit and integration testing.
Java, J2EE, WebLogic
Worked with the modding community on Mods & Moogles discord to create a mod manager for the Final Fantasy Pixel Remastered I – VI games.
To keep running costs to zero, all mods are defined and discoverable through a github repository.
Free to download as well as to discover the list of mods available from hosted sites like Nexus, CurseForge, and self-hosted downloads.
When a mod is selected by the user, the mod manager will install the mod and back up any files that would have been overridden.
Able to detect and track file conflicts between mods, allowing the user to decide how to proceed.
Go
Supports editing `Final Fantasy Pixel Remastered I-VI` Save files.
Character Stats, Magic/Abilities, Equipment, and Commands
Inventory and Important items
Party Members
Map data including player world/map/position/facing
Transportation for changing map and position
Go, fyne
For five years I developed and supported over thirty mods for the game RimWorld. Developing complex mods entails decompiling the game’s code with tools like ilSpy, following execution paths, and finding the code to modify with a community supported library called Harmony. Harmony allows mods to “patch” the game’s methods by having mod-defined code execute prior to or after the game’s methods.
C#