freeCodeCamp, Pull Requests are welcomed and Spring AI

Happy Monday and welcome to another edition of the newsletter. In typical Cleveland weather I was able to get out and play a quick 9 holes of golf earlier this week and now as I’m writing this on Sunday it’s snowing. This week I’m heading out on the road for a quick trip to Atlanta to visit the Atlanta Java User Group. This is one of the biggest user groups in the country and I’m really looking forward to this visit.

This past week was an excellent one and started out strong with one of our best Spring Office Hours shows ever. I’m also in the midst of putting together a talk on building intelligent applications with Spring AI. This is a project I’m very excited about and can’t wait to tell you more about it. Finally, I was able to film, edit and publish 3 videos this week on Spring Native Images, Primitive vs Reference Types in Java and Upgrading with OpenRewrite.

freeCode Camp Course is Live

A few weeks ago I reached out to freeCodeCamp to see if I could build a course for their YouTube channel. If you aren’t familiar with freeCodeCamp they are a place where you can learn to code for free. When I was developing curriculum for a coding bootcamp we used to use a lot of their courses as prerequisites for the course, and they are an amazing resource.

I sat down and wrote a curriculum, recorded about 4 hours of video and published this course in a week. This is an introduction to building web applications in Java with Spring Boot 3. I’m really happy with how this course turned out, and I’m really excited to share it with you. If you have a chance to go through it, I would really love your feedback.

Pull Requests Welcome

Last week started with one of our best Spring Office Hours shows yet! In a previous episode we built out a repository that contains some really great resources for learning Spring. In this episode we decided to have a chat around contributing to open source software, including this repo we created. We ended up having like 333 live viewers and that repo that we started now has 565 stars. This was just another reminder of great this community is, and we can’t thank you enough for all of your support.

As a reminder we stream live every Monday at 1 PM EDT and the replay for that stream can be found on the Spring Developer YouTube Channel. We also turn that stream into a podcast and if you would like to find out more about that you can head over to https://springofficehours.io. This week we will be discussing how to do batch processing with Spring Batch.

Spring AI

Spring AI

I had some time last week to spend working with Spring AI, and I’m really excited about where this project already is and where it is headed. What is Spring AI you ask?

Spring AI is an application framework for AI engineering. Its goal is to apply to the AI domain Spring ecosystem design principles such as portability and modular design and promote using POJOs as the building blocks of an application to the AI domain.

In short, it gives you a nice abstraction layer over the different LLMs (Large Language Models) and simplifies working with the inputs (Prompts) and outputs (Output Parsers). I was able to put a bunch of really cool examples in a short amount of time starting with this simple example that talks to Open AI (The folks behind ChatGPT).

spring-ai-open-ai.png

If you’re interested in hearing more about this you can register for an upcoming livestream with my good friends at JetBrains.

3 New Videos Last week!

I was able to knock out 3 new videos last week and I have been receiving some really great feedback on them.

Building native images in Spring with GraalVM

In this tutorial you will learn the what, why and how of building native images in Spring Boot with GraalVM. Ahead-of-Time (AoT) compilation is a prerequisite for building native images with GraalVM. You will learn where this makes sense, and then you will build out 2 simple Spring Boot Applications and build a native image from them.

Java Class Design: Primitive vs Reference Types

In this video I will discuss when to use a primitive vs reference type when designing Java classes. I will also answer some questions I have received around immutability and record types.

Upgrading your Java and Spring Boot apps with OpenRewrite

In this tutorial we will take a look at a project called OpenRewrite that allows you to automate your upgrades. We are going to look at the newly bundled plugin in IntelliJ for running your recipes right in your IDE. We will look at both a simple Java example and then how to upgrade a Spring Boot 2.7.x app to 3.0.

Upcoming Presentations

Last week I gave a really great presentation to (You know who you are) on Spring Boot 3 and I have a bunch of really great events lined up over the next month. As always if you’re ever interested in finding out where I will be next you can check out my speaking page.

Until Next Week

I hope you enjoyed this newsletter installment, and I will talk to you in the next one. If you have any links you would like me to include please contact me and I might add them to a future newsletter. I hope you have a great week and as always friends...

Happy Coding
Dan Vega
danvega@gmail.com
https://www.danvega.dev