# Foojay Podcast #66: Let's Talk About Java Code!

> Foojay Podcast #66: Let's Talk About Java Code! Diving into a few Foojay blog posts...

- URL: https://foojay.io/today/foojay-podcast-66/
- Published: 2025-02-11
- Authors: Frank Delporte, Igor Kulakov, Maximillian Arruda, Rijo Sam, Wim De Troyer
- Categories: Java, Podcast, Spring


In this Foojay podcast, we dive into a few articles that were published recently and focus on code.

* Igor Kulakov of JetBrains gives us his insights into the tool he created to find duplicate content in documentation.

<!-- -->

* Rijo Sam explains how you can generate real random values and how he created a train departure display.

<!-- -->

* Maxillian Arruda explains in a very detailed post the different ways to construct a complex Java object.

<!-- -->

* And we start with Wim De Troye about the code changes he had to do in a project that got upgraded from Spring Boot 2 to 3.

## Video

{{< youtube IB7drozkKUk >}}

## Podcast Apps

You can listen and subscribe to the Foojay Podcast on:

* [Spotify](https://open.spotify.com/show/6CpTfgn9LirzJGAtc4ICdQ)
* [Apple Podcasts](https://podcasts.apple.com/be/podcast/foojay-io-the-friends-of-openjdk/id1652281304)
* And most others...

## Guests

* Wim De Troyer
  * <https://www.linkedin.com/in/wim-de-troyer-40647b130/>
* Maximillian Arruda
  * <https://www.linkedin.com/in/maxarruda/>
* Rijo Sam
  * <https://www.linkedin.com/in/rijosam19/>
* Igor Kulakov
  * <https://www.linkedin.com/in/inspector-patronum/>
  * <https://x.com/flounder4130>

## Links

* <https://foojay.io/today/the-proper-way-to-define-configuration-properties-in-spring/>
* <https://foojay.io/today/make-the-life-of-your-developer-clients-easier-with-smart-builders/>
* <https://foojay.io/today/pseudorandom-number-generator/>
* <https://foojay.io/today/crafting-your-own-railway-display-with-java/>
* <https://foojay.io/today/duplicate-finder-for-text-requirements/>

## Content

00:00 Introduction of the topics and guests

00:55 Wim De Troyer  

03:27 Pro or contra Lombok?  

06:09 BeanValidation as part of the solution  

07:40 Generating a config JSON file

08:50 Maxillian Arruda  

09:19 What is a complex object?  

12:09 Using records to simplify object creation  

14:48 Telescoping constructors  

16:08 Static factory method  

19:09 Builder pattern  

21:00 The risks of rewriting a project  

23:00 Thread safety in object creation

27:53 Rijo Sam  

29:07 java.util.Random is not fully random...  

30:20 About SecureRandom, seeds, and blocking algorithms  

34:16 Vaadin railway display  

37:43 Getting railway data from an open API  

38:44 It's a PET project together with Rijo's partner Ancy  

40:22 Runs on a Raspberry Pi  

41:18 The next project...

41:34 Igor Kulakov  

43:02 DRY principle in documentation  

43:37 How the tool works an integration in JetBrains products  

44:54 Test-first approach in the project  

47:10 Not using AI (yet) to avoid extra cost, local systems could be integrated  

48:22 Input data the tool can handle  

49:14 Highlights of the blog (and following) post(s)

54:35 Outro

