All work
About me >>Projects ranging from normal cli tools, games, and web apps, to a custom web server, a game engine, and work at T‑bank.
Work experience
^ Go up ^T-bank - Rust developer
Role: Rust Developer - Payment Authorization (Issuing Systems)
Key work: Owned a high-throughput authorization results pipeline (approx. 2000 auth/sec), rewrote legacy C logic in Rust.
Impact: Reduced Oracle dependence, improved data availability, enabled reliable Cassandra usage.
I added two new data outputs to authorization results pipeline: Kafka (with Confluent Wire Format) and Cassandra, as part of a compliance migration. Later, I rewrote Cassandra logic using a native Rust driver because cassandra-cpp was causing segmentation faults.
Extended a limits service to send Apache Avro‑formatted messages to Kafka in addition to saving into Oracle, moved part of Oracle logic to PostgreSQL in an internal HTTP service and in a Kafka consumer service, and started migrating the brand/merchant synchronization service, finishing about 60%.
I clarified ambiguous requirements alongside our system analyst, wrote tests and documentation, authored deployment instructions, and manually deployed services on bare-metal servers via SSH.
I left the role on good terms to successfully finish my Master's degree.
- Rust
- tokio
- Protobuf
- PostgreSQL
- Cassandra
- Kafka
- Oracle DB
- Jira
June 2025 - February 2026 (8 months)
Infrastructure
^ Go up ^Personal Website (custom server)
Maintained
This is the website you are viewing. It is a multithreaded synchronous web server (no async).
- No frameworks or libraries (except httparse and log)
- Server side rendering, no JavaScript
- Custom content format
HTML rendering is implemented using string formatting and other string operations. Page contents are defined in a custom format to eliminate syntax friction. The web server parses and renders it into HTML as part of server-side rendering.
It dynamically renders CV pdf by spawning a typst process and using stdio pipes to communicate with it.
The server also serves static files, has some DoS and starvation protection, and handles signals for graceful shutdowns. It has custom logging with non-random request ids and supports file configuration using a custom parser.
- Rust
- Linux
- HTML
Simple Auth
In-progress
Auth server in Rust. I made it because I wanted to really understand auth. Some of my projects use it.
- Username + password authentication
- JWT access and refresh tokens (treated as opaque outside of the server)
- Admin panel for creating and deleting users
Passively working on a new version with new api, support for roles, and with more extensive testing.
- Rust
- Axum
- PostgreSQL
2025 - now
Protect
Maintained
Static file server with access control, leveraging my custom auth server.
- Invisible token renewal using automatic redirects
- Only built-in browser features are used - any web page can be hosted
- Locks static content behind authentication
I use it to host my docs and tutorials made with mdbook.
- Rust
- Axum
- simple-auth
2025 - now
Home Lab
Maintained
I deploy personal projects on several VPS.
- Managed with Ansible
- Automated backups
- Grafana (monitoring + alerting)
I also reverse-tunnel my PC, and I use Ansible to manage some client configs on other devices, including mobile.
- Ansible
- Podman
- Traefik
- Grafana
Tools
^ Go up ^jannie
Maintained
Utility for keeping files on PC organized - a way to document workspace.
- Walks directories against an inventory and reports workspace state
- Hierarchical blacklisting and whitelisting
- Can execute any program for state reporting
Paired with a bash script, it prints the states of all git repositories on my laptop as a color-coded tree. This helps me quickly notice where I forgot to commit or push some changes.
- Rust
- clap
- serde
- indexmap
2025 - now
vm-tools
Maintained
A script for opening and managing QEMU virtual machines.
- Self-contained lua program
- Cli interface tailored to my workflow
I use vms for compilation, testing, and for trying things that can break my real machines. And to spin up Windows sometimes.
- Lua
fuzzy-open
Maintained
Cli app written in Rust for quickly opening files by fuzzy matching string patterns. Only the standard library is used.
I use it to open books on my laptop.
- Rust
2024
rs-count
Finished
Cli app that counts words, symbols, and lines in a text file. A simple Rust project without external dependencies. It's my first shipped Rust project.
- Rust
2024
Apps
^ Go up ^Project Manager
Maintained
Web app for working with text in Markdown format. I use it to write all sorts of stuff, like plans, project tasks, or ideas.
- Supports vim-mode
- Browser-local toggle for vim mode (for mobile)
It's my third project of this kind. Using Simple Auth enabled me to greatly simplify the codebase compared to previous notes.
- Rust
- Axum
- PostgreSQL
- simple-auth
- React
- shadcn/ui
2025
Notes
Archived
Web app for text notes.
- Frontend is written without any libraries as a challenge
- Custom markdown parser and renderer (a subset of grammar)
- Rust backend with built-in custom auth
I used this app for a while until I wrote Project Manager. The backend is now disabled, but editor showcase still works.
- Rust
- Axum
- PostgreSQL
- JavaScript
- BEM
2024 - 2025
Rust Cargo.lock visualizer
Finished
Web app for interactive Cargo.lock visualization.
It allows for some browsing, but is mainly useful as a quick overview rather than a deep dive. I made it to see how bad the dependency trees in Rust projects are.
- Python
- Polars
- Dash
- Plotly
2026
CV in Vue
Archived
Web app that renders CV from YAML. First I wrote it in pure JS, then migrated to Vue. I used it for pdf version of my CV until I made the new website.
- JavaScript
- Vue
2025 - 2026
Games
^ Go up ^Game Engine in Rust
In-progress
An engine I am developing with Rust to make games and GUI apps. I have already shipped a game built with it.
I was making games on and off since I was a kid, and this Rust engine is me returning to low-level gamedev.
- Mesh, Material, Transform-based rendering
- Game objects with components (not ECS)
- Anchor + offset UI built on top of game objects
- Tilemap (texture atlas) & text mesh built on top of it
- Telemetry (logging & metrics)
The engine supports textures, UVs, and coloring in materials. Camera + transform model allows for intuitive world building. It has systems for handling keyboard and mouse events and to play sounds.
For tree-like structures flat storage is used, like indexmap and indexset, and objects just store each other's ids.
Components in game objects are implemented with Rc and RefCell that store Any trait objects (in actuality Any is a subtrait). I made a nice ergonomic interface for that using Deref and PhantomData.
As a deliberate constraint, the engine is only meant to render monospace text. The current text implementation supports only custom fonts, and monospace fonts conveniently map to tilemaps.
The engine is built with wgpu and winit for now, but lower-level bindings will be used eventually.
- Rust
- wgpu
- winit
2025 - now
Snake Game
Finished
A finished and polished game built with my custom Rust game engine.
- Grid-wrapping logic, snake mesh generation, tile positioning and rotation
- Menu navigation with pausing
- Possible to beat the game, tests prove that
It might look trivial, but these were problems that needed solving.
- Rust
2026
Sparkly Night
Finished
A finished and released game. It is a little adventure game made as a gift.
- Three locations with unique gamemodes
- Custom dialogue and quest system
I made the game in three weeks and was really proud of that.
- Unity
- C#
2021
Boring Platformer
Finished
A finished and released platformer.
- Checkpoints and progress saving
- Jump pads, auto-aiming cannons
- Speedrunnable
It isn't really boring, I just didn't come up with a good name at the time.
- Unity
- C#
2020
Paper Bird
Finished
A finished and released flappy bird clone with my own artistic spin. I made it to try out the Godot engine and its model.
Simple mechanics - a bird and procedurally generated pipes. Most work went into visuals, audio, and player experience. The game was made in 10 days from idea to release.
- Godot
- GDScript
2024
Other
^ Go up ^Home lighting system
Frozen
Home lighting system with light temperature control.
- Custom board powering an led-strip
- Custom UDP protocol
- Unity app controlling master node via Bluetooth
The user would pair their phone with master node, that connects to home network, together with all slave nodes - the lights themselves. Master node controls slave nodes over UDP.
Master node connection is set up with the app. Slave node features a hardware switch that puts it into setup mode, where it spins up its own network for setting up credentials to home network through a simple HTML page.
I haven't finished it, sadly, but it was a working prototype.
- Esp32
- C++
- Unity
2024
Electron Text Editor
Archived
A desktop visual text editor I made using web technologies. Inspired by Notion and how slow Notion was for me.
I used it a little but it did not actually hit production for me. I realized that it is not exactly the right way to handle text editing and moved on.
- Vue
- Electron
- SQLite
2023 - 2024
Trend Aggregator
Finished
Website with the ability to authenticate through Google and chat about trends, that are automatically aggregated into database from google trends. Made as an excercise, not production ready.
- React
- Express
- MongoDB
- Google API
- OAuth
2022
Marketplace
Finished
Marketplace website analogous to eBay. Made as an excercise, not production ready.
- JavaScript
- EJS
- Express
- PostgreSQL
2022