EasingYou, dat ben ik: Jos Roseboom. Ik hou van automatisering — het geeft mij voldoening als het lukt om een machine een taak te laten uitvoeren die voor mensen moeilijk of tijdrovend is.
Als freelancer werk ik zowel in grotere teams als in organisaties waar ik de enige ontwikkelaar ben. Ik ben analytisch, nieuwsgierig en bijt me vast in problemen totdat ze zijn opgelost.
Die gedrevenheid breng ik mee naar elke opdracht. Als Java-backend developer help ik teams concrete problemen oplossen: van hardnekkige JPA/Hibernate-valkuilen die endpoints vertragen tot het aanpassen van een codebase naar een onderhoudbare modulaire opzet. Wat ik ontdek en leer deel ik graag op conferenties en JUGs (Java User Groups).
Technische diepgang gecombineerd met brede full-stack ervaring.
N+1-queries identificeren en voorkomen, LazyInitializationExceptions oplossen, de persistence context optimaliseren en geheugenbelasting verminderen. De bottleneck in de meeste Spring-applicaties zit in de persistence laag — en ik weet precies waar te zoeken. Dit is ook het onderwerp van een van mijn conferentietalks.
Backend-systemen bouwen met Spring Boot. Goede modulaire structuur bewaken met Spring Modulith. Heldere pakketstructuur die groei ondersteunt en circulaire afhankelijkheden uitsluit. Hier heb ik ook een conferentietalk over gegeven.
Naast een sterke Java-backend lever ik ook complete applicaties met moderne frontends, zoals ReactJS, Angular en htmx.
Ik help bij de selectie van een nieuw systeem vanuit technisch oogpunt - wat zijn de technische mogelijkheden en beperkingen? Vervolgens help ik met het migreren van data naar het nieuwe systeem én indien nodig met het ontwikkelen van maatwerksoftware voor de laatste paar procent functionaliteit die het pakket niet biedt — en ook niet zal bieden, omdat die functionaliteit geen waarde heeft voor andere klanten van de aanbieder.
MSc Informatica met minor Kunstmatige Intelligentie (Universiteit Utrecht). Achtergrond in NP-volledige beslisproblemen, complexiteitstheorie en combinatorische optimalisatie — zoals plannings- en roosterproblemen.
Freelance via EasingYou sinds 2013. Hieronder een selectie van relevante opdrachten.
Op een grote bestaande codebase heb ik het project getrokken om de bestaande horizontale opzet — gegroepeerd op technische functie (controller, service, repository) — te refactoren naar een verticale architectuur, gegroepeerd op onderwerp (zoals order, product, review). Met structure101 is de bestaande architectuur in kaart gebracht en het refactorpad bepaald. De uiteindelijke verticale slices worden bewaakt met Spring Modulith, zodat terugval naar de oude structuur onmogelijk is.
Backend performance in de persistentielaag: N+1-queries, LazyInitializationExceptions en persistence context-optimalisatie. Concrete impact: sommige endpoints werden meer dan 100 keer sneller. Applicaties die tijdens drukke perioden ophielden met reageren doorstonden een nog drukkere periode daarna fluitend.
Een testpipeline van ruim 22 minuten met 11 runners was een serieuze belemmering: langzame feedback, verstoorde deploys en soms bewust overgeslagen tests. Door een reeks gerichte optimalisaties — gedeeld Docker, een voorgevulde Liquibase-volume, een eigen buildimage en het groeperen van tests op Spring context — daalde de looptijd naar 200 seconden met 6 runners. Minder runners betekent ook minder wachttijd bij parallelle builds.
Meerdere opdrachten als fullstack Java-ontwikkelaar in teams met een Java/Spring Boot-backend en een Angular- of React-frontend. Ik beweeg me comfortabel tussen backend en frontend en ben gewend om samen te werken in een groter team.
Digitalisering van het aanmeldingsproces van een zorgaanbieder, een migratietraject naar een nieuw Elektronisch Cliëntendossier, een rapportagetool die data uit meerdere systemen combineert, en automatisering van de (voorheen arbeidsintensieve) maandelijkse facturatie via VECOZO (SOAP).
Volledige beheerapplicatie voor het registreren en bijhouden van opgeslagen items: altijd inzichtelijk waar elk item ligt en wat de bewegingshistorie is. De registratie vormt tevens de basis voor een correcte facturatie.
Roostermodule voor onderwijs gebaseerd op individuele leertrajecten — een NP-volledig optimalisatieprobleem opgelost met Simulated Annealing. Sterke basis voor zowel mijn algoritmische als Agile expertise.
Twee diepgaande talks die ik regelmatig geef op internationale conferenties en Java User Groups.
Performance Pitfalls in JPA and Friends
Hoe herken en voorkom je N+1-queries, LazyInitializationExceptions en onnodige geheugenbelasting in JPA en Hibernate? Deze talk geeft concrete handvatten voor betere persistence performance in Spring-applicaties — compleet met live debugging en echte codevoorbeelden.
"Eye opening how a few small tweaks can dramatically reduce transaction times."
"Excellent talk. Great explanation about pitfalls, how to detect them, and what to do about them. Easy to understand and fun demo application."
"Great talk, I can use a lot of what I learned to better our teams code immediately."
"Deadpan comedy presenting isThisACriminal. Concise arguments neatly presented."
How package encapsulation simplified our code
Horizontale pakketstructuren — controller, service, repository — verbergen de echte domeingrenzen en maken grote codebases moeilijk te doorgronden. Deze talk laat zien hoe je refactort naar verticale slices, hoe Spring Modulith de pakketgrenzen bewaakt en geleidelijke adoptie ondersteunt, en welke tips helpen om afhankelijkheden te verminderen en de onderhoudbaarheid te verbeteren.
"Really liked to learn about Spring Modulith — this is just so much better. Will definitely start using it."
"Very good presentation that shows practical application. I came up with the same problems and solutions — I will definitely solve it that way too."
"Love it — it will help me to transform into a solution architect role."
"Nice talk. Mix of theory and practice."
Van regionale JUGs tot internationale A-conferences — sinds enkele jaren spreek ik regelmatig voor ontwikkelaars door heel Europa.