October 19th, 2020
Conference opening
Introduction to conference
Keynote: It starts with a solution: a tale of contributions
Most proposals to Go are rejected or take years to be accepted. This can cause major frustration in people that want them to become a reality. I will tell a tale that starts with me on the user side and ends with me on the maintainer side, and I'll shed some light on this friction.
Intertype: type analysis for annotated empty interface{}s
What type would you set for a variable that can be either an int or a float64? In this talk I will talk about the empty interface in Go. We will look into why we need the empty interface type and how it is used.
Building Domain Specific Contexts using DSLs in Golang
DSLs are an amazing way to join ease and control of a Config and the extensibility/reusability of code. One such example is Terraform which is built on HCL. The Session shows building, testing, and distributing one such DSL to unify Metric alerting using datatypes and functions exposed via DSL.
Network Services with HTTP and WebSockets
WebSockets and alternative web application architectures in Go through the medium of code. Plenty of Go along with some JavaScript and possibly some Ruby/Sinatra to demonstrate integration with heterogeneous services.
Diving into the Go toolchain to obfuscate builds
Come for a deep dive into the Go toolchain, including how "go build" runs the compiler and linker, and how all of it can be leveraged to write advanced tools like a code obfuscator.
Advanced dependency management in Go using Fx
In this talk, I will show you how to handle complex dependency graphs in Go using the Fx framework. It can make your life easier in many regards, but its greatest value is in the way it enables you to modularize & share your infrastructure code across multiple microservices.
October 20th, 2020
Pure Go Unikernels - go metal with TamaGo
For far too long the perceived necessity of low level coding in C lead to unsafe implementations.
Building an FM radio station with Go
This talk will show you how to build an FM radio station using Go.
Building a Command Line Tool as the Core of Your Apps
We added GRPC on top of a robust and modular architecture to allow integration with GUI apps. A non-interactive interface for CI integration, and a library interface for developers. You can do it too! Arduino CLI has now more than 100k downloads thanks to this strategy.
Running Go on the smallest systems with TinyGo
It is now possible to run Go on microcontrollers such as the Arduino and use it on the web with WebAssembly, all using TinyGo. TinyGo is designed to compile the same Go code you're used to down to much smaller binaries, and thus brings Go to places it couldn't go before.
October 21st, 2020
Integrating your Go service with the ELK stack
In this workshop, we will start from a sample Go web application & integrate it, step by step, with the ELK stack. This will enable you to create shiny dashboards, tracking your service's logs & monitoring any issues your users might encounter. It will be VERY hands-on, so be prepared.
Face detection in Go and Webassembly
In this talk I will talk about Pigo the only existing “pure” Go face detection and facial landmark points detection library which does not require any third party module and is platform agnostic. I will discuss about it’s integration into other programming languages and porting it to Webassembly.
Lesson Learned: Go is not JavaScript. A year in the life of Vugu (Go+Wasm lib)
Could we make something like Vue in Go? With Wasm, Go now runs in-browser, and yet JS and Go code are worlds apart.
October 22nd, 2020
Game development with Go
This workshop is aimed at Go beginners that want to start exploring the language not writing the classic ToDo API app but a "simple" 2D game using the Ebiten library.
AMA - Go Team
Miriah Peterson and Natalie Pistunovich will be the moderators of an "Ask Me Anything" session with some members of the Go Team: this is a great opportunity to ask questions about what's been happening lately with the language (which is a lot!) and what will happen in the future with Go.
October 23rd, 2020
Design Patterns for Production Grade Go Services
With a clear and concise syntax and a comprehensive standard library and rich ecosystem, Go allows us to quickly prototype our services. But when our newborn applications land in the production environment, many threats undermine their stability, and so our satisfaction.
Accelerating Developer Velocity: Building an API Management Platform in Go
Uber's automated API management platform provides an ability for developers to ship quickly, automating API's writing, testing and production. I'll cover lessons learnt from migrating 1500 internal API's to a next-generation system - it's like changing the tires of a moving F1 car.
Data Engineering in the #GOshop
# Tips and Tricks for Data Engineering in the #GOshop
CLIPSGo: an expert system shell for Go
CLIPS is a library for developing expert systems. CLIPSGo makes it available from Go. This talk will give an introduction to expert systems and the CLIPS expert system shell, and then will give some details on how to use it.
October 24th, 2020
Streaming
Building an event driven microservice using Kafka and MongoDB in Golang
An event-driven backend microservice used by Myntra, India's largest fashion e-commerce retailer. The talk covers the decisions to move from NodeJS to Golang, design choices and learnings during development, and the journey to production supporting more than 22 million active users.
Best Practices on writing a Kubernetes Operator: my lessons from Capsule
Writing a Kubernetes Operator is easy, they said, and it is: you just need to embrace the Kubernetes patterns and the provided code-base. Nobody shared it, so I decided to sum up all the ups and downs I faced during the development phase of my first open-sourced Kubernetes operator.
OpenTelemetry in practice
I will show you how to use OpenTelemetry in Golang projects for tracing and monitoring. I will also tell you how to integrate it with popular solutions (like Jaeger, Prometheus, etc.), and how to fit it into an existing project. So you will be ready to use it to make a transition with ease.
Tests in a box: Shipping your tests in a container for fun and profit
A "practical experience" talk on how we slowly converted several test suites scattered in different repositories in a productized container that allows customer to validate the deployment of their platform.
Easily build healthy and reliable web apps using metrics and tracing
Modern web apps face new challenges when it comes to availability and performance. It is mandatory to gain operational insights in real-time and get early warnings to prevent outages. In a live coding session we kickstart a web app and show how we can easily include opencensus metrics and tracing.
Planlagt: distribute cron work the smart way
Did you ever dream, your background workload would just scale just as easily as your REST endpoints? Enter planlagt. A distributed work scheduler, which automagically distributes re-occurring work (read: cron jobs) across all running instances of your service.