atmatto
Shaping things with code, often reinventing the wheel in passing. Always seeking for opportunities to develop competencies by doing. Exploring the manifold fields of computer science, trying to find my place. Pursuing my interest in mathematics and languages. Dabbling in the theory of performance optimisation and algorithms, and trying to apply it to real problems. Curious about how digital tools can aid people and support them in their endeavours.
Projects
Lodz Solar Team Race track map editor
Part of an energy use simulator and race strategy optimizer. Race track editor based on Typescript and React. Supports project saving and layer management. Allows to edit polylines and splines and export them with elevation and curvature calculation. Slides
Mobile applications
Several Android applications using Jetpack Compose and Kotlin.
Full-featured basic task management application. Modular architecture with focus on best practices. Storage in Room Database. Attachments, notifications and alarms, searching and filtering. Following Material Design 3 guidelines. Source code
GPS tracker working with Room Database, Google Play services location API, foreground services, quick settings tiles, and WebDAV backup upload.
Punch the Lights
Virtual reality game created in Unity and programmed in C#.
Lodz Solar Team Visual odometry
Computer vision solution for vehicle trajectory estimation based on Python, OpenCV, NumPy, and SciPy. I focused on improving precision, optimisation, code quality, and user friendliness. Our presentation of the project during the XLII International Student Seminar on Mechanical Engineering at the Military University of Technology in Warsaw was awarded as the best in the category of 1st and 2nd year students. Slides
Language app
Full-stack content manager for a language learning app, inspired by Tatoeba. Allows to create and modify languages, sentences, and words. The backend is written in Java with Spring Boot and interacts with a PostgreSQL database using Hibernate ORM. Includes custom error handling, account management, authorization, and authentication. The frontend is written in TypesScript with Angular and is structured around a custom synchronisation engine. Source code
Database
Relational database written in Java. Allows to store data in multiple tables with typed columns. Interactions are provided through a user-friendly command-line interface with descriptive error messages. SQL queries are parsed using a recursive descent parser and complex expressions are supported by a parser inspired by top-down operator precedence parsers. All standard join operations are supported. Data can be selected, updated, and deleted. Database content is serialised to JSON and saved on disk. Source code and demo
PyTrain
Train simulator game with a procedurally generated map and a 3D renderer written from scratch, dealing with the performance limitations of PyGame and Python. Videos and source code
Pac-Man
Pac-Man clone written in C++ using the Qt library. Source code
3e
X11 tiled scrollable window manager for Linux written in C. Based on the open-source dwm and heavily modified to create an unconventional user interface inspired by acme. Source code
Dro
Minimal image manipulation program, made to edit screenshots and quickly draw some drafts. I plan to rewrite it, this time focusing on keyboard control. Source code
Anki Duolingo dictionary
Anki addon extending the user interface (Qt). Before the Duolingo dictionary was discontinued, this let the user search for the definition and example sentences of a given word. It could be configured to almost automatically fetch the content from a selected field and strip all the unimportant words from the search query (e.g. articles). Source code
Manesei
Knowledge base and digital garden. Utilises Atylar, a storage system with version history. Features a simple, bespoke markup language. I plan to make it multi-user and add the possibility to publish your documents.
Anghelp
Website about the English language made for a school group project. I created a static site generator with support for nested navigation and was in charge of the deployment. Visit
Mapian
OpenStreetMap-based procedural generation in Roblox. The player can choose a location to visit, which is then dynamically fetched and built. Features a chunk system that lets the user explore the world virtually infinitely without major difficulties. Play
The game was later partially remade in Godot.
Granulat
Simple KaTeX viewer and editor utilising browser local storage to let the user save files. They can be later opened, downloaded, and shared using a link that contains all the needed data. Check out
Arboretum
Abandoned precursor of Manesei. Apart from a note system, it featured a storage system that could function as a cloud drive.
Remin
An unfinished journey log app. The user can mark different modes of transportation and add notes about them.
Other projects
Besides the described software, I also made many other creations. I scripted Roblox games (Lua), tinkered with 3D graphics and modelling, created a lot of small websites for personal use (or rather just for enjoyment), and customised my Linux environment by diverse means.
Interests
I strive to make my software performant and efficient, and to understand thoroughly the dependencies I use, inspired by the Handmade movement. To achieve this, I study algorithms and learn the inner workings of computer hardware and operating systems. I've been made aware of many aspects of software performance by dabbling in competitive programming, participating in the Polish Olympiad in Informatics.
Game development is a field that played a big role in my journey to become a programmer. I'm especially interested in procedural generation – it's fascinating to create enormous worlds in a short time using code. Naturally, my experiments entail dealing with 3D graphics programming (which I've explored e.g. by experimenting with Vulkan). I'm impressed by how demoscene programmers push the limits of hardware.
Some day I would like to learn more about compression, as it seems to be a field where theoretical work has practical applications of great impact. The links this branch has with artificial intelligence are also fascinating. These topics are inextricably related with mathematics and statistics.
I'm interested in hardware and embedded programming. I'm researching the principles of the Linux kernel and would like to try driver programming.
I take an unconventional approach to learning languages and explore the different ways of fostering this process. I'm heavily inspired by the Refold community but employ a peculiar variant of their method. I'm also interested in phonology and the ways it makes exchanging thoughts about languages easier. I enjoy discovering the links between different words and I'm curious about the history of languages.
The theory and practice of distributed systems is important for the world of today. Together with the principles of designing scalable and reliable backend infrastructures, this is something I would like to delve into.