Jago de Vreede
Developer at TenneT
Arnhem, The Netherlands
Actions
Jago is a full-stack software engineer at TenneT, as a software engineer he has seen a broad-spectrum of projects. He also likes to take Java to the extreme and do things with are normally not done with Java, like playing an automated guitar. He is passionate about his work and likes to share his knowledge and has therefore spoken at conferences worldwide.
Links
Area of Expertise
Topics
3 years of Quarkus in production, what have we learned?
Quarkus has grown in popularity in the last years, but what’s it really like to use it in large-scale, real-world business projects? In this session, we’ll move beyond the basics of "Hello World" to explore how to build enterprise-level applications with Quarkus efficiently.
In this talk we will set up a multi-module project, incorporating integration tests and addressing the challenges with build times, while maintaining a high development velocity. Next, we’ll tackle an upgrade scenario and splitting the application into multiple microservices. Along the way, we’ll share hard-earned lessons, including what to avoid.
At the end of the talk, you should have a good understanding of how to efficiently set up a “big” enterprise project with Quarkus and the confidence to get started.
Spring Boot vs Quarkus the ultimate battle!
When you’re building (micro)services, you have lots of framework options. Spring Boot is no doubt a popular choice. But there’s more! Take Quarkus, a framework that’s considered the rising star for Java.
Both Spring Boot and Quarkus have their positives and negatives, so let's compare the 2, by coding a couple of common use cases in a not so common format in Spring Boot and Quarkus.
After this talk, you’ll be ready to start with Spring Boot or Quarkus yourself and know when to select Quarkus or Spring Boot.
Java developer-friendly frontends: Build UIs without the JavaScript hassle
Have you ever needed to build a UI as a backend developer but didn’t want to dive deep into JavaScript frameworks? Sometimes, all you need is a straightforward way to display and interact with data. So, what are the best options for Java developers?
In this talk, we’ll explore three popular tools that make it easy to build UIs in a way that suits backend-focused developers:
HTMX for enhancing static HTML pages with dynamic interactions without heavy JavaScript,
Vaadin for full-stack applications entirely in Java with minimal frontend skills, and
JavaFX for creating Java-based UIs with drag-and-drop simplicity.
We’ll build the same UI in each technology, comparing the developer experience. At the end of the talk, you’ll be better equipped to choose the best UI technology for your next project.
Building a native multiplatform SDKMAN in JavaFX
SDKMAN is one of the most popular ways to install/upgrade Java or other build tooling on your system. It works great from the command line, but what if you could bring its power to a graphical interface? And what if it worked seamlessly on Windows too?
In this talk, we will use SDKMAN as an example of how to build a multiplatform native application using JavaFX for the UI and GraalVM to compile native images.
We will dive into the process of creating native apps with GraalVM, distributing them with GitHub actions, and identifying some limitations of native Java applications. Plus, we’ll explore alternative methods for shipping native apps across platforms.
By the end of this session, you will have practical insights on how to build and distribute native apps with or without JavaFX.
From Shared Code to Shared Responsibility: Scaling Inner-Source in Java
Inner-source makes it easy for teams to share code, but governing shared libraries across many services becomes complex quickly. In our case, more than 60 event-driven microservices rely on many of the same internal libraries and architectural patterns. As APIs evolve, even small changes can impact dozens of downstream services.
Semantic versioning helps communicate the impact of changes, but in practice it requires discipline. When multiple teams depend on the same libraries, unclear versioning or poorly managed breaking changes can quickly slow down development. That's why we opted to automatically enforce semantic versioning.
We also explored alternatives such as Java monorepos, which allow APIs to remain stable while implementations evolve, though this approach has its own trade-offs.
When breaking changes are unavoidable, documentation alone is rarely enough. Using OpenRewrite, we automate migrations so upgrades become repeatable instead of manual work across many repositories.
In this talk you will learn practical dos and don’ts for scaling inner-source, how to apply semantic versioning effectively for shared libraries, and how automated refactoring can reduce the cost of breaking changes.
J-Fall 2023 Sessionize Event
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top