John Guthrie

John Guthrie is an Advisory Solutions Architect with Pivotal Software, where he advises on transitioning from legacy applications to cloud native architectures. John has been working in software for decades across numerous countries; he currently resides in the Washington DC suburbs.

books & projects by John Guthrie

Converting Legacy Applications to Cloud Native in Kubernetes

4 weeks · 7-9 hours per week average · INTERMEDIATE

In this series of liveProjects, you’ve joined up with a fantasy football company whose intranet is at least 15 years out of date. Your boss wants to update to a modern, microservices-based architecture that runs in the cloud using Kubernetes. The IT team has kicked off this project with a new UX design for your web applications—but there’s a catch. Those old web apps have business processes built into them that can’t be rewritten from scratch. Instead, you’ve decided to transform these legacy applications into RESTful web services. Your challenges in this liveProject will include reviewing and modernizing the legacy app with Spring Boot and RESTful APIs, Dockerizing the app to run in a container environment, and then deploying it onto Kubernetes. Each liveProject is a self-contained learning experience, so you can pick and choose the skills most relevant to you.

Deploy in Kubernetes

1 week · 8-10 hours per week · INTERMEDIATE

In this liveProject, you’ll run a containerized Spring Boot application and a PostgreSQL database in Kubernetes. Kubernetes manages the entire lifecycle of containers, making them easy to scale. It’s the best-of-breed cloud container orchestration framework, with an active open-source community of contributors.

Containerize with Docker

1 week · 8-10 hours per week · INTERMEDIATE

In this liveProject, you’ll use Docker to containerize a Spring Boot application and a PostgreSQL database. Containers make your application much easier to scale, and are a key step towards cloud deployment. You’ll use Docker Compose to see how your containerized applications and services interact, and build Dockerfile-based containers with kaniko.

Convert an App to RESTful API

1 week · 6-8 hours per week · INTERMEDIATE

In this liveProject, you’ll prepare an old monolithic application for migration to microservices by converting it to be a REST-based service. You’ll break up an established monolith by using bounded contexts to give your microservices responsibility over a smaller part of the business domain. You’ll convert these microservices to use RESTful APIs, allowing for the existing business logic to remain intact, and leaving behind a static Thymeleaf-based user interface allows another team to write a modern front end.

Spring MVC App to Spring Boot

1 week · 6-8 hours per week · INTERMEDIATE

In this liveProject, you’ll rebuild an outdated candidate report-generating application to use the latest standard of Spring Boot. This new application will take advantage of Spring Boot’s amazing features such as bundled dependencies, reduction of boilerplate code, and integration with other modern frameworks. It can also benefit from running with an embedded server, meaning your boss can finally decommission old application servers.

Exploring Kotlin Functional Programming

  • April 2019
  • ISBN 9781617297090
  • 116 pages

Functional programming is a reliable method for delivering what every developer wants to see: bug free code. Built around the same tenets as calculus, functional programming creates code that’s more stable, more consistent and easier to test. The new JVM language Kotlin has caught the attention of Java and Scala developers, in part because it embraces functional-style programming more naturally than standard Java. Google even supports Kotlin as a first-class Android language because of the simplicity it brings to mobile development. There’s never been a better time to take a close look at this hot new language for functional programming!

Exploring Kotlin Functional Programming is a fast, four-chapter introduction designed to give Java programmers a head-start on Kotlin and functional programming. The book sheds light on how functions work in both Kotlin and Java, and how to start implementing them in your code. When you’re done, you’ll have a leg-up on solving programming problems with functional techniques.