Knowing Kafka theory is one thing — demonstrating it with working code is another. In this post, I walk through a project I built to capture the most important Kafka concepts in executable tests, using Spring Boot and an embedded broker. Each test encodes a specific behavior that I’ve dealt with in production and wanted to have as a reference. The full source code is available on GitHub . The…
Photo by NASA on Unsplash In 2019 I led the migration and performance work for our company-wide A/B testing platform — the system product teams use to run experiments and read assignment in production. This post is a concise case study: why downtime was unacceptable, what we found in pre-migration review, how we fixed blocking cache refreshes with Java and Guava , and how we rolled out to Google…
Photo by Brett Jordan on Unsplash I led the development and scaling of our transactional email platform: the system that sends every booking-related message to customers across our travel product. What began as a solution owned by a single team grew into a shared platform that multiple product teams rely on for transactional communications. This post is a high-level look at the product context,…
Photo by Caspar Camille Rubin on Unsplash 🎯 What is Kafka? Official definition: A distributed streaming platform for publishing, subscribing to, storing, and processing streams of events in real time. In practical terms: Kafka is a distributed messaging system that: Handles millions of events per second Stores events durably Allows multiple independent consumers Guarantees ordering within…
Photo by Luca Bravo on Unsplash I recently completed the migration of my Spring Boot example repository from Java 8 and Spring Boot 1.4.3 to Java 17 and Spring Boot 3.3.5. This repository is a popular example project on GitHub with 36 stars and 89 forks , serving as a reference implementation for developers learning Spring Boot best practices. This was a significant migration that involved…
Photo generated with ChatGPT In this post we’ll see how to integrate Google Sign-In (OAuth 2.0) into your website, from the configuration in Google Cloud to handling the callback in your backend. Prerequisites Google account A web project with a backend (for example, Node/Express, Java/Spring, Python/Flask) HTTPS in production (for local development we’ll use http://localhost ) Step 1: Create a…
Photo by Aerps.com on Unsplash The Model Context Protocol (MCP) is a powerful way to connect LLM services with external systems like databases, APIs, and filesystems. In this guide, I’ll show you how to set up MySQL with Cursor AI using MCP, allowing you to create, modify tables, and insert data directly through natural language prompts. What is MCP? Model Context Protocol (MCP) is a standardized…
Photo by Aerps.com on Unsplash It’s been over a year since I last posted on the blog, and the truth is that everything has changed a lot in a very short time — especially the way we, as software engineers, develop software. That’s why I’d like to talk about the five skills you should learn as a software engineer in the age of artificial intelligence. 1. Context Engineering We’re no longer just…
Foto de Alvaro Reyes en Unsplash I remember that afternoon at the office. It was Friday afternoon, and it was when the whole team would get together for a code review. Back then, we would go to the office, and the dynamics were different (you know what I mean). So, the way we did the code review was as follows: someone on the team would propose one of their classes to the rest of the team with…
Photo by Patrick Perkins en Unsplash In the dynamic realm of project management, the Kanban methodology stands tall as a beacon of efficiency, guiding teams through the complexities of task management. With eight years of personal experience under my belt, I’m excited to share with you ten indispensable principles that have revolutionized my approach to work organization and productivity. 1 -…