Intro

Since 2015, GoLab is one of the oldest and most renowned conferences about the Go Programming Language ecosystem in the world, attracting a large audience of Gophers from all over the globe.

My bad, I forgot to take a picture of the t-shirt 🤷

My bad, I forgot to take a picture of the t-shirt 🤷

In recent years, the organizers hosted some of the biggest names in the industry who have shared their insights and experiences with our attendees.

As a welcoming first impression, the venue was a beautiful hotel in the charming city of Florence ⚜️, I just love this place and can’t add much more.

Notable choice, on 2024 GoLab was on the days after RustLab, while on the previous year the two events overlapped on the same location. A wise choice to avoid confusion and risk to lose your preferred talk!

Big kudos to the organizers as they choose to deliver a sustainable conference: plant a tree for each speaker, eliminate plastic, support sustainable travel and completely vegetarian lunch / snacks offering.

The three days of the schedule were packed, with the first one reserved for in-depth workshops. More than 400 people from all over the planet attended the conference, 30 selected speakers among world best companies (SUSE included).

Some Personal Highlights

a crowded welcome

a crowded welcome

As I was able to attend approximately half of the talks, I feel like I missed some very good ones; here you can have a quick recap of my favorites:

Day one

  • Russ Cox shed some light on a controversial but important topic: telemetry. How the Go team collects specific build metrics

    Russ Cox

    Russ Cox

  • Alessio Greggi from SUSE gave a presentation with a demo about automatic creation of SECCOMP profiles using many different tools, like strace and Harpoon.

    Alessio Greggi

    Alessio Greggi

  • Tomáš Sedláček got in the deep of design reasons for choosing sync or async I/O communication.

  • Roberto Clapis held a workshop on secure coding and talked about defensive approach especially when parsing unknown complex input data.

  • Alan Donovan explained how they managed to scale gopls (the Go Language Server) performance by an order of magnitude (10x).

Coffee Breaks and networking time!

Coffee Breaks and networking time!

  • Teea Alarto talked about a practical and effective approach on using generics (a relatively young feature of the Go Language) to write more robust and simple code.
  • Ron Evans made us travel through time with a “Back to the future” mood (12th november, hint hint): the keynote included tinyGo powered flying drones, video capture and streaming with facial recognition and a panel of evil LLM “talking heads” about humanity’s future; check out the video recording.

At the end of this long day, we celebrated the 15th year of Go with a proper Birthday Party! 🎂

tin-foil hat Ron Evans, moderating the automated LLM panel

tin-foil hat Ron Evans, moderating the automated LLM panel

Day two

Walking to the conference, on Arno’s bank in a sunny autumn morning

Walking to the conference, on Arno’s bank in a sunny autumn morning

  • Josephine Winter started with an ideal continuity from the previous day by showing her project to automate her pet’s daily routine using Arduino and TinyGo with a real-life example of opening a kennel door and releasing dog food.
Josephine just before presenting her dog

Josephine just before presenting her dog

  • Jan Mercl showed us how is possible to avoid cGo and create a pure Go sqlite using the C to Go compiler/transpiler (modernc.org/ccgo/v4) and the runtime support emulating the C libc (modernc.org/libc).

  • Davide Imola jumped in an adventure among the lands of Domain Driven Design.

Davide Imola

Davide Imola

  • Michele Caci engaged us with his passion for box games, particularly Ticket to Ride, and used it as a cue to give us a review of graph theory.
playing Ticket to Ride in Go

playing Ticket to Ride in Go

  • Federico Paolinelli gave an overview of the tools Go offers out of the box for unit testing our applications and proposed a set of new techniques to write more coherent and understandable tests that fit well in a Go project.
fundamentals about Go tests

fundamentals about Go tests

  • JesĂşs Espino delivered a very deep and low level detailed analysys of a Go ELF binary, the purpose of each section and how to reduce the size of our binaries.
  • Takuto Nagami talked about his pure-go resigif library to resize animated gifs, achieving significant performance improvement over classic tools like imagemagick.
resizing animated GIFs without external tools

resizing animated GIFs without external tools

  • last but not least, there was even time for many interesting lightning talks…
Otter for frontend development

Otter for frontend development

Takeaways

  • Go’s balance of legacy and innovation really struck me. Seeing how it’s matured while staying true to its core principles is inspiring. It’s a testament to the language’s design and the community driving it forward. This makes me even more excited to see where Go is headed next!
How was Go 10 years ago?

How was Go 10 years ago?

  • The Go community is truly something special. Meeting so many passionate and helpful people was a highlight. It reinforces the idea that a language is more than just syntax; it’s about the people who use it and build amazing things together.

  • One of my biggest takeaways was diving deep into Go’s testscripts. They offer such a powerful way to not only test code but also to document examples and usage patterns. I’m definitely going to be integrating testscripts more into my workflow.

  • The lightning talks were a goldmine! The concept of using command context to cancel long-running commands really blew me away. It’s such an elegant solution to a common problem, and I can’t wait to experiment with it in my own projects.

See you soon!

See you soon!