DEV Community

Michele Caci
Michele Caci

Posted on • Updated on

My GoLab 2022 experience


Laptop courtesy of my sweet wife

Last week the 2022 edition of GoLab 2022 happened and I wish to share with you my experience for the two days of conference that I attended and share my view of the different talks that were presented.

This edition was special as the equivalent conference for Rust, RustLab, was also organized at the same moment, but more on this soon.

TL;DR: The idea to have GoLab and RustLab together was nice as it encouraged people with different view and experiences to meet and share. On the GoLab side there were a lot of interesting talks and people to speak with, I really enjoyed it!

Let's start

Golab 2022 was composed of several days of events: the first day was the one for the workshops and the two following days were the conference days. I just participated to the two days of talks but it was already a good way to meet as many Gophers and share ideas and knowledge about Go.

This edition of GoLab was organized by Develer just outside the city of Florence in Italy.

Lets start

Let's start

About the conference

I want to share the content of these two days of conference by building around a few concepts that I think well summarize the content of what was shared during the conference:

  • Going beyond the simplicity
  • Go outside of Go
  • Striving towards security

Going beyond the surface

Some of the talks of these two days focused on going behind the surface of Go either by showing some obscure language behaviors or by exploring the standard library. One of the biggest highlight of this section is that most of the time the Go documentation provide explanations about these behaviors or well explains the packages even though they are not consulted until needed.

This was reflected, for example, in the talk about the things you didn't know about Go by Roberto Clapis where he gave a deep view on the internals of Go and some very unexpected behaviors in a very entertaining way. He showed us also that the explanation for these unexpected behaviors can often be found in the Go documentation which provides a precious resource to consult at any time of need.

In this context I would also highlight the talks of Boston Cartwright about the sql package and the driver pattern of Federico Paolinelli where he gave some practical tips on which constructs and syntax elements to use to write Go code that is simple to read and maintain. From these talks, I took away the contrast between the simplicity that Go offers to developers with the complexity inside the language that makes it possible to be simple to use.

This in a way is summed up in a talk given by Rob Pike about the complexity that makes Go simple to use: "Simplicity is Complicated".

Go outside of Go

One of the recurrent topics during these two days where the usage of Go outside of the plain language itself and especially I think of two specific cases: the usage of Go in microservices and the integration of C and Go with the cgo feature.

On the microservice side there was a nice talk given by Adelina Simion and Arthur Kondas about communication between microservices where they gave useful tips about when and how to go from a monolith to microservices while also sending very positive vibes from the stage.

Technical problems are no problems

Technical problems are no problems

On the cgo side I want to highlight two talks: one from Loris Cro about dealing with cross-compilation difficulties, that the usage of cgo brings, using the Zig language and the other from Jason Dellaluce and Leonardo Grasso about how to extend Falco, a Kubernetes threat detection engine, which is written in C++, with plugins written in Go, explaining the challenges of integrating cgo in both C and Go.

It was very interesting to me to see how Go can introduce its way through various projects and architectures making it a viable language in contexts where other mainstream languages, like C++, Java or Python, used to be the main languages of choice.

Striving towards security

For sure one of the big topic of the conference was the security around Go, the main argument being that security is built-in Go thanks to the standard library for example with the crypto package or thanks to the fuzzying feature that was recently introduced with Go version 1.18.

Filippo speaking about the crypto package

Filippo speaking about the crypto package

In this context I want to highlight the talks of Filippo Valsorda where he explained how is security managed and tested inside Go's crypto package, the talk from Sagar Sonwane with an entertaining and clear introduction to fuzzying and the talk from Daniel Marti where he explained us what techniques of defensive programming we can make use of to defend from unforeseen, and potentially dangerous, usages of our code.

This is not the first time that security in Go is highlighted in a conference but it was good to see the message about security reinforced with more insights and practical information that us gophers can use.

Parting thoughts

I could go on speaking and detailing about all the talks that were given as they were all interesting and insightful but I would never end writing my thoughts.

In the end, GoLab was not just an occasion for sharing and learning, it was also a moment of entertainment and meeting with new people in a friendly environment and If you haven't had the chance to participate, the best way to learn more about the content will be to watch the talks when they will be made available on YouTube.

I will close again by thanking everyone that made this edition of Golab possible and sharing some more pictures of the conference.

You can find me up on twitter @nikiforos_frees or here on @mcaci and I'm looking forward to hearing your comments.

This was Michele, thanks for reading!

At the conference venue

At the conference venue

Daniel Marti explaining defensive programming

Daniel Marti explaining defensive programming

Closing the conference with a twilight over Florence

Closing the conference with a twilight over Florence

Top comments (0)