Alex
Alex Passionate about inclusivity, sustainability, cycling and health. Software problems solver, aspiring writer. My opinions are my own. He/him

The Spec-tacular Game Show v2

The Spec-tacular Game Show v2

In March 2026, I co-presented the “Spec-tacular Game Show” at Observability with Adriana Villela in Amsterdam. This was the second instalment of the game show, with the inaugural show taking place in Denver at the OpenTelemetry community day in 2025. The idea behind the panel came from a conversation with Tyler Helmuth back in 2024 and was based on the game show Um, Actually. A series of incorrect statements is presented to the participants, and they must find the problem and correct the statement. We thought the format would be a great way to explore and discuss the intricacies of the specification, semantic conventions, and other important areas of OpenTelemetry.

Why

The first time we presented this panel, the participants and the audience were really engaged. Not only were the participants able to correct most of the statements, but they also provided good context and reasoning for why things are the way they are in the specification. Most of the time, standing up in front of an audience means getting little feedback from the crowd, but with this panel, it really felt as though every person in the audience was paying attention. We thought it would be cool to do it again. Aside from educating attendees about the specification, it was also a great way to have fun with the community. No one can know everything about the specification. By giving people more context about it, we were hoping to attract more attention to the specification and increase contributions to the project. It took a lot of work to produce this event, and I wanted to give folks a glimpse of the work behind the scenes

Finding panelists

The process began with the submission of the panel to KubeCon and to Observability Day in Europe. This presentation was a bit different than others, in that the participants wouldn’t know what they would be talking about until the day of. This required a high level of trust from the panelist and a commitment to being prepared for whatever was going tohappen. Thankfully, Marylia Gutierrez, Pablo Baeyens, and Tyler were eager to jump into the unknown. We wrote up the proposal and gathered some feedback from folks who have been involved in the review process in the past. We specifically wanted to call out that the goal of this panel was to bring the community together and educate newcomers. Then we all played the waiting game until the day KubeCon and Observability Day announced the events schedule, and we were in!

For the first occurrence of the show, I was inspired to fabricate buzzers using buttons that I connected to a Raspberry Pi with a breadboard extension. I promised my original co-host that if our submission was accepted, I would put together a scoreboard and possibly podiums. Now that we were going to present once again, it was time to deliver on that promise.

Scoreboard

It took me a while to figure out what I wanted to use for the scoreboard. There are so many options out there, it’s a bit overwhelming. After much research and deliberation, I settled on a 16x16 matrix of individually addressable WS2812 LED lights. I bought a pre-soldered panel, as my soldering skills are non-existent at this point, and connected it to an ESP32 microprocessor running MicroPython. As I use VS Code for most of my programming, I tried using it to develop the code I needed for this project. However, the extension for connecting to the ESP32 on MacOS never worked the way I expected it to, and I switched to Thonny IDE instead. It’s worth noting that my programming of the scoreboard started with a Raspberry Pi Pico, which I managed to fry along the way. Turns out I really should have taken some electronics 101 courses…

I could have used some other languages for embedding on the ESP32, and I did start with a few C libraries running on it. But my previous experience with Python made it easier for me to hack on. I needed to be able to update the scores during the game, and a web server would make it easy to send an HTTP request to update the number displayed on the panel. I connected the ESP32’s to a travel router and gave each panel a static IP, which I made a note of for later use. The micropython firmware I used comes with a handy boot.py script that can be used to launch any application on startup.

diagram

The only thing left for all this to work was a way to update the score. My last resort was to use cURL to send HTTP requests each time the score needed updating. But with a bit of time to spare on my train into Amsterdam, building an application to improve the user experience for a yet-to-be-determined scorekeeper seemed like the right thing to do. I used the textual Python library to build a text-based user interface. The code was instrumented using OpenTelemetry of course. Now all I needed was a scorekeeper.

text-based user interface

Buzzers

The buttons worked well enough the first time around, but the buzzer’s audio wasn’t loud enough to be audible. Additionally, I ran out of time when writing the software running the game, and it was a bit janky. If you ever watch the first version of the show, I kept having to tap a keyboard on my laptop to ensure the SSH connection running the application wouldn’t be closed. This time, I updated the application to run as a service using systemd, which saved me from having to SSH into the Pi to run the game. During the first episode of the show, the 3.5mm output from the Pi was connected to the venue’s sound system, but it was not audible. This time, I brought my own Bluetooth speaker, which I tested at home, and hoped to connect a microphone to that, more on this later. Lastly, I updated the application code to initialize each button by lighting it up as a signal that the service was running.

Assembling a stand

Traveling to Amsterdam, I knew my bags would be really tight and, as a result, decided to build a stand with materials I could obtain once I arrived. I’d prototyped a really minimal stand out of cardboard and some duck tape. I figured once I was in Europe, I would look for the supplies and some scissors.

It turns out that this was harder to do than expected, due to reasons I arrived in Amsterdam around 5:30PM on Sunday, less than 20 hours before the presentation. By that time, I hadn’t quite figured out where I would find the supplies I needed, and I’d failed to procure any materials during my travel. The presentation was at 12:45PM the next day, so I had to hurry. A friend informed me that a grocery store was near the hotel, so I headed over as soon as possible. I quickly found cardboard, but looked everywhere to find tape, with no success. Thankfully, the helpful staff at the hotel had some on hand, and after dinner, I was crafting.

crafting

Real or halulu

A new segment of this episode of the show was “Real or halulu”. Contestants were presented with a series of functions, and they had to guess whether they existed in the specification or whether they were hallucinations. The last props assembled for this talk were 3 paddles that the contestants used to show their guesses. I put out a call to people I knew would be at the conference, and Mike Goldsmith answered, offering to bring ping-pong paddles from home to Kubecon. I printed ✅ and ❌ at home, used a juliet siser to cut them out, and stuck them on the paddles the morning of the presentation. A big thank you to Mike for not only bringing the paddles, but also agreeing to step in as the official scorekeeper.

show time

Show time

After all that preparation, the day of the presentation finally came. We were lucky to be scheduled for the timeslot immediately after lunch. This meant no one was presenting right before us, and we would have extra time for setting things up. At 11:45, I unpacked all the props and started connecting everything. The conference organizers and facilities crew immediately volunteered to help us. Within minutes, there were people running around with extension cords and duck taping a microphone to my speaker. Buzzers were being tested, scorekeeper was in position. It was a real team effort. With nothing but bowties left to sort out, we were looking good. The show started on time everything went as planned without a hitch thanks to all the help from everyone involved.