Hello! My name is Matěj and I’m from Prague, Czech Republic. I’m currently in the first 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.
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.
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.
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
| 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.
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.
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.
| Read more…
web, Python, Flask, PostgreSQL
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 unfinished v2 stub