My Projects

On this website you will find my projects and other information about me.

Tutorials §

Last updated
April 14, 2026Running Windows games on Linux using Wine and DXVK in a sandboxAlternative link
April 8, 2026Set up an Xray-core VLESS proxy to access blocked websites and apps
January 12, 2026Obfuscating WireGuard using WstunnelAlternative link
December 3, 2025Encrypting your files in the cloud using securefsAlternative link
August 25, 2025Run WordPress in a container using Docker ComposeAlternative link
May 28, 2025How to use FFmpeg for video editingAlternative link
January 27, 2025Restrict access by an IP or password in nginxAlternative link
January 27, 2025Installing and configuring WireGuard VPN on UbuntuAlternative link
August 19, 2024Analyze nginx access log using SQLAlternative link
December 11, 2023Installing WordPress on UbuntuAlternative link

Programming projects §

All my projects are created without the use of large language models and generative AI, unless explicitly stated otherwise.

Switch between mpv playlist entries using fzf (with EPG support in XMLTV format)

Use fzf in your terminal to select which playlist entry to play in your mpv media player. Provide a link to XMLTV to see the current TV programs.

Languages: Shell, jq

Control mpv using a web browser

Remote control for the mpv media player that works over HTTP. Use your PC or mobile phone to start/stop playback, adjust playback speed, change the volume, select subtitle/audio tracks, and open files or URLs.

Languages: CSS, HTML, JavaScript, Python

Blocks game

A tetris clone for the terminal that works on Windows and Linux. It is written in Python using a library called blessed.

Language: Python

Change the default track in an MKV file

Set the default flag for a track in an MKV container. Especially useful when multiple tracks of the same type and language are present.

Language: Python

Implementation of the Hunt-McIlroy algorithm and the diff command-line utility

A reasonably fast diff utility and library in Python. It implements the Hunt–McIlroy algorithm and prints results in the so-called “normal format.”

Language: Python

Simple regex implementation in Python

A simple regular expression matcher supporting a subset of commonly used features.

Language: Python

Find all links and images in Markdown files. Output them one per line for further processing.

Language: Python

Read URLs from a file and check them to find the broken ones using a real browser.

Languages: Dockerfile, Python

Text editor implemented from scratch using HTML5 Canvas API

A text editor with a UI built on top of an HTML5 canvas. All standard text editor features such as the cursor, selection, and scrollbars are implemented from scratch using graphics primitives provided by the Canvas 2D rendering context.

Languages: HTML, JavaScript

Autoinsert the language into Markdown fenced code blocks

Modify Markdown fenced code blocks to contain the language name by detecting it from the block contents.

Languages: Dockerfile, Python

Image Resizer

A GUI app written using NW.js that wraps GraphicsMagick and allows you to resize images and optimize them in bulk.

Languages: CSS, HTML, Nunjucks, TypeScript

WordPress Websites

I have experience with the WordPress CMS. Here is a list of things I have done using it:

Languages: CSS, HTML, JavaScript, PHP

My website

I created my multilingual website using the Hugo static site generator.

Hugo was chosen because it’s good enough for my needs and it’s a single binary, so there is no need to install dependencies.

I decided to create my own layout instead of using a pre-made theme.

Languages: CSS, Go templates, HTML, Markdown

Projects I contributed to §

Hetzner Community Tutorials

I have contributed heavily to the Hetzner Community Tutorials project. This project provides an opportunity for people to share their technical tutorials with the Hetzner Community and the rest of the world.

Here are some of my contributions:

Languages: Bash, Markdown, YAML

Training §

The video was recorded after a training session.

As you can see this time I did the exercise slightly slower, but the problem here is grip. I slipped in the end.

At the time of this writing 27 reps is my personal record.

I don’t quite like my technique in this video. I did 27 reps in a better technique, but I don’t have a recording.

Pull-ups 25 reps in one set
September 4, 2025

The first time I was able to record 25 reps in pull-ups. In my opinion the technique is good here.

Contact §

If you want to contact me, you can drop me an email.