The Largest Go Conference in Russia

GopherCon Russia 2019
April 13, Moscow

600 gophers, one day, two tracks of talks. Traditional after-party starts at 19:30.
Conference languages: English and Russian. We provide simultaneous translation in both directions at the main stage.
Registration
Sorry, we are sold out! Waiting list.
Experience
Clicking this button you agree with our policy of processing personal data.
Speakers
Google
Rebecca is an engineer on the Go team in NYC. She works on Go tools and improving the Go developer experience.
Google
Marcel van Lohuizen is a Go team member at Google where he focusses on core libraries. In the past he worked, among other things, on search and Borg. For the latter he co-authored BCL, Borg's configuration language.
VictoriaMetrics
The author of fasthttp, quicktemplate and other projects, optimized for speed. He is currently working on his own time series database VictoriaMetrics.
JetBrains
Florin is as a Developer Advocate for GoLand IDE at JetBrains.
He built many high-performance, distributed projects and helps gophers everywhere.
Badoo
Systems programmer, team lead, an expert in the area of high load services. Thanks to his products millions of people across the globe found their other halves.
Three Dots Lab
Go developer and architect. Focused on building and consulting resilient and scalable event-driven applications. Enthusiast of DDD and using Event-storming to explore complex business domains. Loves simple and efficient solutions.
Evrone
Backend-developer at Evrone, writes code at Ruby and Go. DevOps engineer.
N26
Elena is a Lead TechOps Automation Engineer at N26 and a co-host of the GolangShow podcast. She values DevOps culture and passionate about automation, software architecture and site reliability engineering topics.
Avito
Using Go a lot for 4 years, Artemiy is also a fan of PostgreSQL. At Avito, he was developing the Messenger, and now he is creating a project related to the short-term rental of real estate. He helps services to run at Kubernetes. Spreads the culture of Effective Go.
Kraken Systems
He worked on various projects from building DNA deep learning base-caller to real-time cryptocurrency bot in Go. Currently, Neven is in DevOps role specializing in CNCF ecosystem, infrastructure, and performance optimization.
Atrápalo
Software engineer at Atrápalo, co-founder of Nepcom and mainly focused on Friends of Go community (co-founder), teaching and writing about Go and developing open-source software. Also engaged in DevOps-related stuff and currently quite interested on machine learning. Fanatic of pragmatism but keeping things well-done.
ITooLabs
Being CSA of ITooLabs, he decided to develop a telephone switch using early Go versions in 2012 and didn't regret. Alex found himself in coding, architecture designing and speaking at the conferences.
IBC Labs
CTO in a small company IBC Labs. He invents (and tech his team) how to build cloud services with Go in blockchain domain.
ITMO
Senior scientist at the ITMO University, he is developing a distributed time series database with Siemens. Also, he is actively engaged in scientific research and works with graduate students.
Avito
He develops high-load microservices on Go for two years, rewrites PHP monolith and participates in the development of internal infrastructure projects. He likes to try new tools and approaches to solving old problems.
Aviasales.ru
Backend developer at travelpayouts.com team. He once wrote his own open source project and hadn't died.
Yandex
Backend team lead at Yandex.Taxi, author of open-source metalinter golangci-lint. He has also launched Go development at BeepCar and were developing high-loaded services at Mail@Mail.ru
Rostelecom
Development leader at Wink platform and In-memory DB Reindexer. Use Go and C/C++.
October
Konrad is a software engineer at October, a Silicon Valley startup building a social network based on the attention economy. He focuses on microservice architectures, distributed systems, site reliability engineering and above all: automate everything.
Talks
Go, pls stop breaking my editor.
This talk will cover the motivation behind, implementation of, and future plans for gopls, the Go implementation of the Language Server Protocol (LSP). This tool is currently being developed and maintained by the Go team and broader Go tools community, and it will ultimately serve as the backend for any LSP-compatible editor.
Rebecca Stambler
Google
Desktop application in 30 minutes.
In this talk, we explore this domain, see what tools we have available, state of the art in Desktop development with Go and what's next. The talk will start by questioning where is Go used and why. Then we'll have a look at the available options which are actively maintained to create a Desktop application. Following these steps, we'll dive right in into creating one such application.
Florin Patan
JetBrains
Message-driven application made easy with Watermill.
Do you think that building message-driven applications is hard? What if I told you that implementing production grade message-driven application which is resilient, fast and easy to debug can be as easy as implementing a HTTP API based application?
Robert Laszczak
Three Dots Labs
Bitmap indexes. What's that and why they help us achieve unbelievable search speed. Usage examples.
Inside DBMS we use indexes to speed up searching. And everybody heard about B-trees, most widely known data structure used for this. It is also the most versatile data structure. I want to tell you about less known, but no less interesting approach called bitmap index. We will see how it works, when it's better, when it's worse and when it can be orders of magnitude faster. We will see which databases already use bitmap indexes and write our own in Go. And then we are going to use available libraries to write our own ultra-fast specialized database.
Marko Kevac
Badoo
Security checklist for Go-developers.
Let's look at a Go app as an onion graph "Data - Code - Infrastructure" and highlight potential safety problems and possible solutions for each layer. We'll talk about automation and the role of security in DevOps culture. I will offer a check-list that will help Go developers not to forget to pay attention to important aspects of security, regardless of whether they are developing a high-load service or a company workflow automatization tool.
Elena Grahovac
N26
CLI in Go. From development to distribution.
An overview of popular libraries and best practices for developing CLI applications in Go. Applications distribution at Mac, Linux, Windows. Overview of popular tools and solutions.
Michail Grachev
Evrone
How not to go wrong with concurrency.
This talk will dive into developing concurrent and maintainable systems. Go is a great language for this kind of systems, but Go's simplicity can be deceiving. We will talk about both the fundamental concepts as well as the practical nuances of implementation. Come to learn best (and worst) practices when working with concurrency in Go.
Artemiy Ryabinkov
Avito
Golang race detector.
Data races are nasty kinds of bugs; rare, hard to replicate and tend to occur at the worst possible moment. Their effect is undefined, detection hard, almost impossible without expensive formal verification and static analysis tools...Or is it? This talk focuses on ThreadSanitizer, a library for detecting race conditions at run-time. It originated in clang & C++ community and its use spread to go (-race), rust, java, and some other languages. It covers how it works conceptually, and necessary background for its understanding, building from DJIT+ and Fast track to ThreadSanitizer v2.
Neven Miculinic
Kraken Systems
Chatting through Go.
The "chat problem" shows up several kinds of problematics, such communications one-to-one, one-to-many (channels), many-to-many (rooms), which solution can be applied in several different environments. Two of the main approaches are websockets and the XMPP protocol, which obviously can be implemented with Go, taking advantage of its features such as the concurrency model. Let's see it!
Joan López de la Franca Beltran
Atrápalo
Why You Should Try SCTP In Your Next Go Back-end Project.
The Stream Control Transmission Protocol has never gained traction on consumer devices. However, SCTP implements quite a number of exciting features, such as really working multi-homing, path selection and transparent fail-over, multi-streaming, connection states notifications, improved error correction and flood attack prevention. This made SCTP a protocol of choice for heavy duty telecom applications, so most of the signalling traffic all over the world today is delivered over SCTP. SCTP use in Go was somewhat complicated due to the very intrinsic networking. The Go 1.11 however simplified adding new socket types a bit, and a few Go SCTP implementation are available now for your next project already. We will discuss what is SCTP, why it perfectly fits Go application model for distributed services and how to start using it right away.
Alexey Naydenov
IToolLabs
Building cloud-native apps with Go.
Many of us create micro-service systems with GO. Every time you start a new project, you must do some basic choices: transport, communication protocol, version control, fail-safety, scalability and so on. We'll discuss how go-micro framework solves all these problems in terms of module architecture. I'll show you how you could use this framework in your projects.
Alex Gorbylev
IBC Labs
Sins of performance optimization.
In the pursuit of performance, it is often necessary to move to the "dark side", sacrificing the quality of the code and the clarity of the API. This report will reveal some of these sins on examples from my practice.
Aliaksandr Valialkin
VictoriaMetrics
Numerical time series database development with Go from scratch.
In collaboration with Siemens, we have developed a fast and scalable distributed time series database that can search complex queries on billions of records in 100 milliseconds or retrieve 15 million records per second. I want to share with you the history of this project and overview some specific Go development problems we faced.
Alexander Visheratin
ITMO University
Javascript in Go: how we store interpreted logic in the configuration.
Go is a cool and fast compiled language. But sometimes it is necessary to store some logic in the configuration so that you can change this logic without recompiling the application. What should we do? I will tell you how we managed it using the JavaScript interpreter. We'll discuss possible mistakes, how to test, and whether this solution is worth using in production.
Alexey Shayhaleev
Aviasales.ru
How to split out a monolith and wrap it up in a Go-microservice.
In this talk we'll discuss how to move your code in a microservice: cut off external dependencies, build the service and switch load smoothly without any production failure.
Pavel Lakosnikov
Avito
How to cook Go linters.
There are 50 + Go linters. What is their profit and how to effectively integrate them into the development process? This talk will be useful both for those who do not use linters and those who already use them: I will reveal little-known tricks and practices of linters magic.
Denis Isaev
Yandex
Developing Go-app with cgo.
We develop backend IPTV platform with Go using Reindexer database connected as cgo module. In this talk I will talk about:
- Profits we received in comparison with a classical network connection to a standalone server;
- The traps, the pitfalls, and how to avoid it;
- Methods of profiling and debugging we use.
Oleg Gerasimov
Rostelecom
go generate: One File to Rule Them All.
Code generation is ultimately the fifth stage of grief over Go's lack of generics. We've come to accept that Go doesn't have generics (yet!) but we still want to avoid the tedious task of writing duplicate code. With go generate we have a powerful tool to avoid writing boilerplate code. Using the Abstract Syntax Tree (ast) package we can extract sufficient information from an API file to generate middlewares (logging, instrumentation, etc.) and even documentation.
Konrad Reiche
October
CUE: a data constraint language and shoo-in for Go.
A configuration language needs to balance compactness with complexity. Most language end up being too complex for the value they provide. We show that inheritance is the culprit and provide an alternative: constraints. CUE's constrain describe configurations more compactly while at the same time validating them. Constraints sound scary, but actually look very familiar. The result is more readable and more correct configurations. CUE also has a rich Go API that allows you to analyze and manipulate your configurations. One of the provided tools, "trim", uses it to automatically rewrite your existing configurations given some templates, often considerably reducing them in size. A demo shows its power applied to 2000 lines of Kubernetes YAML. At the end of the 10 minute demo, the YAML is converted and refactored into compact CUE, with all Kubernetes objects neatly mapped into a single namespace. We also show how to extend the cue CLI tool with custom commands to operate on our configuration using CUE's declarative scripting layer. Finally we show how CUE can automatically extract CUE templates from your Go code that you can use to type check your data. As a separate thread throughout the talk, I'll explain how the idea for CUE was conceived, that it actually predates BCL, and why it wasn't implemented before.
Marcel van Lohuizen
Google
Partners
General Partner
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.
Gold Partner
Russia's largest provider of digital services and solutions. It operates across all market segments to serve millions of Russian households. The company is an unrivalled leader in the Russian broadband access and PayTV service market, important innovator in E-Government, cloud computing, healthcare, education, security and housing & utility services.
Gold Partner
SEMrush is an international IT company that employs over 600 professionals in 4 countries: Russia, Cyprus, CZ Republic and the USA. We create products that help more than 3 million Internet marketers.
Gold Partner
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.



