Why I Don’t Use Mocking Frameworks and Why You Might Not Need Them Either
“I never use mocking frameworks like Mockito. Why? Either I have my test data under control, or I write the methods in a functional way.” When I say this, it usually provokes strong reactions. Mocking has become such a standard part of unit testing that it seems almost rebellious to suggest otherwise. But after many [...]
The Simon Martinelli Stack: A Pragmatic Approach to Full-Stack Java Development
In the fast-paced world of software development, developers are often overwhelmed by endless framework choices and architectural trends. Over the years, I have refined a stack that balances simplicity, efficiency, and maintainability. A stack that has consistently delivered success across projects of all sizes.
Goodbye Microservices, Hello Self-contained Systems
Microservices are not inherently bad. But they are not a one-size-fits-all solution either. In fact, for many business applications, they can introduce unnecessary complexity. In this post, I want to show you an alternative architecture style: Self-contained Systems (SCS)—an approach that has helped us successfully modernize large enterprise systems with less pain, fewer dependencies, and better [...]
Using java.time Classes with JAXB
JAXB (Jakarta XML Binding) is a popular way to bind XML schemas to Java objects. However, out of the box, JAXB doesn’t support the modern Java 8+ java.time API like LocalDate or LocalDateTime. It still defaults to javax.xml.datatype.XMLGregorianCalendar. In this post, I’ll show you how to configure JAXB and the jaxb2-maven-plugin to generate Java classes [...]
Eliminating Waste: The Cornerstone of Lean Software Development
Over two decades ago, Mary and Tom Poppendieck published Lean Software Development. In a series of articles, we will explore its principles and whether they are still relevant today. The very first principle they tackled, forming the bedrock of their framework, was deceptively simple yet profoundly impactful: Eliminate Waste.
How to Deploy a Vaadin Application as a WAR on Tomcat 11
If you want to run a Vaadin application on an external servlet container like Apache Tomcat 11, you need to package your application as a WAR (Web Application Archive) instead of the usual executable JAR. In this post, I’ll show you step-by-step how I did it.
Effortless Cloud Deployment of a Vaadin App with Virtuozzo
As a developer who values simplicity, automation, and data residency in Switzerland, I recently started using Hidora to host my Java application. In this post, I’ll show you how to, create an environment in Hidora and automatically deploy a Java app from GitHub.
Configuring the Entra Spring Boot Starter Behind a Proxy
I recently encountered a challenge when using the Spring Boot integration for Microsoft Entra (spring-cloud-azure-starter-active-director) behind a corporate proxy. It was a pain at first, but I solved the issue by customizing the RestTemplate used by the library. I’ll explain the problem in this post and share my implemented solution.
Dysfunctional Scrum: Why Many Companies Lose Agility and How Lean Software Development Can Help
Scrum is considered the most widely used agile framework. However, in many companies, it is applied not as a flexible framework but as a rigid process with numerous ceremonies. The result is often anything but agile: instead of rapid adaptability and customer value, processes, meetings, and tools take center stage. In this post, I want [...]
Securing Vaadin Applications with One-Time Token
Logging into an application should be simple for users but still safe and secure. Traditional logins with usernames and passwords work, but they can be inconvenient and sometimes risky if passwords are stolen. A one-time token login offers a solution—it’s both easy for users and secure.
Securing Vaadin Applications with Microsoft Entra
Many companies use Microsoft 365, so letting users log in with their Microsoft account is a good choice. This blog post shows how to secure your Vaadin applications using Microsoft Entra for authentication and authorization and explains how Karibu Testing must be configured.
Secure and Efficient Oracle DB Setup with Spring Boot and Testcontainers
Having one user for creating database objects (DDL) and another for application-level data operations (DML) has many benefits. It improves security, keeps things organized, and makes maintenance easier.