The second online edition and 4th overall edition of GopherCon Europe 2021 is now over. An annual conference dedicated to the Go programming language, GopherCon was packed with 3 days of fun and valuable insights as well as amazing speakers and workshops.
Although there was a tremendous amount of variety in the presentations, they all shared a unifying theme around strengthening your skills as a Go developer, whether it’s improving your technical documentation, leveraging serverless technologies like AWS Lambda, demystifying technical debt, and more. The sessions around Go security best practices were particularly notable and critically important, given the fact that malware creators adopting Go in recent years have become more and more sophisticated.
If there’s one thing I realized in the conference above anything else, it’s that Go is an amazing language, and its capacity for innovation is endless. Here are some highlights of what I learned each day.
Day 1 – Wednesday, May 26
The event kicked off with Dave Cheney giving a talk on “Numbers are Just Numbers,” where he discussed what happens when you exceed the range of numerical types available in Go.
Next up we had Dana Scheider give a talk titled “Technical Writing for Developers and Engineers.” She gave some good advice on how to write good documentation. She emphasized that the goal of a technical writer is to effectively communicate the information readers need to accomplish any given step, which I found valuable.
Joakim Kennedy went on to give his talk on “The Dark Side of Go: A 2020 Malware Roundup,” in which he discussed the rise of malware creators adopting Go in recent years. Additionally, he described some of the tricks that hackers use to distribute these malwares so we as a developer community can have greater awareness and take preventative measures.
Lorna Jane Mitchell went all in on “Designing Payloads for Event-Driven Systems.” She walked us through what Apache Kafka is and provided strategies for designing payloads you stream over Kafka.
The last talk of the day was given by Egon Elbre on “Demystifying Technical Debt” — an amazing talk about what causes technical debt and steps to take to avoid it.
In addition to these talks, I also attended an exciting workshop session titled “Application Security” led by Anna-Katharina Wickert.
Day 2 – Thursday, May 27
The second day started with a mind-blowing session titled “Fusing IO/Fs with Gopls: Building a Cloud-Based Go Editor from Scratch” with Andre Ericksson. He had a live coding session and a demo that left us in a state of awe.
Dylan Meeus followed up with a talk called “Audio Programming with Go.” Meeus showed us how to generate sound, noice, and music with Golang. I liked that at the end of the talk he recommended books for beginners trying to get into audio programming.
Matteo Grella showed us a couple of starter demos on the capabilities of spago (a NLP framework written in Go) in his talk “(Neural) Natural language Processing in Go.”
Adelina Simion and Xiao Liu did a great job presenting “BFF: Lambda and Go Apps.” They did a live coding session that showcased how they built GopherTweets, a twitter bot for GopherCon Europe.
Preslav Rachev amazed us with his talk “Between Order and Chaos: Creating Immersive Generative Art with Go.” He shared his artistic background and how he became inspired to pair software engineering with art. I have never seen something so beautifully made with just a few lines of code.
Both Ricardo Ferreira’s talk on “OpenTelemetry for Dummies: Instrumenting Go Apps” and Grant Seltzer Richman’s talk “Unlocking EBPF From Go” were eye opening, providing tremendous insight into the world of tracing and runtime metrics in Go.
Samuel Davidson went all in on “CTX is Key,” where he explained Context (Go package in the standard library) and some of its use cases.
Sean Dubios gave a talk on “Pion WebRTC: Real-Time Communication for Conferences, Broadcasts, Remote Control and Robotics all in Go.” The talk was so engaging that afterwards I wondered why I haven’t gotten my hands dirty with webRTC yet.
The day ended with a panel session on Go security followed by a live GoTime podcast.
Day 3 – Friday, May 28
The last day of the event started with Ishuah Kariuki on “Terminal Emulator Basics in Golang.” He explained some terminal basic commands, including a live demo of how to build one in Golang.
The next session was “Function Inlining” by Valentin Deleplace. Deleplace talked about how Go teams improve runtime performance by inlining functions that are within budget. This was all very confusing at first, but I got to have a one on one talk with the speaker later in the Q/A session for a better understanding of the “hows” and the “whys.” The speakers were super helpful and it was a great reminder to always ask questions when you’re feeling stuck.
Yolan Romailler and Mathilde Raynal gave a talk titled “Quantum-Resistant native Go Programs: Taking the (Quantum) Leap.” They discussed their research in finding a secure encryption algorithm that can rival the computational speed of quantum computers.
Julio Guerra then presented on ‘Dynamic Go Instrumentation For Production Environment.” The talk was centered around how an ops team can add extra logic to live software without having to redeploy it.
Linus Lee gave his talk on “When Toy Languages Grow Up, where he he discussed what he learned while he was building Ink, a programming language he has used on two or three side projects. I have to say I do feel like building one myself.
Maricris Bonzo gave a talk on “Create Your Projects with Test Driven Development (TDD) in Mind.” Dan Lorenc followed up with “The Dependency Jungle: Supply chain Security and Kubernetes” where he shared his experience trying to fix a few known vulnerabilities by upgrading dependencies in Kubernetes.
Sushant Bhadkamkar spoke on “Derisking Migrations of API Backends” and Alan Braithwaite gave us a lot of Kafka insights during his talk titled “Why it takes a Team of Engineers Just to Process Events In Realtime.”
Day 3 ended with a panel session on Go tooling with some of the engineers actively working on Go.
Takeaways at the end of GopherCon
The event was packed with so much information and I’m so glad I was able to attend. The demos, the live coding sessions, Q/A sessions and the workshop, everything was amazing. I would get excited after every session because there was a networking room where attendees could ask speakers for clarification.It was such a great conference! Thanks to all the speakers, organisers, sponsors and MCs!