Party Partner
A leader in the field of distribution of aviation services in Russia and IT provider for the aviation industry: products and solutions for airlines, selling agencies, air transport, and airports.
Silver Partner
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.
Silver partner
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.
Silver Partner
Google Cloud is widely recognized as a global leader in delivering a secure, open, intelligent and transformative enterprise cloud platform. Customers across more than 150 countries trust Google Cloud's simply engineered set of tools and unparalleled technology to modernize their computing environment for today's digital world
Silver Partner
Gravitational builds open source software solutions to deliver, access and manage cloud-native applications and infrastructure. Try Teleport, to manage access to cloud-native infrastructure, and Gravity, to deliver cloud-native applications anywhere, at gravitational.com.
Bronze Partner
ITooLabs develops the best cloud telephony platform and delivers it to SMB in partnership with 80+ telcos. The platform core, scalable telephone switch ITooLabs Centrex, is developed in Go.
Bronze Partner
Badoo is the largest social network for meeting new people locally in the world. 400 million members are already connected and more than 100,000 new members join every day. Badoo is not only the largest, but also the fastest growing social network for meeting new people globally.
Bronze Partner
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.
Bronze Partner
MyOffice is a product for enterprise work environment and documents collaboration, including a full set of office applications for all popular operating systems, web browsers and mobile platforms. The company pays considerable attention to all aspects of quality: from design and usability to the clean code and test coverage.
The venue
Congress centre Technopolis Moscow
Volgogradsky prospekt, 42k5

How to Get to the Venue
Organizers
Alexey Palazhchenko
Golang Moscow meetups organizer and speaker, GolangShow podcast co-host.
Leonid Kalneus
Golang Siberia meetups organizer.
Elena Mogilnikova
RailsClub, PyConRu, FPConf event-manager.
Contact us
Feel free to email us!
E-mail: hello@gophercon-russia.ru
Phone: +7 999 112 53 89

Slack: slack.golang-ru.com#gophercon channel