Matěj Volf


Tábor, Czech Republic

High-school student, programmer in Python, JavaScript and Rust. Experienced with all (except the most low-level) parts of the stack, including SQL, Docker, Git and Linux.


Flask SvelteJS JavaScript Python Heroku Rust Docker SolidJS Git Linux PostgreSQL SQLAlchemy


Hello! My name is Matěj and I’m from Tábor, Czech Republic. This May, I’m graduating from high school. After that, I’m going to continue my studies of Computer Science at the Faculty of Mathematics and Physics at Charles University in Prague. I’ll be happy to hear about job opportunities suitable for my skills and time availability (I’ll be a college student starting in October).

Here you can find a showcase of what I can do and what I’ve done. I don’t have any “real” software engineering work experience, so it’s hard for me to estimate how my coding skills stand in comparison with the outside world. But I’m able to participate in technical disussions, and made a few minor contributions to various open-source projects. You can see a breakdown of my preferred technologies and how confident I am in working with them in the column on the left.

My story & history of used tech

My first bigger projects used Python + Flask, with small sprinkles of disorganized JavaScript. About a year and a half ago I got more into the JS world and worked a lot especially with Svelte(Kit). With Svelte, I enjoyed working on the interactivity part of frontend, but the design side was never my strong point. During Advent of Code 2021, I learned Rust, which I really enjoyed later using for my high-school graduation project.


RoboRally game, web, Svelte, Rust, WebAssembly March 2022

As my high school graduation project, I recreated the board game RoboRally as a multiplayer online game. This included a backend written in Rust, WebSocket transport layer, Rust compiled to WebAssembly for game state deserialization and a highly interactive Svelte frontend.

Play the game online | View repository | Read more… web, Svelte, frontend, deployment 2018 – present

Since 2018, I've been maintaining my mother's website (and eventually also a small e-shop). The first version was a simple static website generated with Frozen-Flask. However, as the scope increased (and my skills improved as well) , a frontend framework became necessary, so the website is currently written in SvelteKit.

With this project, I also learned a lot about how to manage a full VPS – while the app itself still runs on Netlify (I intend to move it away as soon as I find a better CMS + asset handling solution), I'm self-hosting Caddy, Plausible analytics and a Postgres database in a Docker-compose cluster. I've also setup Grafana with alerts to monitor server load etc.

Python mailmerge scripting, Python March – August 2021

One of the smaller projects of mine. When Google introduced security changes that prevented my favourite mailmerge add-on from working, I decided to write my own batch mailing solution in Python. The script uses front-matter for metadata, and Markdown + Jinja for email body.

My favourite feature is the possibility to triple-check everything – unless you opt out, you get a preview of each email (both plaintext and HTML), and you can even fake-send all emails to your own address to check attachments etc.

Ingress tools Python, algorithms May 2020 – January 2021

Ingress is an augmented-reality GPS game, an ever-lasting battle of two factions. The game provides an online real-time game map, and each faction develops its own, private set of tools that operate on the game data and facilitate planning and monitoring operations. One the tools I created helps with preparing efficient game plans.

For tactical advantage, the code isn't public, but I'll be happy to present some parts of it if you reach out.

About Ingress | Read more…

Bakatasklist web, Python, Flask, PostgreSQL March 2020

A web app for better management of homework.

During the first wave of COVID-19 lockdowns in March 2020, homeschooling for many students at my school became a mess. Teachers were assigning us homework using Bakaláři (system commonly used by Czech schools), but the program worked with completely different assumptions and absolutely wasn't prepared for homeschooling. Therefore I created Bakatasklist to allow importing assignments, viewing them in a sortable table and manually marking finished/unfinished assignments.

Unfortunately, the API I used for importing homework was replaced a few months later. I planned to create a second version which would use the new API and also allow importing from other systems including Google Classroom, but all the schools systems rapidly improved, and we went back to schools before I was done, so it was never completed. Stub of this project is, however, available to see.

View repository | View unfinished v2 stub