My GoLab 2022 experience
Tags: go, golab
Published: 2022-10-14 21:01:56

---
title: My GoLab 2022 experience
published: true
description: My GoLab 2022 experience
tags: #go #Golab
cover_image: ![Golab2022](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hr0pkqu4pzm1aj2qzuzh.jpg)
---
![Golab2022](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hr0pkqu4pzm1aj2qzuzh.jpg)
<figcaption align = "center"><b>Laptop courtesy of my sweet wife</b></figcaption>

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](https://www.develer.com/en/) just outside the city of Florence in Italy.

![Lets start](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4hzsw562sysvvuag32zv.jpg)
<figcaption align = "center"><b>Let's start</b></figcaption>

## 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](https://go.dev/doc/) provide explanations about these behaviors or well explains the [packages](https://pkg.go.dev/) 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](https://twitter.com/empijei) 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](https://twitter.com/bstncartwright) about the sql package and the driver pattern of [Federico Paolinelli](https://twitter.com/fedepaol) 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](https://www.youtube.com/watch?v=rFejpH_tAHM&ab_channel=dotconferences) 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](https://twitter.com/classic_addetz) 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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5icf6z8g6fcbywuumfb2.jpg)
<figcaption align = "center"><b>Technical problems are no problems</b></figcaption>

On the cgo side I want to highlight two talks: one from [Loris Cro](https://twitter.com/croloris) about dealing with cross-compilation difficulties, that the usage of cgo brings, using the Zig language and the other from [Jason Dellaluce](https://twitter.com/jasondellaluce) and [Leonardo Grasso](https://twitter.com/leogrease) about how to extend [Falco](https://falco.org/), 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](https://pkg.go.dev/crypto) package or thanks to the [fuzzying](https://go.dev/security/fuzz/) feature that was recently introduced with Go version 1.18.

![Filippo speaking about the crypto package](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zvrhxt8jy96t47qgd94l.jpg)
<figcaption align = "center"><b>Filippo speaking about the crypto package</b></figcaption>

In this context I want to highlight the talks of [Filippo Valsorda](https://twitter.com/FiloSottile) where he explained how is security managed and tested inside Go's _crypto_ package, the talk from [Sagar Sonwane](https://twitter.com/sagarsonwane23) with an entertaining and clear introduction to _fuzzying_ and the talk from [Daniel Marti](https://twitter.com/mvdan) 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](https://twitter.com/nikiforos_frees) or here on dev.to @mcaci and I'm looking forward to hearing your comments.

__This was Michele, thanks for reading!__

![At the conference venue](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mvr8vt60hoe0lcby52lq.jpg)
<figcaption align = "center"><b>At the conference venue</b></figcaption>
![Daniel Marti explaining defensive programming](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a41yavr7tb8plq0hnmut.jpg)
<figcaption align = "center"><b>Daniel Marti explaining defensive programming</b></figcaption>
![Closing the conference with a twilight over Florence](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/krx8iujaa7mcms6z1kiv.jpg)
<figcaption align = "center"><b>Closing the conference with a twilight over Florence</b></figcaption>