- ๐ฎ Kotlin developer
- ๐ผ Link to my CV
- โจ C++ enjoyer
- ๐ฟ Giga-Chad LLC member
Bachelor of Science in Computer Science
- Constructor (formerly Jacobs) University Bremen (CUB)
- Higher School of Economics in Saint Petersburg (HSE Spb)
Most relevant work experience is listed in my CV above.
Projects for each language are listed chronologically, most notable are marked with emoji.
-
โ Weak Memory Models Simulator: a 3rd year semester project at CUB of the same named course. This course tought me differences between hardware & pl memory models (MM) and concepts around weak MM in general. In this project I implemented 4 memory models: SC, TSO, PSO, Strong RA, interpretors for them, and lexer + parser for a simple programming language to write multithreaded programs with.
-
โ PNG Decoder: decoder that reads PNG image binary data from disk and parses it as RGB array. It was a part of "Effective C++" course held by Spectral:Technologies during 2nd year of education at HSE (SPb).
-
ASCII Converter: a converter that parses BMP image binary data from disk and creates an ASCII equivalent image (as a plain text file).
-
โ InVasion: 1st year project at HSE Spb, an online multiplayer shooter game with top-down view. It was my first experience coding a big pet project in C++. It was done completely from scratch on the backend part. For the graphics we (it was a team of 3 people) used Godot engine. My duties were to implement asynchronous server (I created TCP server using Boost Asio), data (de)serialization, and whole front-end.
-
University Labs (unfortunately, I cannot put them publicly): 1st year at HSE Spb labs which included unit-testing library written using macros, widgets hierarchical collection with virtual methods, tic-tac-toe terminal game with dynamically loaded graphics library, custom unique and shared pointers, TCP-server that emulated bank transactions between arbitrary number of connected users, BMP images parser, custom vector with allocators.
-
Gengo: my high-school experience of writing non-contest code in C++. A very bad programming language. My code here sucks, but I still put it here for the record purposes. Btw, "gengo" means "language" in Japanese ๐ง.
-
โ Devscribe: (this one is Kotlin project, the rest are in Java) a 3rd year semester project at CUB in IDE development course. It is a simple IDE with such features as: text modification, shortcuts, mouse navigation, in-file searching, virtual file system (VFS), syntax highlighting for a custom programming language, text scaling and theme switching. It was a project of 2 people, my part was mostly VFS and UI components.
-
Java Symbols Counter: Intellij IDEA plugin for counting symbols (classes, methods per each file) in java projects. It was an assessment for one of the JetBrains internships. I crunched pretty hard on it in a short period of time, since I have never worked with IDEA plugins and Swing UI components before.
-
โ Enchanted Towers: 2nd year semester project at HSE Spb, an android game in which players compete by capturing and holding towers on a real map by casting spells on their phone screens (drawing predefined curves with fingers) or on actual paper (by taking photo of them) and destroying protection walls of towers (thus, capturing the foe's tower). It was a team project of 3 people. My duties were: implementation of canvas interactions (eg. drawing with finger, sending, and receiving curves (spells) via network using gRPC), pattern matching using Hausdorff metric, OpenCV contours extraction from photo, and attacking towers & spectating other players attacks in real time.
-
โ Mini Git: one of the 2nd year labs at HSE Spb, I implemented git replica with such functionality: staging files, commiting, logging, branching and checkouting. Implemented resources management according to git internals specification with tree-like files dependencies.
-
Threadpool: one of the 2nd year labs at HSE Spb which is a custom threadpool implementation with LightFuture task-class that allows to register execution of a consequent task after completion of the submitted one.
-
โ Task Manager: a complete Trello clone written in MERN stack (MongoDB, ExpressJS, React, NodeJS) with users authentication, boards management, invitation system, and ability for multiple clients to work simultaneously on a shared board. Since Heroku shut down their free hosting plan, the application is not online. When I have the mood, I rehost it somewhere else...
-
Movie Telegram Bot: a simple telegram bot that uses IMDB API for searching movies info. I also implemented watchlist functionality using MongoDB: user can save movies they like for later reference.
-
โ Pushdown Automata: a formal languages course team project for 2nd year at HSE SPb. Its goal is to implement pushdown automata with other various components such as context-free grammar syntax, grammar lexer and parser, and grammar conversion algorithm. My part was the implementation of algorithm that converts initial arbitrary context-free grammar into Greibah Weak Form and testing.
-
โ MarioDQN: a team (of 5 people) project that won 1st place in the competition of the HSE School of Practical Programming and Data Analysis with the support of JetBrains. It was high school boot-camp aimed to give basic knowledge of Data Analysis & ML to the students. I have studied the basics of neural networks and reinforcement learning algorithms from scratch, implemented the final version of the Deep Q Learning algorithm for agent training (Mario). The results of Mario's progress through the level can be seen in the repo. Also we created a habr post about our project.