Spring Microservices in Action by John Carnell

Spring Microservices in Action Book

Author interview – Spring Microservices in Action

Honoured to feature an interview with John Carnell, Author of the book, Spring Microservices in Action. John is also a Team Lead & Senior Cloud Engineer in Genesys’s PureCloud division.

Tell us about yourself and how you got interested in writing?

I am a software developer first and foremost. While I have played multiple roles in my career (System Administration,Manager, Architect) I have always included writing code as one of my core competencies. I first started writing software on my Commodore 64 when I was in 6th grade and never really stopped there. Currently, I work at Genesys Corporation where I am a team lead of cloud-based developers that build the integration services for our telephony software.

I got into writing because I have always found that the act of writing helped me better understand a topic in detail. If I can’t explain a topic to someone then I really don’t understand it. Sometimes, I have written articles (or even books) because I was frustrated there was not a lot coverage on a particular topic area.

Tell us about your book – Spring Microservices in Action

Spring Microservices in Action was one of those instances where I wrote the book out of frustration.  When I first pitched the book to Manning, I had been frustrated that there were not a lot of good “engineering” books on writing Java-based microservices.

There are a lot of good books on microservice design, but I had not seen one on how to build microservices using Java (and Spring).

Spring Microservices in Action is really geared towards the Spring developer who wants to go beyond just writing a simple, REST-based service using Spring Boot.  The real focus of the book what it takes to operationalize your Spring microservices using the Spring Cloud technologies.  It covers topics like configuration management with Spring Cloud Config, Service Discovery with Netflix Eureka, Service security, etc….

I really wanted a code first book that would give very straightforward developers that would help jumpstart a developer in their own microservice development.  I consider myself an average developer.  I like software architecture books, but when I am learning something new I want simple examples that I can iterate on.
I also wanted the developer to run the code examples end-to-end.  That is why all of the code examples in the book build to Docker images that can be started and run locally.

You have co-Authored the book, Beginning Java Databases in 2001. How has software development trend changed over these years?

That is a huge question.  I would really say it amazes how distributed and complex software development has become.  It used to be many of the applications I built were deployed as a single deployable artifact inside of a Java container. Everything was deployed as a monolith and it made it much easier to reason about your applications.

Many applications today have a large number of distributed parts that run inside the data center and in the cloud. 

This has forced developers to focus “up-front” on how they are going to support (and debug) their applications.  It also means that as software has become more distributed, most developers have become very focused on a specific areas (front end, back end) of the application and have narrow experiences with only one programming languages.

What’s your advice for Computer students and IT professionals in adopting continuous learning habit?

I recommend three things:

1.  Set aside time for yourself everyday to learn something new.  Even if its for only 20 minutes.  Try to make it anything that is not work related.  If you only focus on working on the technologies you work with day in and day out , you tend to have blind spots to new languages and paradigms.

2.  When you are learning something new, iterate, iterate, iterate…..  What I mean by that is don’t try to bite off too big of a personal project early on.

One of the biggest mistakes I made early on is every time I was learning something new I tried to dive too deep into the topic. 

Many times I would get frustrated with the technology, because I was not giving myself something basic to work with.  It might seem silly, but “Hello World” is one of the first things I do whenever I build with something new.
3.  Go across programming paradigms.  I spent 18+ years of my life doing nothing but OO-based programming.  It became my foundational model for how I did software development.  Then I began working with Clojure and functional programming and it completely changed the way I thought about writing code. The language we write in often funnels us into thinking about a problem in one way.

My recommendation is try something completely different. If you do nothing but relational database development, go spend some time with a NoSQL or Graph database. 

 If you are a Java or C# developer learn Clojure or Elixir.  Learning a new programming paradigm can be extremely difficult, but honestly it makes you a better software developer.

What were your best speaking engagements and how do you choose them?

I love speaking at user groups.  When you speak at a user group you are usually talking to a group of people who are passionate enough about a topic that they are willing to give up an evening to learn something new.  Personally, my favorite speaking engagements were when I had the opportunity to speak at the NoFluffJustStuff software symposiums.  This conference tour is awesome.  It is not a market driven conference and all of the speakers are developers and thought leaders who regularly commit to open-source projects, write and teach.  Its been a while since I have spoken at the NoFluff conferences, but some of the best talks I have heard were at this conference series.

Your future plans.

Right now I am just recovering from writing Spring Microservices in Action.  I have talked with my editors about maybe doing a second edition at some point in the future.  I also just enrolled in Georgia Tech’s online Masters in Computer Science program.

I am a life time learner. 

While I already have an MBA, getting my Masters degree in Computer Science has always been a goal.  After my masters is done, I will have to see where life takes me.

Learn more about John in his official website

Buy Now – Spring Microservices in Actionby John Carnell

 Software Product Guide Team


Related posts