Category: Web
-

Why Your Code Isn’t Broken, But Your Data Is
Long time ago, I’ve seen a pull request for a price problem. The problem was a NullPointerException on an partially configured item with no price. The solution of the developer was a null check. The thing is: if the product is partially configured, with no price, it’s free. I don’t think the stakeholders will appreciate…
-

Optimizing Frontend Tables: Why Client-Side Processing Is Not a Strategy – Part 1
Every dashboard eventually needs the same thing: a table that handles thousands of rows without choking the browser. Here’s how I built a custom sortable, paginated Table component in React using MobX instead of reaching for a table library.
-

How to Synchronize Read and Write Databases in a CQRS Architecture
CQRS (Command Query Responsibility Segregation) enhances application scalability but poses data synchronization challenges. A project involving hotel availability necessitated the use of MongoDB for performant search capabilities. Asynchronous updates from PostgreSQL to MongoDB balance speed and consistency. Scheduled batch rebuilds help mitigate data drift, ensuring data accuracy and user experience.
-

Modern State Management in React: Stop Using Redux for Server Data
I’ve seen teams spend months building custom caching layers on top of Redux, essentially re-inventing a database in the browser. The real problem isn’t which state library to use — it’s that server state and UI state are fundamentally different concerns that require different tools. This post covers TanStack Query, Spring Data Projections, optimistic updates,…
-

Structured Logging in Java Microservices: SLF4J, MDC, and Distributed Tracing in Practice
I have spent more hours than I care to admit staring at logs that said “Process started” followed immediately by “Error: null.” A logging strategy is not about making your console look active — it is a forensic requirement for production survival. If your logs don’t provide a clear path to the root cause of…
-

Why I Stopped Calling Myself a Full-Stack Developer
The term “Full-Stack Developer” has become a catch-all that often masks the true value of an experienced engineer. After 20 years in the industry, I’ve realized that my value doesn’t come from knowing how to write a useEffect in React or a Stream in Java. My actual role is that of a Feature Expert —…
-

Why You Should Never Use Floating Point for Money
After years of maintaining legacy systems, I have seen more bugs caused by improper currency handling than by actual logic errors. Floating-point arithmetic is designed for scientific calculations where precision is secondary to range, making it fundamentally unfit for financial systems. When you use float or double, you are essentially gambling with rounding errors that…
-

Optimizing Search Performance with CQRS: Relational Writes and NoSQL Reads
Most developers start with a single relational database. It works well until your search requirements grow beyond simple primary key lookups. Once you introduce complex filtering, full-text search, and high-concurrency read patterns, that ACID-compliant relational engine starts to crawl. The solution isn’t a bigger server — it’s a different architecture.
-

Granular Authorization in Spring Boot: Beyond Role Checks
Picture this. You were planning a beautiful day, but your product manager sprints to your desk at 9 AM. There’s a “minor” data leak. A junior accountant in the Berlin office just discovered they could view the CEO’s payroll details by changing a userId in the URL. You look at the code. There’s a glorious,…
-

Making Testcontainers Work with Lima on macOS
I switched from Docker Desktop to Lima a while back. Lighter, faster, no licensing headaches. For day-to-day Docker use it is seamless. Then I added Testcontainers to a Spring Boot project and the integration test started failing with the least helpful error message in the ecosystem: Could not start container / There are no stdout/stderr…
