Experienced engineer specializing in backend development on the JVM. Areas of interest include: 12 factor applications, microservices, devops, cloud, containerization.



  • Java
  • Kotlin
  • Spring
  • Play Framework
  • jOOQ


  • PostgreSQL
  • Neo4j
  • Redis


  • Python
  • Ansible
  • Docker
  • Ruby


  • OAuth
  • JWT
  • Flyway

Work Experience

Senior Software Engineer - SmartPay Leasing January 2019 - Present

  • Member of SRE team, split responsibilities between application development and infrastructure management
  • Responsible for enhancing and supporting several Ruby on Rails and Java 8 applications
  • Transitioned engineering team members from using Vagrant-based local environment to using Docker Compose
  • Automated infrastructure and configuration changes using Terraform and Ansible
  • Worked to upgrade dependencies which were out of date with minimal downtime
  • Migrated repository tooling from GitHub + Travis CI to GitLab
  • Participated in production support activities
  • Wrote technical articles to facilite bringing engineering teams' practices up to date
  • Helped establish team standards and institute best practices using CI and other tooling
  • Participated in regular pair programming and code review sessions

Senior Software Engineer - Sipree, Inc. August 2017 - January 2019

Core developer on B2C SaaS payments solution built on Java 8, Play Framework, Docker and AWS.

  • Maintained several REST web services written using Java 8 and the Play Framework
  • Contributed to in-house devops tools using Ruby, Python and Shell scripting.
  • Rewrote synchronous code to be asynchronous using Java's CompletableFuture.
  • Built custom Docker images for deployment to AWS Elastic Beanstalk
  • Participated in production support activities
  • Wrote integrations for several payment networks
  • Developed build pipelines using Travis CI, sbt and Jitpack.

Services Engineer - Kroger September 2015 - August 2017

Member of team responsible for APIs used to personalize customer experiences on the websites and apps for Kroger's various banners.

  • Participated in design and implementation of aggregation API. Consisted of an Apache Kafka data pipeline, Neo4j graph database and Spring Boot microservices.
  • Created and improved many CI/CD pipelines for team owned applications, first using Bitbucket + TeamCity and later using Gitlab. Also maintained related deploy scripts.
  • Wrote several Gradle plugins for common tasks and enforcing team standards.
  • Wrote several Ansible playbooks and roles in order to automate ops tasks deployments. Helped champion Ansible adoption within the organization.
  • Participated in on-call support rotation for all team-owned applications. Utilized AppDynamics and Dynatrace APM tools in addition to an in-house log aggregation solution built on ElasticSearch and Kibana.
  • Contributed back to several open source projects used in project work.
  • Planning and development conducted using the SAFe methodology.
  • Participated in pair programming and code reviews.
  • Evangelized the use of Kotlin within the Kroger Digital organization. Conducted a lunch & learn session on the language and helped teams to start using it in their projects.

Consultant - Illumination Works March 2015 - September 2017

Project: Kroger Digital

Member of team responsible for developing and maintaining web service APIs core to Kroger's eCommerce experience.

  • Developed enhancements to existing services written using Java 7/8 and Spring MVC. Helped migrate from WebSphere Liberty to Tomcat and Spring Boot.
  • Implemented metrics collection and transmission in several applications using DropWizard/Codahale metrics framework
  • Developed several testing tools using Python
  • Wrote unit and integration tests for new functionality added to the APIs
  • Documented APIs using Swagger/OpenAPI

Software Engineer - Tata Consultancy Services July 2009 - February 2015

  • Core contributor to portal component for SaaS ERP product marketed to emerging markets
  • Planned and executed rewrite of legacy Java 5 and Apache Struts application using Java 7, Spring Core and Apache Wicket. Reduced project codebase by 2/3 and improved performance.
  • Transitioned team from SVN to Git
  • Implemented CI for team using Jenkins
  • Provided production support for application
  • Prototyped several new applications using Ruby on Rails
  • Collaborated with remote teams in several locations in India
  • Acted as Scrum Master for team during final year on the project


B.S. Management Purdue University 2009 Minors: MIS, Economics