MongoDB Server Timeout: When Client Timeouts Aren't Enough

Discovered why a query ran for 14 hours on MongoDB server despite client timeout: missing server-side timeout configuration. Solutions for MongoClientSettings.

JPA Delete Queries and Optimistic Locking: Why Batching Fails

Discovered why JPA deleteAll wasn’t batching: @Version fields force entity loading for optimistic locking. The fix: explicit @Query annotation.

Fixing Tracing Propagation in Spring WebFlux: A One-Line Solution

Upgrading to Spring Boot 3.2 revealed tracing issues in a WebFlux service. A single line of code fixed broken span propagation and improved debugging.

90% of distributed traces observability gone after Spring Boot upgrade

After upgrading Spring Boot version to 3.3.1 we noticed that 90% of our distributed tracing in our observability tool were gone. In this post we tell the story

Modified: November 13, 2024 · Created: July 17, 2024 · 4 min · João Vieira (JV) · Software Engineering

How upgrading from Spring Boot 3.2.5 to 3.3.1 broke our object mapper

After upgrading Spring Boot from version 3.2.5 to 3.3.1 we started to have a serialization issue with the Optional class. Check how to fix it in this post

Modified: November 13, 2024 · Created: July 15, 2024 · 2 min · João Vieira (JV) · Software Engineering

Learnings from the book The Staff Engineer's Path

These are my learnings from the book The Staff Engineer’s Path: A Guide for Individual Contributors Navigating Growth and Change written by Tanya Reilly

Modified: February 1, 2025 · Created: May 16, 2023 · 6 min · João Vieira (JV) · Learnings from Books