Wrapping up Golab 2018
I have recently came back from Florence, Italy where 2 days conference on Go programming language - Golab 2018 took the place. This post is just a short summary on what I talks have attended, heard and learned.
Opening and first keynote
I was actually surprised to see so many people. Around 500 people attending Golab this year. Impressive for a young, not so known conference.
Conference was opened by Cassandra Salisbury. She works in a Go Team at Google. Talk was focused on community and human skills. We as Go community have to be open, understanding and welcoming for the technology to shine.
Advanced Ultimate Go Workshop
When I was considering buying a ticket to conference I saw that there will be a Premium workshop with Bill Kennedy. “Advanced Ultimate Go” made buying Premium ticket a no-brainer.
Bill’s workshop was very intense and filled with tons of useful information. We started from the hardware level, went through language semantics and ended up by doing benchmarking and profiling. It is impossible to give all the details in this post so you better check:
- Bill’s blog
- Repository with all learning materials and notes
- Ultimate Go video course
- You can also check Go In Action book.
Keynote by Bill Kennedy
The next day started early by Bill’s keynote talk. Right from the morning he filled the room with energy and tons of technical details. For those who attended a workshop it was as a good extension (thought might has been a bit harder for those who weren’t there).
Go 1.11 introduced even more great things to pprof and trace tools. It is impressive what tools we get for free as a Go developers. Bill showed how we can profile and trace Go applications and based on findings optimize it. It was stressed few times:
start with draft code, make it work, then do profiling and benchmarking. And only then optimize based on findings not guesses.
Machine Leaning workshop
I was very keen to visit Machine Learning workshop lead by Martin Czygan. But it was total disappointment. Most of us came ready to have interactive coding session. Sadly it ended up by Martin going over his slides, showing some code examples and comparing them to Python. Left workshop after a half as I wanted to hear other interesting talks instead. This is repo with Martin’s slides and code examples for those who are interested.
Unit testing with hard to mock dependencies
Talk was given by Adam Wolfe Gordon, he works at DigitalOcean and I was expecting to hear useful things. And I did. Talk was with technical details, code examples. Adam presented to us three ways we can test the code with dependencies:
- Isolating them
- wrapping dependencies and mocking them
- function variables to mock exported function (that allows us to avoid interfaces)
Combination of all those three usually is enough to have >95% coverage for your code.
Building great APIs with gRPC by Paweł Słomka
Was keen to hear interesting tips and tricks on how gRPC is used or can be used to build APIs. Honestly got upset as a talk was more like “Hello World” application with gRPC and went over the very basics.
I do understand that not all of the people in the room were experienced and I do believe that a talk was useful for them. What is for sure it was done professionally and Pawel was well prepared.
Applying serverless architecture pattern to distributed data processing - Denys Makogon
It started by “Oracle” and “open source” in one sentence that got audience laughing. Oracle launched new product (yes open source), called fn.
As soon as I realized this is a demo for their project I was paying a bit less attention. I believe you will get the same by reading about it online if interested.
Orchestration of microservices - Bernd Rücker
Do not remember much from this talk as I joined a bit late. It was quality presentation, speaker was well prepared. Bernd was talking about orchestration frameworks and the problems they solve.
I do remember that I was not able to agree on the argument that by using orchestration frameworks and services we are not having single point of failure. I still believe we do. Because what if your orchestration service goes down? And it does. But I was not able to catch Bernd later on to talk more about it, maybe he meant something different.
Building a DIY proxy with the net package - Filippo Valsorda
In short - wow! Professionally done presentation and technical talk with interesting details. Filippo wrote a proxy server in ~60 lines of code. All was done only by using pure net package from stdlib. On which btw Filippo is working at Google.
Talk was also very focused on performance, that is why it was interesting to catch FIlippo after a talk. Asked more about using interfaces (as we know they might bite your performance), testing the code (writing performance focused code might introduce some harder to test dependencies).
What I got back is that at Google Go team always try to avoid mocks. It is better to have those function variables or swap function in the test that is hard to mock. Do not be afraid of small “hacks”. He also agrees with Bill - do not add an interface just because your code is hard to test (as you want to wrap and mock).
Go implementation of DNS Load Balancing at CERN - Pablo Saiz
Personally I would say what Pablo presented is just too early to show and present in a conference. First of all it looked more like a prototype and done only because it is fun to build stuff. Alternatives like Haproxy for example were not even evaluated yet.
Moreover talk was not well prepared as half of the time was spent by introducing CERN itself. There was no clear focus to whom this might be interesting. Maybe defining target audience might have saved the talk.
To sum it up, the conference was a great success. Especially if you take in consideration the price (129EUR premium early bird) it is worth it without a doubt. I will for sure consider coming back next year. Thank you organisers and sponsors.
I will update an article with videos and slides once they will be available.