Matěj Volf


Prague, Czech Republic

Node.js engineer at Apify | Student of Computer Science at MFF UK in Prague | Python, JavaScript and Rust enthusiast


SvelteJS JavaScript Rust Linux Git Docker Python PostgreSQL Flask SolidJS


Hello! My name is Matěj and I’m from Prague, Czech Republic. I’m currently in the second year of Bc. in Computer Science at the Faculty of Mathematics and Physics at Charles University. I’m also part-time employed at the Czech startup Apify in the role of a Node.js engineer / Web Automation developer.

Here you can find a showcase of my previous work and what technologies I enjoy working with. Apart from my current job at Apify, where I'm enjoying the possibility to work with and learn from experienced engineers with many different expertises, when I was at high school I worked on several projects of my own and I also made a few minor contributions to various open-source projects.

Work experience

Node.js engineer at Apify Node.js, Web scraping June 2022 – present

My entry job into the world of real-world IT. It's not the time to fully reflect on this job yet, but so far I'm really enjoying the opportunity to learn from experienced engineers, from platform DevOps managers to front-end engineers to senior web automation devs. The open and free company culture allows me to get maximum insight and learning opportunities at this position.


RoboRally game, web, Svelte, Rust, WebAssembly March – December 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.

This project occassionally receives new feautes when I get to improve it as a piece of work for my university courses.

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 e-shop. The first version was a simple static website generated with Frozen-Flask. However, as my skills improved, I got to iterate many new technologies, landing on the current stack of SvelteKit, custom server for assets written in Rust and NetlifyCMS.

With this project, I also learned a lot about how to manage a full VPS – along with the server itself, 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 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