<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Personal Blog</title><link>https://asoldatenko.org/</link><description>Recent content on Personal Blog</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><lastBuildDate>Thu, 06 Nov 2025 08:39:07 +0100</lastBuildDate><atom:link href="https://asoldatenko.org/index.xml" rel="self" type="application/rss+xml"/><item><title>Git tips</title><link>https://asoldatenko.org/notes/git/</link><pubDate>Fri, 23 Feb 2024 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/notes/git/</guid><description>Intro Links</description></item><item><title>quotes</title><link>https://asoldatenko.org/notes/quotes/</link><pubDate>Fri, 23 Feb 2024 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/notes/quotes/</guid><description>Fav quotes Tuomas (the author) of &amp;ldquo;Wishmaster&amp;rdquo; by Nightwish? song This is my personal tribute to fantasy, especially the closest to me; Tolkien &amp;amp; Dragonlance. These worlds have become a sort of inverted reality for me, where the story of &amp;ldquo;The Kinslayer&amp;rdquo;* can&amp;rsquo;t become reality&amp;hellip; Moreover, I don&amp;rsquo;t believe in this thing called &amp;ldquo;destiny&amp;rdquo;. We are the masters of our own wishes, beliefs and dreams. Whatever you desire enough, it can happen.</description></item><item><title>FastAPI</title><link>https://asoldatenko.org/notes/python/fastapi/</link><pubDate>Wed, 21 Feb 2024 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/notes/python/fastapi/</guid><description>Links https://github.com/zhanymkanov/fastapi-best-practices</description></item><item><title>Watch public talks</title><link>https://asoldatenko.org/notes/watch-public-talks/</link><pubDate>Mon, 12 Feb 2024 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/notes/watch-public-talks/</guid><description>Motivation Recently I&amp;rsquo;ve decided to watch tech talks mostly everyday, instead of some random videos. I don&amp;rsquo;t remember where, but I read about similar challenge from others.
how? Few years ago I had a bash script to fetch vidoes stattistics from youtube and sort it by number of likes and number of vies. And I decided to created small cli tool to do it again:
go install github.com/andriisoldatenko/ytstat@latest ytstat -playListID PLHhKcdBlprMdIMzUZX6ho0OPTikTamLwa -apiKey &amp;lt;apiKey&amp;gt; | jq .</description></item><item><title>podman</title><link>https://asoldatenko.org/notes/containers/podman/</link><pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/notes/containers/podman/</guid><description>Random favorite links Running amd64 docker images with Podman on Apple Silicon (M1) tl;dr podman machine ssh sudo -i rpm-ostree install qemu-user-static systemctl reboot podman run --rm -it docker.io/amd64/alpine:3.14 sh</description></item><item><title>snippets</title><link>https://asoldatenko.org/notes/go/snippets/</link><pubDate>Wed, 31 Jan 2024 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/notes/go/snippets/</guid><description>This is collection of my random golang snippets Prefixes for binary multiples If you&amp;rsquo;re looking for 1024 constants to prefix you binary multiples may be somewhere in math package, unfortunately it doesn&amp;rsquo;t exist there. But luckily I found Rob Pike&amp;rsquo;s suggestion inside go-nuts
package main const ( _ = 1 &amp;lt;&amp;lt; (10*iota) // Prefixes for binary multiples. Kibi Mebi Gibi Tebi Pebi Exbi ) func main() { println(Kibi) } // 1024</description></item><item><title>step-functions</title><link>https://asoldatenko.org/notes/aws/step-functions/</link><pubDate>Fri, 26 Jan 2024 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/notes/aws/step-functions/</guid><description>Favorite Articles:
Using JSONPath effectively in AWS Step Functions</description></item><item><title>cli tools</title><link>https://asoldatenko.org/notes/cli-tools/</link><pubDate>Thu, 25 Jan 2024 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/notes/cli-tools/</guid><description>This is collection of my favorite cli tools with examples peco Simplistic interactive filtering tool
brew install peco ps aux | peco QUERY&amp;gt; podman IgnoreCase [6 (1/1)] andrii.soldatenko 24073 6.6 11.0 426452256 7408464 s002 S Tue10AM 65:10.24 /opt/homebrew/bin/qemu-system-aarch64 -m 15735 -smp 4 -fw_cfg andrii.soldatenko 1891 0.7 0.3 1588596992 219008 ?? S 10Jan24 104:40.87 /Applications/Podman Desktop.app/Contents/MacOS/Podman Desktop andrii.soldatenko 24066 0.0 0.1 409920528 49888 s002 S Tue10AM 0:46.81 /opt/homebrew/Cellar/podman/4.8.3/libexec/podman/gvproxy -mtu 1 andrii.soldatenko 1987 0.</description></item><item><title>k8s</title><link>https://asoldatenko.org/notes/k8s/main/</link><pubDate>Thu, 25 Jan 2024 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/notes/k8s/main/</guid><description>The Almighty Pause Container From the article:
In Kubernetes, the pause container serves as the “parent container” for all of the containers in your pod. The pause container has two core responsibilities. First, it serves as the basis of Linux namespace sharing in the pod. And second, with PID (process ID) namespace sharing enabled, it serves as PID 1 for each pod and reaps zombie processes.
kubectl debug node/debug-kind-control-plane -it --image=asoldatenko/debug ps | grep pause 229 root 0:39 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.</description></item><item><title>kubectl tip and tricks</title><link>https://asoldatenko.org/notes/k8s/kubectl/</link><pubDate>Thu, 25 Jan 2024 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/notes/k8s/kubectl/</guid><description>Intro This page is dedicated to different kubectl tips I&amp;rsquo;m using on my daily job. So feel free to add contact me or suggest another one.
Current running pods per node Similar to k9s, if you type :nodes but in kubectl:
NAME↑ STATUS ROLE TAINTS VERSION PODS CPU MEM %CPU %MEM CPU/A MEM/A AGE gke-andrii-test-default-pool-c1873b05-cxm7 Ready &amp;lt;none&amp;gt; 0 v1.30.6-gke.1125000 12 133 1140 3 8 3920 13261 4h33m gke-andrii-test-default-pool-c1873b05-e5lt Ready &amp;lt;none&amp;gt; 0 v1.</description></item><item><title>links</title><link>https://asoldatenko.org/notes/go/links/</link><pubDate>Thu, 25 Jan 2024 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/notes/go/links/</guid><description>Random favorite links Build Constraints tl;dr A build constraint, also known as a build tag, is a condition under which a file should be included in the package. Build constraints are given by a line comment that begins
//go:build 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs Golden config for golangci-lint opentelemetry-go/CONTRIBUTING.md 📝 NOTE: Interesting contributing guide Generic retry function in Go TIL: you can do better with closures :) WebSockets Using Go TIL: websocat Hiring Challenge: Smallest Golang Websocket Client TIL from an article is UPX is a free, secure, portable, extendable, high-performance executable packer for several executable formats.</description></item><item><title>Operators</title><link>https://asoldatenko.org/notes/k8s/operators/</link><pubDate>Thu, 25 Jan 2024 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/notes/k8s/operators/</guid><description>Subreconciler</description></item><item><title>public speaking</title><link>https://asoldatenko.org/notes/public-speaking/</link><pubDate>Thu, 25 Jan 2024 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/notes/public-speaking/</guid><description>Intro This page contains all my links and finding related to public speaking, conferences etc.
Favorite Articles Practical public speaking for Nerds by David Cheney How to write a successful conference proposal Submit a Talk to GopherCon! by Carolyn Van Slyck How to find new conferences and CFP It&amp;rsquo;s useful to watch this repo developers-conferences-agenda to track new conferences. Web page for all conferences from prev link https://developers.events/</description></item><item><title>About Me</title><link>https://asoldatenko.org/pages/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/pages/about/</guid><description>My name is Andrii Soldatenko. I am a software engineer originally from Ukraine 🇺🇦, currently living in 🇦🇹 .
Currently, learning #Rust, so feel free to suggest good links for newbies.
I am a crossfit AMATEUR. Big fun of hand walking and different gymnastics :)
Follow me Mastodon twitter facebook github My current backend work https://asoldatenko.org/ - my personal blog</description></item><item><title>My talks</title><link>https://asoldatenko.org/pages/talks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/pages/talks/</guid><description>Intro Here you will find the list of all my public speaking talks.
Talks 2025:
Code review in era of collaborative development @ Swiss Python Summit Saga of building multi-arch OCI containers for modern apps @ Cloud Native Days Austria and Containers Days &amp;#x1f4f9; watch the recording &amp;#x1f4d6; check slides The essense of Graceful Shutdown @ Python Italy 2025 &amp;#x1f4f9; watch the recording &amp;#x1f4d6; check the slides 2024:
test 2023:</description></item><item><title>Kubernetes Security reading list</title><link>https://asoldatenko.org/posts/cks-reading-list/</link><pubDate>Thu, 06 Nov 2025 08:39:07 +0100</pubDate><guid>https://asoldatenko.org/posts/cks-reading-list/</guid><description>Beginner Minimize Microservices Vulnerabilities Pod Security Standards (PSP) pod spec Kubernetes-API PodSpec Pod Security Admission (PSA) Admission controllers ImagePolicyWebhook Secrets Distribute Credentials Securely Using Secrets Cilium Layer 3 Examples Transparent Encryption Istio PeerAuthentication System Hardening Restrict a Container&amp;rsquo;s Access to Resources with AppArmor Container Runtimes Runtime Class Supply Chain Security kube-bench kube-bench installation checkov [!NOTE] Checkov is a static code analysis tool for infrastructure as code (IaC) and also a software composition analysis (SCA) tool for images and open source packages.</description></item><item><title>How I Do Tech Presentations</title><link>https://asoldatenko.org/posts/how-i-do-tech-presentations/</link><pubDate>Wed, 08 Oct 2025 11:10:08 +0200</pubDate><guid>https://asoldatenko.org/posts/how-i-do-tech-presentations/</guid><description>Intro I use keynote to present, because it is simple and it&amp;rsquo;s default on OSX which i use for writing code. I tried different tools, but i stuck with it for last 12 years or so for all my talks.
Syntax code highlight Important part of any tech presentation is to show code, of course you can just screenshot it. But the problem with screenshots is if you find a bug in your slides, you need to fix it in code snippets and update the slides, so recreate all related screenshots.</description></item><item><title>KubeCon EU 2025</title><link>https://asoldatenko.org/posts/kubecon-eu-2025/</link><pubDate>Thu, 03 Apr 2025 09:04:16 +0200</pubDate><guid>https://asoldatenko.org/posts/kubecon-eu-2025/</guid><description>In this article, I&amp;rsquo;ll document notes from kubecon talks, I&amp;rsquo;ve attended and some interesting ideas or tools I found useful.
Day01 The First day was day of Lighting talks, so the log is pretty long, and each topic pretty short. Many talks were just a couple slides, even then lots of interesting ideas, links.
A Hitchhiker&amp;rsquo;s Guide to the CNCF Landscape- Katherine Druckman, Lori Lorusso History of CNCF Landscape important how to use landscape Random facts:</description></item><item><title>Build amd64 images using podman 5.3.x and 5.4.x on OSX with arm64</title><link>https://asoldatenko.org/posts/podman-osx-arm64-build-linux-amd-images/</link><pubDate>Tue, 14 Jan 2025 11:53:58 +0100</pubDate><guid>https://asoldatenko.org/posts/podman-osx-arm64-build-linux-amd-images/</guid><description>UPDATE: for podman 5.4.x version
brew upgrade podman podman --version 5.4.2 New image from https://builds.coreos.fedoraproject.org/browser?stream=stable&amp;arch=x86_64, because default one still doesn&amp;rsquo;t work for me:
podman machine init podman-machine-custom --disk-size 60 \ --rootful --cpus=4 \ --memory=8192 \ --image https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/42.20250410.3.2/aarch64/fedora-coreos-42.20250410.3.2-applehv.aarch64.raw.gz Problem You like me to want to use podman on OSX (15.2 Sequoia) and build images for --platform=linux/amd64 :)
Welcome to my world!
Make sure you install rosetta what is Rosetta?:
Rosetta is a dynamic binary translator developed by Apple Inc.</description></item><item><title>My X Vim Tips</title><link>https://asoldatenko.org/posts/my-n-vim-tips/</link><pubDate>Thu, 22 Jun 2023 15:55:30 +0200</pubDate><guid>https://asoldatenko.org/posts/my-n-vim-tips/</guid><description>Intro This document is useful for using Vim (neovim) and other tools.
1. Edit the current shell command in Vim If you env variable $EDITOR is set to vim, you can use Ctrl-x Ctrl-e to edit in vim just typed command:
Example what you can put into your .bashrc:
export EDITOR=nvim # Enable Ctrl-x-e to edit the command line autoload -U edit-command-line 2. Rename a few files at a time using VIM Download vimv script:</description></item><item><title>Go 2 and Numeric Literals</title><link>https://asoldatenko.org/posts/go-2-and-numeric-literals/</link><pubDate>Thu, 22 Aug 2019 19:13:15 +0200</pubDate><guid>https://asoldatenko.org/posts/go-2-and-numeric-literals/</guid><description>Tl;dr Go version 2 is going to add some changes that will affect numeric literals. Everybody already knew it didn&amp;rsquo;t they? Let&amp;rsquo;s see what is already in the go repo in the master branch:
git clone git@github.com:golang/go.git cd go/src &amp;amp;&amp;amp; ./all.bash go version devel +eee07a8e68 Wed Aug 21 15:20:00 2019 +0000 darwin/amd64 One of the most noticeable for me is of course _ in numbers).
here is example:
package main func main() { println(&amp;#34;1_200_000 -&amp;gt; &amp;#34;, 1_200_000) println(&amp;#34;3.</description></item><item><title>Debugging Golang Tests With Delve</title><link>https://asoldatenko.org/posts/debugging-golang-tests-with-delve/</link><pubDate>Wed, 17 Jul 2019 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/posts/debugging-golang-tests-with-delve/</guid><description>How to debug golang unit-tests using delve 🐛🔥?
So, often you need to run 1 test and even in debug mode, for example, when you wrote a test that repeats a bug. It&amp;rsquo;s very simple (although not very obvious from the docks):
dlv test -- -test.run NameOfYourTest/PartOfTheName* similar to go test -run.
Or a live example:
➜ debug_test dlv test -- -test.run TestFibonacciBig (dlv) b main_test.go:6 Breakpoint 1 set at 0x115887f for github.</description></item><item><title>Debugging a Go Application Inside a Multi Stage Docker Container</title><link>https://asoldatenko.org/posts/debugging-a-go-application-inside-a-multi-stage-docker-container/</link><pubDate>Sun, 14 Jul 2019 11:52:42 +0200</pubDate><guid>https://asoldatenko.org/posts/debugging-a-go-application-inside-a-multi-stage-docker-container/</guid><description>Let&amp;rsquo;s imagine that you have a microservice on sale, each of which lives in its own Dockerfile and naturally, like all adult uncles, this is a multi-stage Dockerfile. More details about multi-stage can be found in the docks (https://docs.docker.com/develop/develop-images/multistage-build/), if laziness is just a Dockerfile which has 2 FROM keywords and in we that copy it from one layer to another.
So let&amp;rsquo;s go 🐎:
docker build -t goapp:latest . Sending build context to Docker daemon 22.</description></item><item><title>Debugging a Go Application Inside a Docker Container</title><link>https://asoldatenko.org/posts/debugging-a-go-application-inside-a-docker-container/</link><pubDate>Tue, 09 Jul 2019 11:44:02 +0200</pubDate><guid>https://asoldatenko.org/posts/debugging-a-go-application-inside-a-docker-container/</guid><description>So we need: straight arms and basin with docker preinstalled:
cat Dockerfile
FROM golang:1.13 WORKDIR /go/src/app COPY . . RUN go get -u github.com/go-delve/delve/cmd/dlv CMD [&amp;#34;app&amp;#34;] and then run: docker build -t my-golang-app .
This is just one of the options, sometimes you need to start dlv instead of bash and so on.
$ docker run -it --rm my-golang-app bash $ root@03c1977b1063:/go/src/app# dlv main.go Error: unknown command &amp;#34;main.go&amp;#34; for &amp;#34;dlv&amp;#34; Run &amp;#39;dlv --help&amp;#39; for usage.</description></item><item><title>A collection of sport programming resources</title><link>https://asoldatenko.org/posts/sport-programming-must-reads/</link><pubDate>Wed, 12 Jun 2019 11:37:42 +0200</pubDate><guid>https://asoldatenko.org/posts/sport-programming-must-reads/</guid><description>Intro This is my personal collection of sport programming or competitive programing resources.
How to Practice Of course, you need to practice, practice and learn new stuff :)
Online Contests topcoder Facebook Hacker Cup Google Code Jam Advent of code Leetcode Hackerrank Spoj Codechef Valladolid OJ Official ACM Live Archive Peking University Online Judge Programming Challenges Books Introduction to Algorithms, 3rd Edition (MIT Press) by Thomas H. Cormen et al. - well-known CLRS book, one of my favorite book especially recommended before [Google interview](How should I prepare for my Google interview if I have 1 month left?</description></item><item><title>Configure delve debugger to print long strings</title><link>https://asoldatenko.org/posts/configure-delve-debugger-to-print-long-strings/</link><pubDate>Wed, 13 Feb 2019 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/posts/configure-delve-debugger-to-print-long-strings/</guid><description>Today I came across the fact that print in debugger mode does not show long lines.
&amp;gt; main.main() ./main.go:7 (PC: 0x10b08d4) 2: 3: import &amp;#34;fmt&amp;#34; 4: 5: func main() { 6: v1 := &amp;#34;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&amp;#34; =&amp;gt; 7: fmt.Println(v1) 8: } (dlv) p v1 &amp;#34;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...+2 more&amp;#34; Let&amp;rsquo;s change max-string-len:
(dlv) config -list aliases map substitute-path max-string-len &amp;lt;not defined&amp;gt; max-array-values &amp;lt;not defined&amp;gt; show-location-expr false (dlv) config max-string-len 1000 (dlv) p v1 &amp;#34;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&amp;#34; ✅ Now we are good to go.</description></item><item><title>Debugging Golang With Delve</title><link>https://asoldatenko.org/posts/debugging-golang-with-delve/</link><pubDate>Tue, 05 Feb 2019 00:00:00 +0000</pubDate><guid>https://asoldatenko.org/posts/debugging-golang-with-delve/</guid><description>How to debug golang code Yes, the Go code can and should be debugged. I often clash in different teams, as developers, so far in 2019! Debug with prints :)
Delve is the debugger that I usually use every day. If you open the documentation, it&amp;rsquo;s not perfect to say the least.
You can install it:
go get -u github.com/go-delve/delve/cmd/dlv Most often I use dlv debug :
dlv debug github.com/andriisoldatenko/go-blog or</description></item><item><title>Origins of term "Serverless"</title><link>https://asoldatenko.org/posts/building-serverless-applications-with-python/</link><pubDate>Wed, 21 Jun 2017 15:39:00 +0200</pubDate><guid>https://asoldatenko.org/posts/building-serverless-applications-with-python/</guid><description>Serverless is new trend in software development. It’s confusing many developers around the world, let’s try to find origins of term “Serverless”. First time Ken Fromm in 2012 use this term in his article. (Ken added a bit of clarification in the comments to give credit where credit is due.)
1. First time I saw the term was in a blog post by Diego Basch on using Indextank and Iron to create a serverless search engine.</description></item><item><title>Eloquent fibonacci sequences in python</title><link>https://asoldatenko.org/posts/eloquent-fibonacci-sequences-in-python/</link><pubDate>Sat, 31 Dec 2016 21:30:00 +0200</pubDate><guid>https://asoldatenko.org/posts/eloquent-fibonacci-sequences-in-python/</guid><description>&amp;ldquo;If by chance I have omitted anything more or less proper or necessary, I beg forgiveness, since there is no one who is without fault and circumspect in all matters.&amp;rdquo; ― Leonardo Bonacci - italian mathematician
Quick introduction The idea of this article to collect eloquent python patterns using well-known Fibonacci sequence.
Recursive approach cat fibonacci1.py def fibonacci1(n): if n &amp;lt; 2: return n return fibonacci1(n - 2) + fibonacci1(n - 1) if __name__ == &amp;#39;__main__&amp;#39;: from timeit import timeit print(timeit(&amp;#34;fibonacci1(5)&amp;#34;, setup=&amp;#34;from __main__ import fibonacci1&amp;#34;)) $ python3 fibonacci1_bench.</description></item><item><title>Can I copy string in Python 3.5? And how?</title><link>https://asoldatenko.org/posts/how-can-i-copy-a-string-in-python/</link><pubDate>Tue, 22 Nov 2016 15:30:00 +0200</pubDate><guid>https://asoldatenko.org/posts/how-can-i-copy-a-string-in-python/</guid><description>“Mathematics reveals its secrets only to those who approach it with pure love, for its own beauty.” ― Archimedes
Quick introduction Why do you need to copy a Python strings? It&amp;rsquo;s interesting question, because Python string is immutable. Also any tries of copy will returns the original string. Python tries to keep just the one copy, as that makes dictionary lookups faster.
May be use slice? $ python3 Python 3.</description></item><item><title>A collection of Python "must reads"</title><link>https://asoldatenko.org/posts/python-must-reads/</link><pubDate>Thu, 13 Oct 2016 12:55:00 +0200</pubDate><guid>https://asoldatenko.org/posts/python-must-reads/</guid><description>Articles A Web Crawler With asyncio Coroutines by A. Jesse Jiryu Davis and Guido van Rossum FAT Python by Victor Stinner Unyielding - Problem: Threads Are Bad by Glyph twisted creator uvloop: Blazing fast Python networking by Yury Selivanov aiohttp http server tutorial by me Some thoughts on asynchronous API design in a post-async/await world by Nathaniel J. Smith Django channels by Andrew Godwin Asynchronous Python and Databases by Mike Bayer Books The Hitchhiker�s Guide to Python!</description></item></channel></rss>