GoLab 2023: The Ultimate Review
Last week I attended GoLab in Florence. It was an honestly beautiful send off to 2023. Florence is a delightful location, and the conference made it even more magical. GoLab had an ambitious scope, but I believe the team behind GoLab were more than up to the task. The entire experience was refreshingly casual, and it always felt like there was something to do.
I’ll go into more deets later, but for now, welcome to my final collage of 2023. Because as they say ‘a picture is worth a 1000 likes on Instagram’ and I guarantee you all the fine folks I met are worth a million. Welcome to GoLab 2023: The Ultimate review!
The Hidden Heroes
The GoLab Team
So, what made GoLab an ‘ambitious’ conference? Well, first it wasn't just a single conference. RustLab was being held in the same venue, and the organizers included it for all who had a ticket to GoLab (and vice versa).
This meant there were 4 separate tracks to visit: two Go tracks, one ‘Geek’ Track and one Rust track. All of them were jam-packed with interesting topics and speakers. The Geek track specifically enabled there to be some unique flavors of talk that not only crossed languages, but tackled topics beyond a typical Go conference.
The GoLab Team impressed me with their focus on sustainability. There were many tweaks and considerations made throughout the conference to reduce its footprint. With the goal being to inspire the community towards taking action to protect the planet. To quote from the website, ‘Together, we can make a difference and create a better future for generations to come.’
Managing all of this couldn’t have been easy, but the team made it seem quite effortless. Speaking of the team, pictured above is not the entire team, but as many as could gather in the short time after I asked to take a photograph.
From left to right is: Andrea "Andy" Favilli - (Event Assistant); Ambra Verzucoli (Event Assistant, Photographer, Accountant); Mena Marotta (Event Manager); Luca Ottaviano (Sponsors Manager), Tommaso "Morgan" Cecinati (Technician) and Niccolò Pieretti (Editorial team, Talk manager).
Develer is the company behind the creation of GoLab and the idea was born from Mena Marotta and Matteo Bertini (not pictured) in 2015. If you’re interested you can read a lot more about the origins of GoLab and the team on the official website.
To all of you and everyone else who is missing from this lineup, thank you so much for putting GoLab together. As both a speaker, and an attendee it was an incredibly enjoyable experience.
This Cutie Patootie
Winner of this year’s ‘Best Programming Language Mascot Plushie’ has a new contender, but it’s going to be a tough battle because Bri’ish Gopher has ‘Sovereignty’ advantage.
Now before you get too jealous, they didn’t give ‘Sebastian’ out to just anybody like a portion of fish ‘n chips. No, this buoy and its two siblings are the only ones in existence. The organizers raffled one away to a lucky someone at the social and they gave the other two crabs to attendees who traveled sustainably to the conference. Anyone who used the train or other sustainable means was eligible to win.
This Ferris's* style is Vans Off The Wall #notsponsored. I do hope they’ll bring Sebastian and friends back for future events. Though, I may need to practise my swimming so I can cross the channel using no fossil fuels and have a higher chance to win. *Ferris is the name of Rust’s mascot, and it is the most important part of the language and the only thing you really need to know.
E-mazing Encounters
Alice Ryhl - There’s An Im-Rust-er Among Us
As mentioned above this was a two-in-one conference. GoLab and RustLab were in the same venue and you could visit any of the tracks across both, this meant I got to meet a few Rustaceans. Well, one Rustacean in particular.
Alice is one of the core maintainers of the widely used Tokio library ‘a runtime for writing reliable, asynchronous, and slim applications with the Rust programming language.’
Rust in the Linux kernel - was the name of her opening keynote for RustLab, which discussed the experience of, well, using Rust in the Linux Kernel. Something that was only really possible from late last year.
I could be recalling this incorrectly, my bad if I am, but when I asked what the significance of this would be Alice showed me a version of Android that was running using Rust. So maybe one day my phone could run on Rust too. Plus, as the primary language in the Linux Kernel area is C, by Rust entering the ring it may help to increase the number of people who want to work and experiment in that space. The more the merrier.
I also asked how one could get started in Rust, and Alice pointed me towards the official rust book. It’s literally an ‘official book’ for the language and available for free online. I’m used to languages having documentation, but I don’t think I’ve heard of any having an official book, so that’s pretty cool.
Roberto Clapis - Do I Really Need To Know About Security?
Safe By Construction - was a gem that took place inside the ‘Geek’ track. ‘Standing Room Only’ would be an understatement. It was quite the popular show. In this talk Roberto, who had formerly worked in Web Security at Google for 5 years, posed a question that I’m going to paraphrase incorrectly: Do software engineers need to know how to build safe and secure code?
Now the obvious answer would be ‘yes’. Protecting yourself from hackers is serious, so why shouldn’t engineers know how to prevent things such as SQL injection? Conversely, Roberto’s answer was, ‘they shouldn’t have to’, as the code we write should be safe and secure by default.
As in, I shouldn’t be able to write something insecure, by accident. If I want to create some insecure code, I should only be able to do it completely intentionally.
If engineers didn’t have to think about security in order to create secure code, then surely that’s better than requiring everyone to have deeper knowledge of this subject in order to avoid accidentally creating code that could cause a company to have all their data stolen/deleted by bad actors. But… how?
Well, if you have any interest at all in security, I would recommend giving this talk a viewing, as I’ve barely covered the content within the talk, just as the talk, in Roberto’s words, was ‘merely an introduction’ to the world of ‘writing secure code without even having to think about security.’
Daniel Antos and Damiano Petrungaro - Partners In Design
I bumped into these two just before Damiano’s talk - Exploring Domain Driven Design in Go. A delightfully interactive romp through best practices and design decisions for implementing Domain Driven Design in Go. It’s always a risk when, as a speaker, you choose to incorporate the audience into your talk, but Domiano handled it masterfully and it really helped keep me engaged with a topic I was less familiar with.
Daniel’s talk - Generating Code In Go, looked into the idea of encouraging good habits and improving developer experience through code generation. I unfortunately didn’t catch it, but I definitely want to see the recording as we used things like gqlgen at a place I used to work, but there were some other tools that were showcased within Daniel’s talk that I’m interested in checking out as well.
Raphael Amorim - GameBoy? I Hardly Know Boy
Bring GameBoy Alive In The Web With Rust And WebAssembly - caught my eye in the schedule, as I am a fan of Pikachu. The talk covered Rapheal’s journey into learning about the world of GameBoy emulation.
From the initial stages of research, to demos of a custom web and hardware-based game example that Raphael had created for the conference, this talk was thoroughly extensive and could act as an excellent primer if you have an interest in emulators or perhaps want to try the challenge of making one yourself.
Plus, as Rapheal mentioned, you don’t need to know Rust and WebAssembly to do this, those were just the tools he chose. There are GameBoy emulators that exist for almost any language out there. (There are more GameBoy emulators on GitHub than custom terminals, speaking of which check out Rio Terminal, built by Rapheal).
Laura Vuorenoja - Don’t Worry I’m Code Covered
Boosting Test Coverage for Microservices - was Laura’s talk, and it explored how Laura and her team refactored their testing pipeline. Why? Well, because there were some changes that occurred in Go 1.20, which introduced coverage profiling support for integration tests.
Some developers see code coverage as contentious as companies can sometimes use it as an ineffective blocker. However, code coverage can also be quite invaluable for finding crucial untested paths and for monitoring general software healthiness. As with most tools, how they’re used is usually the determinant factor in how good or bad they are.
Laura and her team’s new solution enables them to monitor their test quality and coverage better than they were before and the talk definitely worth checking out once the videos are available.
Roger Peppe - It’s Your CUE
Winner of the ‘Most Scenic Background’ goes to Roger Peppe. You may be familiar with the name as Roger is the co-author of ‘Get Programming with Go’, one of the few books recommended on the official Go website and he’s also a developer at Cuelang.org. As the lead figure in the ‘let’s go for a walk along the riverbank’ squad, I thank you Roger for what was a welcome break after I’d given my talk.
Roger’s talk - Go<<CUE: Shifting Go left with CUE looked at how the new CUE language could integrate with Go. If you're unfamiliar with CUE, quoting its own description it is ‘an open-source data validation language and inference engine with its roots in logic programming’. Or in ‘me’ terms, a way to bring static typing to configuration data, I think.
I’ve not yet dabbled with CUE myself, but it’s been fascinating to watch it grow as several of the current developers of CUE used to be heavily involved with London Gophers. So, you know, a bit of trivia there.
Daniel Martí - Go’s Main Man
Back to Back, CUE Bros. Daniel is a maintainer of CUE, and presumably works alongside Roger Peppe. If you’re unfamiliar with Daniel, he has been a prominent member and contributor to the Go community and language, as early as 2014.
Daniel’s talk, From zero to func main: initializing packages - looked at how long it takes for a Go program to reach and run the main() function and the variables that could affect it, as well as how to help speed this process up.
There was a fun example that showed that assigning regexp.MustCompile(“???”) to a global variable makes initialization an order of magnitude slower than if that variable was a function that returns the result of regexp.MustCompile(“???”) instead.
One odd note, in the speaker descriptions on the website it says Roger is a ‘Developer’ of CUE and Daniel is a ‘Maintainer’ of CUE. I don’t know what the difference is, but at this point it’s too awkward to ask.
Axel Wagner - Can You Travel Sustainably From Australia?
Another member of the ‘let’s go for a walk around the riverbank’ squad, was the radiant Axel Wagner. Do you see how it looks like the blue plushie gopher is wearing an Australian hat? Well, behind that blue plushie gopher is another blue cartoon gopher wearing an Australian hat! Why? Well, because Axel had just the previous week given a presentation at GopherConAU called Constraining Complexity in the Generics Design.
Axel has been an active member of the Go community both on and offline for many years. Funnily enough, although we didn’t fully recognise each other we had actually met before pre-pandemic. I don’t know if we actually had a conversation, but Axel was once a guest speaker at London Gophers, back in 2019. How time’s arrow flies.
Jannis Schnitzer - Pretty Fly for a Go Guy
The prize for ‘Most Stylish Shoes’ goes to Jannis. The final photographed member of ‘Team Riverbank’. We couldn’t go too far along it as we hit a slight snag in the bank and so we chilled and hung out for a bit, even saw a mushroom.
It was there in the picturesque sunset of not-Valencia that I found my eyes drawn towards something even more picture-er-esque. Jannis’s shoes! Unfortunately, I’ve done a terrible job of actually showcasing them in this photograph, but they looked super cute and colorful! I’d never seen smart shoes that were so expressive. Now, are they better than the Sesame Street shoes I got in Berlin? It’s a solid maybe.
Eleanor McHugh - Research Makes The Dream Work
Prior to GoLab I’d actually met Eleanor multiple times before as she is an occasional regular at the London Gophers meetup. However, what I didn’t know is that Eleanor is a long-time keynoter and speaker, both globally and at GoLab (having attended every GoLab since the very first one).
With over three decades of knowledge behind her, you’ll never know what kind of interesting tidbits, anecdotes and war stories she could share when having a conversation. However, this time around her talk - Putting the R in R&D focussed on an area that isn’t often discussed, but in Elenaor’s own words, ‘is an integral part of every software career’. Research.
If you think about it, all the fun little tools and progressions that have happened in the past decades all had to come from a little bit of experimentation.
Richard Rowland - Look out Audrey Hepburn
Winner of ‘Most Exquisite Pose’ could only go to the Marvelous Richard Rowland. Hailing all the way from Tokyo, and showing no signs of jetlag, Richard’s talk - GOing down the compilation rabbit hole offered a detailed tour of the Go compiler.
The compiler is one area that definitely might need a bit of demystification for an average Gopher such as myself. Although I’ll likely never work on a compiler myself, having a broader context of why things work is never something that’s worth not having. (Fun sentence there).
I met Richard at lunch, alongside some other Gophers in this article, where our conversational topics spanned from discussing what it’s like to live and grow up inside ‘destination’ cities such as Tokyo and London, all the way to Eurovision and whether watching musicals is better at home or in person. As I continue to write this article in my PJs, you can probably guess what my stance is.
Tanguy Herrmann - Cutie Patootie’s Best Friend
Fun fact. This is actually the second picture I took of Tanguy Herrman holding a cuddly toy. Not only was Tanguy a speaker at the event, he also won Sebastian’s twin sister, Sebastiana.
With a sustainable travel time of around 2-3-ish days to get to the conference because of some absolutely devastating delays and unforeseeable issues, Tanguy was a shoo-in for the cuddly crabs that were up for grabs.
Tanguy’s talk - REST In Peace: Using Generics to Remove REST Boilerplate explored a new use case for generics within Go: Dealing with the boilerplate that comes with creating REST APIs. It seemed like quite an ambitious idea and had the fun factor of a live-coding demonstration, which is a realm I’ve not stepped into yet. You can check out the implementation on GitHub here.
Martin Gallagher - Recruiter to the Stars
Director and Co-founder of Vistas Recruitment and one of the first technical recruiters to believe in Go (started specializing back in 2015), Martin has been incredibly supportive of London Gophers and the Go community throughout the years.
At what is the final review of the year, I couldn't not include someone who has been present from near the start of my journey in Go. I know of many Gophers or prospective Gophers who have had nothing but nice things to say about working alongside Martin. There’s an art to being an excellent recruiter and Martin clearly knows what that is.
Sadie Freeman - Coffee Shop To Conglomerate Coffee
There’s a certain panache that comes with being able to distill a problem down to the level where most people will grasp what is being discussed regardless of technical background and experience. The adage being, a true expert is someone who can explain something to both their peers and to a child. Or something along those lines.
The point being Sadie’s talk - Scaling Coffee with goroutines used an example of owning and running a coffee shop to first explain the concept of concurrency and making that one coffee shop as efficient as possible. Then she scaled this metaphorical venture to hundreds and hundreds of coffee locales around the globe.
It was a fun and unique way to explain something that, if you’ve heard it before, likely haven’t seen it explained in this way, or if you’re new to the concept, would be much easier to understand than the ‘traditional’ way of learning it. Plus, the hand-drawn look to the slides added a bit of a storybook feel to the presentation.
Filippo Valsorda - An Open-Source Unicorn
Widely known inside the Go and cryptographic space, Filippo, until recently, was the leader for the Go Security Team at Google, but took a gamble on himself and left last year to bring about a bit of a revolution inside the Open Source Community.
Behold, Filippo Valsorda, Full-Time Professional Open Source Maintainer. An intriguing read, that is very much worth your time if you have any interest in the world of Open Source Software.
Filippo’s talk - The Job of Go Maintainer covered what the past year had been like for Filippo and the experiment he was conducting to ‘establish a new more sustainable funding model for open source maintainers’.
Open Source is definitely one of those ‘quirky’ areas of tech. Where you can have billion dollar businesses held up by the code of someone who can sometimes struggle to get their users to buy them a coffee. It’ll be interesting to see what happens as Fillippo’s journey continues.
Will more people who are in a similar situation to Fillippo become inspired and perhaps be able to turn what can, in most times, be unpaid volunteer work, into something that they can live, thrive from and enjoy? I guess time will tell.
Ron Evans - Play is Serious Business
None other than Ron Evans performed the closing Keynote to GoLab. As you can see from this uncharacteristically serious photograph of Ron, this was not your ordinary everyday closing keynote.
However, this tone was only briefly present in the opening and what followed was an incredibly varied and interactive showcase that, from my interpretation, was a poignant way to impress upon the audience the importance of ‘play’.
Life, The Universe, and Everything Go - was the name of Ron’s closing keynote and if you don’t want any spoilers, then skip to the next heading. In this session Ron took Conway's Game of Life to some outlandish levels.
Ranging from having the game run on the web, to having it run in multiple parallel ‘universes’ across the sides of a LED Light Cube, to eventually having the entire audience emulate the game through the medium of distinct sounds and percussion.
There was a certain slide that resonated with me during the talk, it read ‘Play is Actually Our Superpower’. I suppose it made me think about how several technological advances and things that are now standard probably started with people smashing ideas together and trying/experimenting until something bold, new and wonderful formed.
With all the doom and gloom that seems to hover about, I wonder if the next things that could come along to bring us ever forward to wherever we’re going, may currently be within the primordial soup of someone’s sandbox waiting to be played with. Who knows, it could even be yours or mine.
Th-inal Thoughts
Hello and welcome to the final few paragraphs. Congratulations on getting here! Brief note on me, as mentioned I did also do a teeny tiny talk at GoLab. It was called - Understanding the Successes and Pain Points of Different Testing Strategies. If you can’t guess what it was about, I assure you, you can. I think what I most liked about this talk, is that I could finally do a decent Q&A section, which hopefully redeems myself from Prague last year.
The audience was incredibly friendly, and it was gratifying seeing all the people I’d met over the course of the year and throughout my time at London Gophers, peppered throughout the crowd.
Although I didn’t catch their name, I can’t thank the MC enough for taking care of me throughout my session. I have a habit of feeling absolutely terrible before doing a talk, but the minute I get through the first few slides all those feelings evaporate and I can get back to simply having fun.
Anyway, enough about me. TL;DR: GoLab was Outstanding!
Bye bye for now!
If you’re interested in reading future articles here are the socials: