DEV Community

Michele Caci
Michele Caci

Posted on • Updated on

My GopherConEU 2022 experience

GopherConEU2022

A week has already passed since GopherConEU 2022, held in July 28th to 31st, and I wish to share with you my experience of these amazing conference days and my take of the content of what was said in the various talks.

TL;DR: it was great to be back in person, meet new Gophers, hearing a lot of interesting talks and I was very happy to be speaking to a live audience for the first time.

Let's start

GopherConEU 2022 was composed of several days: a community event, the workshop day and a two days run of talks. My participation was limited to the two days of talks but I sure felt the great energy and friendly atmosphere that sourrounds the Go community. Everyone was eager to exchange and learn about Go, either on specific topics or on the general trends.

Every edition of GopherConEU, this being the 5th, has been organized in a different location, Iceland and the Canary islands to name a few; this year's edition was organized in Berlin in the Festsaal Kreuzberg.

Lets start

Let's start

A summary of two days

I'm going to build the resume of I took away from the talks of these two-days conference by discussing around these elements:

  • Embracing the simplicity
  • A focus on memory
  • Practical uses of Go
  • The Go team

Embracing the simplicity

Some of the talks of these two days highlighted the simplicity of the Go language by looking at the experiences that the speakers had with their work and with some references to the UNIX philosophy of building modular, simple and transparent software.

This was reflected, for example, in the talk about CLIs in Go by Marian Montagnino where she gave a lot of insights on how to make a CLI that feels closer to the user than to the machine; in the talk about making the service easier to extend and refactor by transforming it into a platform by Konrad Reiche. In this one in particular the focus was in making the distinction between eventual complexity, that is intrinsic to the problem we want to solve, and accidental complexity, which is the one we introduce while solving a a problem, and his experience showed us a way to reduce the accidental complexity; and as well another in the talk given by Egon Elbre that gave really useful tips about how (and when) to use concurrency, by showing patterns and constructs that are safer and simpler to use when introducing concurrency in our applications.

And last but not least, the talk by Yarden Laifenfeld where she shared her experience of migrating an application from an OOP language (Java) to Go and we reinforced the message that when going from a language to Go (or any other language) it is never a plain translation, but an embracement of Go values and features, because they are too different from one language to another and this holds very true when thinking of Java and Go.

This to me highlights the experiences of the Go community when striving in making things simple, as said in the Go Proverb "Clear is better than clever".

A focus on memory

A lot of discussions were made around the memory and resources usage: from the talk about the new memory limit feature coming with Go 1.19 explained to us by Michael Knyszek to the entertaining story about a feud between Bill Kennedy and a man named Tyler about the memory allocations done by their algorithms and some practical tips how to use pprof to investigate the performances and reduce the resources usage and when it's really worth doing it.

Bill Kennedy on memory profiling

Bill Kennedy on memory profiling

This was very interesting in a context where we want take care of our consumptions to see how to check what we consume and where we can do better and in which situations it is important (or not) to do it.

Practical uses of Go

Many of the talks were also about how the community has used Go in its own projects.

Some of the highlights in this regard were:

  • The talk about the usage of TinyGo to check the environment inside the hen house of Donia Chaiehloudj where she made use of TinyGo to create an application embedded in an integrated circuit that took some measures and sent them to Grafana.
  • The talk by Robert Burke about how to use Apache Beam, now supporting Go, to perform stream processing in our applications, to consider the difference between event time and processing time and especially to focus on windows of event times instead of the event time itself.
  • The talk by Anna-Katharina Wikert where she explained us how to follow the vulnerable parts of our code from the source, e.g. sensitive data, to a potential sink, e.g. a log.Println statement without any sanitization process, using the go-flow-levee tool.

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 my speech so let's move to...

The Go team

There were few interactions with the Go team, besides the talk of Michael about memory limits, that were centered on a panel with the Go team where people could ask questions to some members of the Go team, Than Macintosh, Cameron Balahan, Michael Knyszek and on some reflections shared by Cameron on how Go has become the Go we love today.

Some of the highilghts I took away were around the history of Go, how it grew by embracing the community via the feedbacks from the surveys and the github issues and how it maintained its importance by embracing the enterprise by brainstorming around ideas that could help enterprises adopt Go more easily and how it keeps evolving besides language features, e.g. in its toolset.

How Go became its best self

How Go became its best self

"No is the the default answer" is a sentence shared by the Go team to convey in a very effective way the fact that Go's values are simplicity and stability; this is in comparison to other languages that may add new features more frequently and make them sometimes more complex and challenging to embrace.

A last interesting point, shared by the Go team, was again about security as the evolution of Go keeps growing around functionalites and tools that help for instance with the dependency checks, e.g. the tampering check on the go.sum in Go modules and the introduction of fuzzing to help unit test our application to find potentially dangerous edge cases.

A personal note

GopherConEU 2022 was not just for me a place where I heard interesting talks and topics about my favorite language.

First of all it was an occasion to meet a lot of nice Gophers from all over Europe, exchange and share our experences with them. There I met, for instance, nice people from Arduino, people from Celltech using Go to work on the creation and testing of batteries and other nice companies using Go for many different projects from Finance and Payment (Upvest and Form3) to Food Delivery (Delivery Hero), Data Federation (Hygraph) and Marketing and App promotion (Remerge).

Then, this edition of GopherConEU was special to me because it was my first experience of talking in public to a live audience. My talk was the second lightning talk where I did a small live coding session to show the power of the standard library when it comes to take the first steps to develop a web application.

My first live talk

My first live talk 😍

First live talk + lightning talk + live coding = a lot of challenge.

And a challenge was what I wanted to propose, to myself, to the organizers and to the audience, if selected. I must admit I was a bit nervous when I proposed it, but as I got accepted it was time to take on this challenge!

Challenge accepted

And so it happened!

For this I must thank all the organization of the GopherConEU, from Natalie to Donna and everyone involved to give me this opportunity and honor and also a big thanks to the co-hosts Mat Ryer and V Korbes that supported and encouraged me before going on the stage.

Should you want to know more about this talk you can check my websvc repo.

Parting thoughts

What we do on Sunday

We sure were! 😁

GopherCon EU was not just an occasion for sharing and learning, it was also a moment of distention and entertainement, I'm thinking especially of the improvised talks given by Mat Ryer and V Korbes on subjects given by the attendees (testing and doing code review with people you don't like) and a Live Episode of Go Time podcast with the "Gopher Say" Game.

Again, there are so many things that are worth mentioning but time is running out. If you haven't had the chance to participate to GopherCon EU, the talks will be made available in YouTube at some point you'll be able to do it soon.

I will close again by thanking everyone that made this edition of GopherConEU and sharing some more pictures of this two days marathon.

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

This was Michele, thanks for reading!

EDIT: The video for my lightning talk has been published! I hope you enjoy it!

Gopher say

Saturday's Party

Gopher Graffiti

Bye GopherConEU

Top comments (0)