Andrii Soldatenko
Golang Developer
Vienna, Austria
Actions
My name is Andrii Soldatenko. I am a sr. software engineer originally from Ukraine :flag-ua:, and I am currently living in :flag-at: . Public speaker (KCD, FOSDEM, GoDays, PyCons) and OSS contributor (Apache Airflow, Golang, OpenAPI, docker). I am a big fan of debuggers, Neovim, Rust
and I have a blog at http://asoldatenko.org. I am a CrossFit AMATEUR. Big fun of hand walking and different gymnastics :)
Area of Expertise
Topics
The Art of Debugging Inside K8s Environment
People say: “You build it! and you own it!” but in the modern IT world, it is easy to write yamls and apply them to k8s, right? But it’s not always work as expected, don’t it?
You can find tons of books and tutorials on how to do it correctly. But the reality is that there are no manuals on how to write apps that are easier to debug and troubleshoot in k8s. How to utilize k8s resources for bug avoidance through improved design and construction.
In this talk, I’ll show how to deal with the most common errors while running it in k8s and different strategies and methods for troubleshooting and debugging your apps inside the cluster.
Also, I’ll show the most valuable tools you can use to speed up your debugging skills in RBACs, NetworkPolices and Nodes, volumes, and pods. Also, we discuss high-level strategies and methods for addressing diverse k8s failures and specific techniques to apply when running your projects inside k8s to make programs more accessible to debug.
Saga of building multi-arch OCI containers for modern apps
Have you ever seen “exec /entrypoint.sh: exec format error” error message on your server while running any container? If so - this talk is for you.
In this Saga, I’ll walk you through the real story of how we succeeded in building a mutli-arch OCI container. We will start by explaining a multi-arch container, why it exists, and which problem we can solve using it. I gladly will share lessons we learned and spent during debugging and reading source code of all available tooling for build containers, including docker, podman, and buildah and sometimes the easy way isn’t so easy.
Also, from this talk, you will learn how to implement a production-ready pipeline using open source tools (podman, buildah) and Github actions. I’ll show a brief overview of existing container images tooling. Also, why does each tool exist, and why can’t we just use a single tool to solve all problems?
We’ll cover fundamental knowledge for terminology, where one of the problems exists, how to improve it.
Code review the right way
Code review is a central part of everyday developer jobs. The motivation to create this talk was a quote:
“The most important superpower of a developer is complaining about everybody else's code.” In this talk, I’ll explain my approach to better code review.
Sometimes, it’s hard to convince a colleague about change or don’t change some lines of code. In my talk I would like to cover some best practices from my software engineering experience about efficient and honest code review. How to create a culture of perfect code review. How to apply automatic tools to improve code review routine of repetitive comments or suggestions. How to write/or reuse coding style guides for your team to reduce the time spent arguing about naming conventions and different styles.
What needs to be automated and what needs to be not automated during code review? The key role of patterns that can be reusable is not to confuse colleagues.
Advanced debugging in golang
In an ideal world, you would write Go code, compile it, and then it would work perfectly the first time. But unfortunately it doesn't work in this manner. There are many different books and articles about how to write good code in go, but not so many how to debug code efficiently. In my talk I'll try to cover such important topic.
Go is a new programming language with best tools for development. In my talk I'll cover how to efficiently using these tools to debug your code. I’ll start from history of debuggers, later I'll show you how to debug go itself, if you need to find bug in language. Than I can demonstrate how to effectively debug microservices using docker and k8s, what’s remote debugging and how to apply it to application which already has been deployed. Debugging unit tests and not only code. Some tricks of debugging command line applications.
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top