[javaone 2025] know your java

Speaker: Venkat Subramaniam

See the table of contents for more posts


Exercise 0 – warm up

  • How many years have you been doing Java

Exercise 1 – Collection’s remove

  • An ArrayList containing 1, 2, 3 becomes 1, 3 when call remove(1)
  • If you change to Collection<Integer> numbers = new ArrayList<>, what happens.
  • It is [2,3] because uses method on Collection, not on the ArrayList
  • “Code always does what you type and not what you mean”

Exercise 2: type inference

  • Exercise 1 but with var numbers = new ArrayList<>()
  • now it is [1,3] because var uses type on right which is ArrayList
  • Just because you like type inference doesn’t mean use it all the time. Determine when right thing to do

Exercise 3: Arrays.asList()

  • Arrays.asList(1, 2, 3)
  • Which of add/set are printed and what is in list?
  • add throws exception, set works so it is [1,2, 2]
  • Lesson: quit using asList. Use List.of instead

Exercise 4: forEach

  • .forEach(name -> upper.add(name))
  • worked until made one change
  • side effects is the problem (change was probably making it parallel)
  • forgot “it works on my machine”. better is “it failed on my machine”. Want it to fail on your machine instead of in prod
  • The lambda is not pure. A pure function is idempotent. Returns same result for same input regardless of how many times it is called.
  • A pure function does not emphasize anything outside it. It is ok to mutate; it’s like changing clothes. Just don’t do so in public; aka as a side effect
  • A pure function does not depending on anything outside that may possibly change.

Exercise 5: stream

  • int[] factor= new int[]1,2,3};
  • stream = numbers.stream().map(n -> n * factor[0]);
  • factor[0] = 0;
  • stream.forEach(System.out::println)
  • 000 because lazy evaluation

My take

This was cool. It wasn’t Venkat’s usual style. It was more interactive. He had a QR code to a Google form for each exercise so the audience could reply. That’s a great technique. If I ever have to present remotely about certifications, I’m going to copy it! It was interesting seeing the Google form results A lot of mixed results

[javaone 2025] Engineering a Modern Java Platform: Making Kubernetes Work for Java Teams

Speaker: Stephen Millidge

See the table of contents for more posts


In last 30 years

  • More devices – ex: smartphones
  • Containers
  • K8S
  • Cloud
  • Elastic Infrastructure

Modernization

  • Because Java so successful, a lot of of mission critical applications
  • 47% of apps need modernization.
  • Wouldn’t call legacy because they are running the business
  • Expensive to write from scratch and not a lot of benefit in general
  • Goal: Adopt new infrastructure
  • How; Lift and Shift
  • Why: Scalability and high availability, elasticity, rapid provisioning, software defined infrastructure, cloud migration
  • Most monoliths aren’t that big and can put on cloud intact. Don’t have to switch to microservices

Kubernetes

  • Helps with complexity of running at scale
  • Container Orchestration/Management Platform
  • “poor application server”
  • Goal: maximize uptime

Challenges for Java Developers

  • Context switching from Java code to managing K8S
  • Complex setup
  • High learning curve
  • Steps: upload jar/war, scan for config, compare config values, define config map/secrets, define container/service/pod, launch pod, setup DNS names, configure routing, request SSL cert, integrate/monitoring.

DevOps

  • Move Dev and Ops closer together
  • “The developers do ops”. Rare for ops person to do development

Platform Engineering

  • Offer developer platforms to help teams developer/deploy/manage apps
  • Focus on automation, self service and streamlined workflows to improve developer productivity and system reliability
  • EU is regulating software – supply chain rules

To create platform

  • Can build own
  • Buy from technology partner [he’s from Payara and made a comment about it being a vendor talk; I didn’t realize it was]

My take

Fun fact: he took the SCJP 1.0.2. That is a very specific version number.

The room was packed. He needed a bigger room. I wish he had gotten to K8S earlier in the session but was good once he got there. ( I think it was 12 minutes in or so). Then there was another 15 minutes that felt general at which point I stopped paying attention

Overall the session was fine, but it wasn’t what I was expecting.

[javaone 2025] Fallacies of Software Development

Speaker: Nathaniel Schutta

See the table of contents for more posts


Note: This is not a live blog. I took notes during the session and posted this after as I was expecting a phone call. Also, I missed the last 10 minutes for said phone call.

  • Architect as a service 
  • We like to reinvent the wheel
  • We take for granted people know what we know. Ex. New people haven’t heard of Gang of Four book
  • Answer to many things is it depends 
  • Often seems insignificant in the moment. Find out later matters. Patterns help with this 
  • Software has similarities. Got tired of putting a front end on a database   Will always be doing app modernization 
  • Learn from parents mistakes   Save time. 
  • Higher bandwidth conversation when use words like facade
  • Humans have patterns too
  • NIH. Not invented here. Not my idea 
  • Think can build better than off the shelf. Usually not true but sometimes is   Focus on differentiator.  Politics. Turf war. Jealous/budget
  • Meta work is more interesting than the work 
  • Some people need spotlight. Arsonist firefighter  not a zero sum gene. Goal is to make better software. 
  • Some people missed sharing and golden rule in kindergarten 
  • Value if created something. People valued resale at 63% if built ikea item 
  • Dangerous “that’s how we’ve always done it”. Counter with asking if has to be that way 
  • Status quo is free. What does it cost. Opportunity cost?
  • Are customers proud of hand rolled project 
  • Wouldn’t get on a plane if no maintenance in last year. 
  • Great presenter. Visuals. Quotes. Few words per slide 
  • Sunk. Cost fallacy. I had pizza for lunch. Might as well have an entire cake for dinner 
  • Ok to ask why something is. New hires will notice. Others used to seeing it 

My take

I’ve seen him speak before and he is excellent. Good visuals/few words on a slide/excellent pace and storytelling