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.
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
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
Alessio Greggi from SUSE gave a presentation with a demo about automatic creation of SECCOMP profiles using many different tools, like strace and Harpoon.
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).
- 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! 🎂
Day two
- 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.
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.
- 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.
- 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.
- 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.
- last but not least, there was even time for many interesting lightning talks…
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!
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.