Free, 800 gophers, 2 days, 2 tracks of talks. Conference languages: English and Russian.
Videos
August, 8. Saturday
Time;
10:00;Getting started with application observability, a workshop. Elena Grahovac. (Ru);
12:30; Break
13:00;Workshop: TLA+ / TLC: a practical tool for formal verification of algorithms. Alexey Naydenov. (Ru)
August, 9. Sunday
Time;Track 1;Track 2
12:00;Opening.;
12:05;Continuous profiling in Go applications. Mike Kabischev. (Ru)
12:50;eBPF: modern introspection features in Linux. Marko Kevac. (Ru); How to use code generation in Go. Dmitriy Smotrov. (Ru)
13:45;Break.;
14:15;GoLand Tips & Tricks. Florin Patan. (En);Debugging concurrency programs in Go. Andrii Soldatenko. (Ru)
15:00;Illustrated Tales of Go Runtime Scheduler. Ankur Anand. (En);"Go, please": language server under a microscope. Ilya Danilkin. (Ru)
15:45;Break.;
16:15;Intro to AI for software engineers using go-learn. Miriah Peterson. (En) ;Stop worrying about the required fields and start writing contracts! Vladimir Serdyukov. (Ru)
17:00;Generic Programming in Go. Vladimir Vivien. (En);Growth of the open source project community: problems and solutions. Georgiy Rylov. (Ru)
Elena is an Engineering Manager at GetYourGuide. With 13 years of overall experience in IT, she values DevOps culture and passionate about automation, software architecture and site reliability engineering topics.
Vladimir is a software engineer and a technologist who is passionate about working on open source projects using Go. He is the author of a Go book titled Learning Go Programming. Currently he is a staff engineer working with and contributing to cloud native related technologies such as Kubernetes.
SRE at OZON.ru. Mike is in charge of the development of a distributed tracing platform and other observability projects. The organizer of GoWayMeetup and GoWayFest conference.
Ankur is from Bangalore, India, where he works as a Developer at SAP Labs. A passionate Gopher, he is a co-organizer of Golang-Bangalore and the Go Study Group meetup. In his spare time, he is a hobbyist photographer.
Marko is a systems programmer at Badoo, team lead, and expert in the area of high load services. Thanks to his work, millions of people across the globe have found their other halves
Miriah is currently a Data Engineer at Weave in Lehi, Utah where she specializes in creating data pipelines for HIPPA protected data. Additionally she works in the community as an organizer of the Machine Learning Utah group and Women Who Go Utah group. She speaks at local colleges and bootcamps to encourage community participation and inspire women to pursue careers in technology.
Andrii Soldatenko
Python developer in the day, gopher under the hood. Big fan of full-text search and graph databases. Contributor to different python/go open source projects, speaker, blogger at https://asoldatenko.com/
Now a Chief Solutions Architect at ITooLabs, Alex decided to develop a telephone switch using early Go versions in 2012 and hasn't come to regret it. He delights in coding, designing architectures and speaking at conferences.
Dmitriy Smotrov
Dmitriy is a lead developer in Open mobile platform. He is in charge of the development of a cloud for the Russian mobile operating system Aurora.
Ilya Danilkin
Backend developer at Avito (ex-Gett, ex-Ozon). These days he works on product develoment at Auto B2B team.
Vladimir Serdyukov
Vladimir is a backend developer at Ozon. He is involved in building products in the buyer experience area.
Georgiy Rylov
Georgiy develops manageable databases in Yandex.Cloud, Wal-G backup system. He also teaches at Ural State University.
Talks
eBPF: modern introspection features in Linux or the Kernel is no longer a black box. For an "average" programmer, the Linux kernel has always been a kind of black box. It is difficult to understand what is going on inside. For non-trivial problems on a server, we'll either call "experienced specialists" or give up. This situation changes dramatically with the arrival of eBPF. Processes inside the kernel and inside your programs become much easier to understand. The infrastructure around eBPF makes it possible to write convenient and powerful utilities. It gives everybody powerful abilities previously available to the "elites" only. You'll learn what eBPF is, why it came into existence, and what features it provides. You will see how to use it to introspect programs written in Go, and how we can use Go to introspect other programs.
Marko Kevac
GoLand Tips & Tricks. In this session, Florin will go over 40 tips & tricks to boost your productivity while using GoLand. From basic editing tips to advanced debugging options, no section of the IDE will be left untouched. Watch this session and see how many of these did you knew and used already.
Florin Patan
Continuous profiling in Go applications. Sooner or later, every developer is facing application profiling. We have a handy pprof tool for that. But in real life it can be challenging. For example, you have to collect profiles from all instances of the application at the same time? How to investigate the issue that happens at 3 am during stress testing? You don't have access to the production server at the moment but have to solve the issue right now. What shall you do? After solving numerous challenges like those, we created a better tool, which makes your profiling great again.
Mike Kabischev
Generic Programming in Go. Go detractors usually point to its lack of generics as a reason for not adopting the language. Starting in 2019, however, the Go community rallied around a new proposal to introduce generics in Go. This proposal has culminated in the release of the experimental implementation of the latest proposal. In this session, speaker Vladimir Vivien will explore programming using generic constructs in Go and why this approach to programming is important.
Vladimir Vivien
Illustrated Tales of Go Runtime Scheduler. Concurrency in Go in the form of goroutines and channels is a very convenient means for writing modern concurrent software. It may seem like magic; but how does your Go program run these goroutines efficiently? In this talk, Ankur will peek under the hood to help you understand how the Go runtime scheduler implements this magic and how to use it to interpret scheduler trace information from a Go program during performance debugging.
Ankur Anand
Intro to AI for software engineers using go-learn. AI is a 2020 buzzword. There is an ever-growing need for the Software Engineer to understand how these models work. This talk I explain AI/ML basics in the context of Go dev. It is a hands-on demo using the go-learn library to explain of classing ML techniques. As the industry explodes with potential, there is an ever-growing need for Software Engineers to understand how Machine Learning models work. For most people, Machine Learning seems complex, academic, and even unreachable, but with some detailed explanation, it can become a valuable tool on the Software Engineer's tool belt.
Miriah Peterson
How to use code generation in Go. What is a code generator? When do you need it? How to write your custom code generator? Is it worth your time? At Open mobile platform we optimized our microservices development using custom code generators. In this talk I want to discuss the topic and share our experience with you.
Dmitriy Smotrov
"Go, please": language server under a microscope. We will discuss the basic principles of gopls and LSP protocol: the pros and cons, compare the features of the language server with VSCode and features of IDE GoLand. Also, we are going to implement one of the protocol commands as an example.
Ilya Danilkin
Stop worrying about the required fields and start writing contracts! Backend-Driven UI involves working with a large number of different contracts. Requirements (as well as new interface elements) change at lightning speed. It is especially true if for product development. In this talk, I'll let explain how to prepare contracts using protobuff, how it helps to work with the required fields, and how to check whether they are formed correctly. We will also discuss what awaits us in APIv2.
Vladimir Serdyukov
Debugging concurrency programs in Go. Recently the interest in concurrent programming has grown dramatically. Unfortunately, parallel programs do not always have reproducible behavior. Even when they are run with the same inputs, their results can be radically different. In this talk I'll show you different approaches on how to debug concurrency programs in Go. I'll start from showing how you can debug your gorotines using delve and gdb debuggers. Then I'll try to visualize goroutines using different scenarios, sometimes it helps to better understand how things work. Next part of the topic will be about dumping a goroutine stack trace of your application while it's running and inspect what each goroutine is doing. And finally I'll demonstrate how to debug leaking goroutines by tracing the process of how the scheduler runs goroutines on logical processors which are bound to a physical processor via the operating system thread that is attached. As a bonus i'll cover debugging tips on how to find deadlocks and how to avoid race conditions in your application.
Andrii Soldatenko
Growth of the open source project community: problems and solutions. Open source maintainers have a lot of problems as their projects grow. How to write more and more required features? How to fix more and more issues, and still have time to manage more and more pull requests? Using the example of WAL-G (golang open source project), I'll tell you about our solutions to these problems. We started a class about open source development at the University and involve students in our work. I'll introduce our achievements and vision for the next steps.
Georgiy Rylov
Getting started with application observability, a workshop. Observability - one of the key properties for modern applications. Typically, when we talk about it, we mean logs, metrics, and traces. However, according to the definition, observability is a measure that shows our ability to understand the current state of the system or any component of the system. In this workshop, we will see how applications themselves can contribute to observability of the whole system. We will discuss the importance of observability and the role of application in building observable systems. During the workshop, we will focus on practical examples and cases. We will start with an application that doesn't provide any observability and will see how to improve the situation step-by-step. At the end of the workshop, our application will achieve a significantly better level of observability. The ideas and techniques of this workshop are applicable to different tools but for simplicity, we will use DataDog to analyze the data. If you would like to work with your own code, feel free to bring it to the workshop. Otherwise, you will be provided with a typical web service.
Elena Grahovac
Workshop: TLA+ / TLC: a practical tool for formal verification of algorithms that every gopher should know. Developing concurrent systems is challenging. Tests can easily miss obscure errors in an algorithm. Such errors occur in edge cases and will blow up your production system. There are ways to guard against thjs, without writing any extra lines of Go; of these so-called formal verification methods, TLA+ and TCL are ideal for verifying concurrent systems written in Go. In this talk we explore TLA+/TCL and also PlusCal - a high-level language which translates into TLA+, elaborating on the practice of using such tools Go projects specifically.
One of the most popular classifieds site in Russia. We have tens of thousands of rps to the backend, hundreds of millions ads in the database, terabytes of images in the storage, and a powerful system of automated moderation, on machine learning basis. Monthly audience of the project is a quarter of Russian population.
Ozon was founded in 1998, when '.ru' domain was only four. Today Ozon is one of the largest russian e-commerce companies, providing 1.2 million customers with a broad choice of 1.5 million goods. A team of Go and .NET developers makes this possible using a micro-service architecture built with Docker & Kubernetes.
Gett is not a simple taxi service, it is a unique dynamic highloaded system involving thousands of drivers and millions of users. Gett RnD is responsible for creating and further developing the platform, its products and mobile applications which can withstand a million requests at a time and make life easier for lots of users.
JetBrains has a passion for making developers more productive: we design intelligent development tools to simplify your challenging tasks and automate the routine ones. We offer top-notch IDEs and team productivity tools, and our latest offering is GoLand, a brand new IDE built specially for Go developers.
Open Mobile Platform develops mobile operating system and high performance IoT platform built with Go. Utilizing the best practises like microservices, Agile, CI/CD, supporting the community and universities, the company is ready to face any complex technical challenges.
Goods.ru is a modern e-commerce service. Our mission is to provide smooth and excellent customer experiences from ordering to delivery, including implementing extensive buyer protection. Building our backends in Go enables us to perform at the top tier of the e-commerce industry, serving millions of happy customers around the country. Goods.ru is a part of M-video and Eldorado company group.
ITooLabs develops the best cloud telephony platform and delivers it to SMB in partnership with 80+ telcos. The platform core, scalable telephone switch ITooLabs Communications Server, is developed in Go.
Badoo is a part of MagicLab. It is a growing family of brands that built, owns and operates Badoo, Bumble and other products. We're a global team of brilliant designers, engineers, data scientists, product managers and researchers who enable our platforms to scale in our mission to create life-changing moments by building relationships.
Evrone is a professional remote team of developers with ten years of experience in creating cool projects. Our stack is Ruby, Go, Python and more. We do not stop at what has been achieved and always find new areas to apply our engineering talent.
Percona builds open-source database strategies and software to help you make sense of your database, on-premise or in the cloud, with unbiased solutions for MySQL, MariaDB, MongoDB, PostgreSQL and more. We help companies manage, deploy, and optimize databases to meet the ever-expanding needs of their customers.
Yandex is a technology company that builds intelligent products and services powered by machine learning. Our goal is to help consumers and businesses better navigate the online and offline world. Since 1997, we have delivered world-class, locally relevant search and information services. Additionally, we have developed market-leading on-demand transportation services, navigation products, and other mobile applications for millions of consumers across the globe. Yandex, which has 30 offices worldwide, has been listed on the NASDAQ since 2011.