Dec 2 2025
Even the strongest safety properties implemented in today’s top databases are not enough to prevent data loss or corruption in all scenarios. We have learned to rely on mechanisms such as serializable ACID transactions, but they are not bulletproof. Let’s explore some issues that can come up when we no longer focus just on the database’s perspective, but zoom out and consider our entire system.
Dec 2 2025
Are you looking for a way to extend the capabilities of LLMs with your own tools?
Wondering how to run an MCP (Model Context Protocol) server on the JVM and make it available directly in Copilot?
Curious about how to expose custom business logic to AI models using the latest Spring AI features?
If you want to see how to quickly set up such an integration and test it locally, this guide is for you.
Nov 24 2025
Disclaimer: Written by Human Intelligence. Human Intelligence can make mistakes, including about people, so double-check it.
Nov 12 2025
It’s 6:00 AM on a dark, cold December morning. For many, the only motivation is the first cup of coffee. For me, it’s the quiet, thrilling
anticipation of a gift about to arrive. My screen glows in the dark, not with work emails, but with the day’s new puzzle from the Advent of Code. As a Senior
Test Automation Engineer, my career is built on a foundation of structure, quality, and a healthy obsession with finding flaws before they become
problems. As a Christmas enthusiast, I believe the season is about joy, tradition, and persistence. Most people would see these two worlds as separate. I
discovered they are the secret ingredients to a top-10 finish in the world’s most beloved coding challenge.
My 7th place finish in 2024 wasn’t a holiday miracle — it was the result of a “Test-Driven Christmas”,
a methodology that fuses professional discipline with festive passion. This guide will break down that approach and show you how a tester’s mindset can help you
master the daily puzzles and embrace the true spirit of the event.
Nov 6 2025
Integration with external services, regardless of their type, is the backbone of modern microservices architecture.
The era of huge monolithic applications with a single database is over.
Today, implementing even a small business process requires cooperation with other services.
Oct 28 2025
Have you ever found yourself in a situation where a small change in the code breaks tests in a completely different, seemingly unrelated part of the system? Or
maybe you‘ve inherited a test suite that is slow, hard to read, and nobody wants to touch it? At Allegro, we believe that good tests are
the foundation of high-quality software. In this article, we’d like to share some practices that help us write tests that are not a burden, but a real asset.
Oct 1 2025
I once spent an hour debugging AI-generated code that insisted on using a method that hadn’t existed in a library for three years.
Like many developers, I’ve been on a rollercoaster with AI coding assistants.
One moment they generate flawless code; the next, they’re confidently hallucinating.
After many trials, I’ve landed on a structured workflow that brings predictability and power back to the developer.
This isn’t about finding one “perfect prompt.”
It’s about creating a universal, repeatable process that uses specialized AI agents to guide collaboration.
The goal is to augment your skills and let you focus on architecture, not just have the AI write code for you.
Sep 12 2025
This is a summary of the JavaZone 2025 conference I attended in early September. It’s a conference focused on developers that I enjoyed and highly recommend.
Aug 6 2025
Have you ever wondered what happens with the variables you define in your Golang (Go) programs? Do they exist forever, or are they recycled at some point?
Where do they live in memory and how are they managed?
Jul 14 2025
In the previous post - part 2, we covered more common Gradle mistakes and how
to fix them. In the last part of this triplet, we will share our favorite Gradle plugins that can help you avoid some of the mistakes we discussed in the
previous posts!
May 27 2025
Have you ever struggled to identify which REST API is being tested in your integration tests?
In this article, you’ll learn a clean and readable way to call REST APIs within your integration tests.
The goal is to make the WHEN section of the test clearly show which API is called and in what context, while hiding all technical details.
May 19 2025
Training Machine Learning models on big data isn’t just about fitting the model itself — it’s about efficiency at every stage
of the process. While much attention is given to optimizing model training itself, the earlier phases can be just as, if not more,
critical to the overall performance. In this article, we take a deep dive into what happens before we actually invoke model.fit(),
focusing on the data pivoting stage. We are taking you on a journey through various pivoting solutions, exploring both pitfalls and interesting optimizations.
The goal is simple: make this process highly efficient — in terms of processing time and memory usage. So, buckle up!
May 5 2025
In the previous post - part 1, we covered common Gradle mistakes and how
to fix them.
After a review and feedback from the community, we decided to extend the list with more tips and best practices.
Mar 7 2025
In this blogpost we want to introduce the topic of using a Large Language Model (LLM) as an evaluator — a novel approach to tackling the complexities of evaluating advanced machine learning systems, particularly in tasks like Automatic Summarization, Text Generation, and Machine Translation, where traditional metrics struggle to capture nuances like cross-lingual accuracy and bias detection.
Feb 6 2025
This article discusses the dual-use dilemma of AI, focusing on China’s approach
and the challenges of balancing innovation with security risks, particularly the
blurred lines between civilian and military applications.
Dec 20 2024
In this article, we want to share our journey of searching for optimizations in one of Allegro’s main microservices: opbox-web. You’ll read about the issues we had to deal with and how we managed to overcome them — together with a few surprises along the way and even one golden rule broken.
Dec 19 2024
Many companies face the challenge of efficiently processing large datasets for analytics.
Using an operational database for such purposes can lead to performance issues or, in extreme cases, system failures.
This highlights the need to transfer data from operational databases to data warehouses.
This approach allows heavy analytical queries without overburdening transactional systems and supports shorter retention periods in production databases.
Dec 11 2024
When we think about the Circuit Breaker pattern, we instantly associate it with the HTTP client. Just make some annotation or wrapper and proceed with coding.
In this article, I will encourage you to use this pattern to resolve business problems.
Based on a live example from Allegro I will show you how to use the implementation of CircuitBreaker from Resilience4j library for cases other than HTTP calls.
Nov 20 2024
As part of Allegro Hacktoberfest celebrations, Andamio Task Force (the team responsible for Andamio, a set of common libraries used by most JVM projects at Allegro) posted the
following message on our social platform…
Oct 7 2024
Did you know that in October this year, DRY principle will celebrate its 25th anniversary?
It was proposed by Andrew Hunt and David Thomas in The Pragmatic Programmer book in 1999. 25th birthday is quite a good reason to celebrate, isn’t it?
At least, it’s a good opportunity to bring this principle back into the spotlight and to discuss how to use it properly.
Sep 10 2024
At Allegro, we continuously improve our development processes to maintain high
code quality and efficiency standards. One of the significant challenges we
encounter is managing code migrations at scale, especially with breaking changes
in our internal libraries or workflows. Manual code migration is a severe burden, with over
2000 services (and their repositories). We need to introduce some kind
of code migration management.
Sep 4 2024
In one of our core services, the execution of a single unit test took approximately 30 seconds,
while a single integration test ranged between 65 and 70 seconds.
Running the entire test suite took circa 6 minutes.
Aug 26 2024
Hi, I am Magda and I will tell you a story about coming back to work after a break of 21 months and 2 days. Everything here will be a subjective perspective about my experience.
Aug 5 2024
Are you, as a test automation engineer, tired of Selenium’s flakiness? Are you seeking a better tool to automate your end-to-end tests? Have you heard of
Playwright? Perhaps you’ve encountered opinions that it is only worth using within a Node.js environment. I have. And as a tester, I decided to verify if
this is true. If you’re interested in the results, I encourage you to read the following article.
Jul 26 2024
This article is a case study of how we improved stability in our critical application.
It’s mostly a technical analysis of what happens in fresh Java based instance,
how JIT Compiler toyed with us at application start and how we learned to control it.