
We attended Sweden vs Tunisia at Estadio BBVA in Monterrey aka the most beautiful stadium in the world home of the best team in the planet. Lots of goals: the game ended 5-1 to Sweden.







We attended Sweden vs Tunisia at Estadio BBVA in Monterrey aka the most beautiful stadium in the world home of the best team in the planet. Lots of goals: the game ended 5-1 to Sweden.






I was incredibly lucky to kick off the 2026 FIFA World Cup by attending the opening match on Thursday. Getting to the Azteca was a nightmare. Everything else was incredible: the stadium, the crowd, the company, the cheers, the view, the opening musical show with the exception of the that 🤮 band from Guadalajara. The game itself was alright – Mexico should have scored one more and that undeserved red card to Montes may prove costly; but three points is three points.











Few people know this, but in every single last polla, entering the scores for the matches was a manual process. When I tell this to people, they find it hard to believe.
It wasn’t that terrible. A few friends volunteered to help and were given special access to do that. And it was almost guaranteed that at least one of us was watching every match anyway. No big deal.
But of course, beyond the manual work, it was always a technical challenge for me to be able to automate it. In 2022 I got very close, but didn’t quite finish it.
I am happy to say that for the all-new, microservices-based Polla 2026, Automatic Score Updates functionality was just pushed to the server!

I am using football-data.org to as the data source. The implementation is as simple and stateless as I could make it. Seems right.
Of course, the big problem is that I cannot test it for real before the FIFA World Cup starts. And once it starts, should anything goes wrong, I won’t be able to do anything about it until at least several hours later.
Well, I will be able to pause it, as you can see in the screenshot. This is why I added the ability to pause it.
Hope it goes well. 🤞
It’s hard to believe that 20 years have passed since I wrote and ran the first polla. This post goes into the technical details of the application.
The first polla was a monolithic PHP application written from scratch. Instead of using a database and in order to keep things simple, it stored all data in text files (bad idea). I didn’t even use source code control (bad idea). Regardless, it worked well and was a big success.
For each subsequent polla, I took the last polla’s source code as a starting point and make large improvements. Using a database, responsive design (the first polla predates iPhone!), invitations, filters, tournament winners, and lots of small tweaks all over the place.
But one of the reason these things even exist is that it allows me to learn to use things that I don’t get to play with in my day job (I’m a software engineer, but I don’t work on web-related things). Making another PHP monolithic application in 2026 would not teach me anything as was no fun. Thus, I took on the giant project of rewriting Polla 2026 from scratch during my scant free time using modern technologies and best practices. Insanity? Yes.
This is a high-level description of the new polla, which uses individual services orchestrated using Docker Compose:
I am also relying on a few external services, many of them I just learned about and all of them very cool:
This was a huge undertaking that required me to learn a bunch of neat things. It goes without saying that there is no way in hell I could have pulled this off without the help of GitHub Copilot and its excellent integration with VSCode. It’s a massive accelerator! I was able to rewrite the full system using things I never used before, and add many improvements (not finished yet) that were not part of the previous pollas nor of my original plan. The speed at which changes can be made makes it almost addictive. Visually, it looks better than ever. I am super pleased how things are turning out.
I hope all the effort is worth it, I don’t run into major bugs, and lots of my friends join in the fun.

FIFA World Cup 2026 is here, and you know what that means: a new Polla! Following the massive success of Polla Qatari, this new polla is a brand new application hopefully will be bigger than ever.
For those keeping track: The first polla was 20 (!) years ago. Madness. And many of you have played in all of them. Thank you! Can’t wait for this one.
The last time I ran the Cap10k was in 2018 (2019 was cancelled).
After that, my bad knee got more messed up, I had surgery, and the doctor told me to quit running.
Eight years later, and not through my own initiative, I was again signed up for the race. Except this time my kids are running with me for the first time and – not only did I not train – I have literally not run in years.
With the excuses out of the way…

Historical times:






I happened to be in Mexico City the weekend of the re-opening of the Azteca Stadium prior to the World Cup 2026, for the México vs Portugal friendly. I happened to be sitting very close to Gianni Infantino. So of course I got close to him to snap a photo.
A week later, my buddy Chore sent me this screenshot:

While I am no longer featured in FIFA’s front page, the note persists. Unfortunately they cut off the top of my head.

This is the photo we snapped from a slightly different angle.




Last night in San Antonio. Played for almost three hours. Legend. I wish I had gotten seats closer to the stage.


My team Monterrey qualified for the FIFA Club World Cup happening as we speak in the US, and it’s the first one with the 32 team format. It all lined up so that we could watch three matches all at the Rose Bowl stadium in Pasadena, CA with some of the world’s top clubs.
Four Kirsch boys made it: Moi, Ilán, Ari, and myself. Here’s proof:













Yes, we also did a bunch of Los Angeles things. But those are not for this post.
I went to NI Connect in late April, which was held for the first time in Fort Worth.
Notably for someone like me, a cool action shot of me made it to the NI Connect Fort Worth Session Content page. Scroll to the bottom to see…
