<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://blog.allegro.tech/feed.xml" rel="self" type="application/atom+xml" /><link href="https://blog.allegro.tech/" rel="alternate" type="text/html" /><updated>2026-04-28T13:02:02+02:00</updated><id>https://blog.allegro.tech/feed.xml</id><title type="html">blog.allegro.tech</title><subtitle>Welcome to our technology blog. We use Open Source solutions on a daily basis here at Allegro. Why not work on our karma and give something in return?</subtitle><entry><title type="html">Thoughts on the Boiling Frogs 2026 conference</title><link href="https://blog.allegro.tech/2026/04/thoughts-on-boiling-frogs-2026.html" rel="alternate" type="text/html" title="Thoughts on the Boiling Frogs 2026 conference" /><published>2026-04-28T00:00:00+02:00</published><updated>2026-04-28T00:00:00+02:00</updated><id>https://blog.allegro.tech/2026/04/thoughts-on-boiling-frogs-2026</id><author><name>piotr.bakalarski</name></author><category term="tech" /><category term="conference" /><category term="boiling frogs" /><summary type="html"><![CDATA[On the 21st of March I traveled to Wrocław for the Boiling Frogs conference — my first in a while. I expected a day of technical talks. What I got instead was a surprisingly philosophical look at what it means to be a software engineer right now: why we work, whether AI is coming for our jobs, and how many LEGO bricks fit in a tube.]]></summary></entry><entry><title type="html">Static code analysis in Kotlin — tools overview</title><link href="https://blog.allegro.tech/2026/03/static-code-analysis-kotlin.html" rel="alternate" type="text/html" title="Static code analysis in Kotlin — tools overview" /><published>2026-03-31T00:00:00+02:00</published><updated>2026-03-31T00:00:00+02:00</updated><id>https://blog.allegro.tech/2026/03/static-code-analysis-kotlin</id><author><name>mikolaj.wroblewski</name></author><category term="tech" /><category term="kotlin" /><category term="detekt" /><category term="static analysis" /><category term="code quality" /><summary type="html"><![CDATA[Recently in our team we decided that it could be beneficial for us to have a solution in place that would allow to automatically organise or at least verify the order of methods and fields in our Kotlin code.]]></summary></entry><entry><title type="html">How to stub external services in integration tests</title><link href="https://blog.allegro.tech/2026/02/how-to-stub-external-services.html" rel="alternate" type="text/html" title="How to stub external services in integration tests" /><published>2026-02-12T00:00:00+01:00</published><updated>2026-02-12T00:00:00+01:00</updated><id>https://blog.allegro.tech/2026/02/how-to-stub-external-services</id><author><name>piotr.klimiec</name></author><category term="kotlin" /><category term="testing" /><category term="integration tests" /><category term="rest" /><summary type="html"><![CDATA[In my previous post, I shared a way to hide technical boilerplate and make REST API calls more expressive within your integration tests. To further improve your tests, you also need a strategy for handling integrations with the “outside world.”]]></summary></entry><entry><title type="html">Battle-testing Lynx at Allegro</title><link href="https://blog.allegro.tech/2026/02/battle-testing-lynx-js-at-allegro.html" rel="alternate" type="text/html" title="Battle-testing Lynx at Allegro" /><published>2026-02-05T00:00:00+01:00</published><updated>2026-02-05T00:00:00+01:00</updated><id>https://blog.allegro.tech/2026/02/battle-testing-lynx-js-at-allegro</id><author><name>[&quot;wojciech.moczydlowski&quot;, &quot;tomasz.gebarowski&quot;]</name></author><category term="tech" /><category term="lynx" /><category term="mobile" /><category term="mbox" /><summary type="html"><![CDATA[How do you ship consistent, high-performance mobile UIs across iOS, Android, and Web - without slowing your teams down? For us at Allegro, this question quickly became a daily reality, forcing constant trade-offs between performance and iteration speed, native quality and cross-platform reach, flexibility and long-term maintainability. Along the way, it led us from our own internal solutions to an unexpected open-source challenger — and to rethinking how we build mobile interfaces at scale.]]></summary></entry><entry><title type="html">Starting a New Service: From Naming to Structuring the Project</title><link href="https://blog.allegro.tech/2026/01/starting-a-new-service-from-naming-to-structuring-the-project.html" rel="alternate" type="text/html" title="Starting a New Service: From Naming to Structuring the Project" /><published>2026-01-13T00:00:00+01:00</published><updated>2026-01-13T00:00:00+01:00</updated><id>https://blog.allegro.tech/2026/01/starting-a-new-service-from-naming-to-structuring-the-project</id><author><name>piotr.klimiec</name></author><category term="architecture" /><category term="tech" /><summary type="html"><![CDATA[This post describes how our team at Allegro started building a new service. We’ll go through the process step by step: first ensuring we have a clear understanding of the business process to implement, then choosing the service name, and finally setting up the project structure. By the end, you’ll see how to create a solid application skeleton that makes developing subsequent features straightforward and efficient.]]></summary></entry><entry><title type="html">The Seven Deadly Sins of Test Automation</title><link href="https://blog.allegro.tech/2025/12/testing-7-deadly-sins.html" rel="alternate" type="text/html" title="The Seven Deadly Sins of Test Automation" /><published>2025-12-22T00:00:00+01:00</published><updated>2025-12-22T00:00:00+01:00</updated><id>https://blog.allegro.tech/2025/12/testing-7-deadly-sins</id><author><name>malgorzata.kozlowska</name></author><category term="tech" /><category term="testing" /><summary type="html"><![CDATA[I’ve spent a significant part of my career building and maintaining test automation suites, and I’ve learned one thing for certain: a test suite that isn’t trusted is worse than no test suite at all. We’ve all felt that familiar dread of a CI/CD pipeline that’s constantly red, where the team spends more time debugging flaky tests than shipping features. If you’re a test automation engineer or a developer feeling the pressure of a complex and fragile test suite, this post is for you. It’s a confession, a guide, and a collection of hard-won lessons I’ve learned throughout my career on how to pull our test suites back from the brink.]]></summary></entry><entry><title type="html">Quickstart: Run an MCP Server on JVM and Integrate with Copilot</title><link href="https://blog.allegro.tech/2025/12/mcp-server-jvm-copilot-quickstart.html" rel="alternate" type="text/html" title="Quickstart: Run an MCP Server on JVM and Integrate with Copilot" /><published>2025-12-02T00:00:00+01:00</published><updated>2025-12-02T00:00:00+01:00</updated><id>https://blog.allegro.tech/2025/12/mcp-server-jvm-copilot-quickstart</id><author><name>tomasz.gryl</name></author><category term="tech" /><category term="ai" /><category term="mcp" /><category term="Copilot" /><summary type="html"><![CDATA[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.]]></summary></entry><entry><title type="html">Transactions Aren’t Enough: The Need For End-To-End Thinking</title><link href="https://blog.allegro.tech/2025/12/transactions-arent-enough.html" rel="alternate" type="text/html" title="Transactions Aren’t Enough: The Need For End-To-End Thinking" /><published>2025-12-02T00:00:00+01:00</published><updated>2025-12-02T00:00:00+01:00</updated><id>https://blog.allegro.tech/2025/12/transactions-arent-enough</id><author><name>arkadiusz.chmura</name></author><category term="tech" /><category term="databases" /><summary type="html"><![CDATA[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.]]></summary></entry><entry><title type="html">AI Between Progress and Responsibility - 3 Lessons from the World AI Summit</title><link href="https://blog.allegro.tech/2025/11/world-ai-summit-report.html" rel="alternate" type="text/html" title="AI Between Progress and Responsibility - 3 Lessons from the World AI Summit" /><published>2025-11-24T00:00:00+01:00</published><updated>2025-11-24T00:00:00+01:00</updated><id>https://blog.allegro.tech/2025/11/world-ai-summit-report</id><author><name>[&quot;krzysztof.przychodzki&quot;]</name></author><category term="conference" /><category term="ai" /><category term="ethics" /><summary type="html"><![CDATA[Disclaimer: Written by Human Intelligence. Human Intelligence can make mistakes, including about people, so double-check it.]]></summary></entry><entry><title type="html">Test-Driven Christmas — A Guide to the Advent of Code Mastery</title><link href="https://blog.allegro.tech/2025/11/test-driven-christmas.html" rel="alternate" type="text/html" title="Test-Driven Christmas — A Guide to the Advent of Code Mastery" /><published>2025-11-12T00:00:00+01:00</published><updated>2025-11-12T00:00:00+01:00</updated><id>https://blog.allegro.tech/2025/11/test-driven-christmas</id><author><name>malgorzata.kozlowska</name></author><category term="tech" /><category term="aoc" /><category term="christmas" /><summary type="html"><![CDATA[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.]]></summary></entry></feed>