Projects
Sites
2015 – Вермер
Used: plain HTML, JS, Materialize CSS framework
Simple website with contact and product information.
2017 – CatCen
Used: Yii 2, Bootstrap, some Material Design framework, MS SQL database
Website contained prices and deals from popular groceries stores. It was hosted on Microsoft Azure cloud services for free (we won BizSpark grant somehow).
I've worked on the CSS/JS side of things and PHP boilerplate for MVC. It was a more classic server-side application, even the filter on the second screenshot was filled in HTML template, not in Javascript afterwards.
2018 – Art Fantasy
Used: Vue
One-page website. Used somewhat complicated method to edit the page. Because hosting was so cheap that it didn't had PHP, I couldn't make an admin page. But with power of Javascript I made it read a YAML (or JSON?) file and render it on client side. It contained several types of blocks to structure the page.
2018 – Городок 35
Used: Laravel, Vue, NuxtJS, MySQL database
First time that I tried to make an API-based website. Admin page was a separate NuxtJS app that used API calls to Laravel to update information.
Admin page was cumbersome and there was no further incentives from client to enhance it.
This project was thought as a stepping stone to build a platform for similar sites in future (of course, that didn't work out).
2019 – Сайт Управления образования
Used: WordPress, custom plugins in PHP
Link: edu.vologda-portal.ru
Website for a city's educational department. A bit better that previous version on Joomla. Still is bloated and slow.
Some of the custom things in random order:
- Custom object types (Pods) for making dictionaries of schools, kindergartens, etc.
- Plugin for updating coordinates based on the address of the school when saving an object in admin page (through API call to maps server)
- Restricted registration for users to exchange kindergartens (fill in the form to get to the public list, shows matches with other people)
- Theme fixes (different menu, mobile CSS, etc.)
Map view sucks for discovering schools, I don't know what I was thinking :) It has a flawed logic: there are too many schools to show at once as a list, so it is paginated. But on the map it shows only schools that are in the paginated list, so if you need to find all of the schools in one region - good luck, it'll show only ones that are on the current page.
2019 – Сайт университетской церкви
Used: Vue, fluxBB
A project to test SSG with Vue and Gitlab CI/CD. Poor Intel Atom was cooking itself up when building this website with npm.
Applications
2011 – TxEdit
Used: Object Pascal (Delphi)
First project that started my obsession with programming for real. It was full of spaghetti code and "TButton1337" object names for form controls.
Still, was functional, had a custom installer. Won a first place in a local project competition.
2012 – Черный ящик
Used: Object Pascal (Lazarus), Objective-C (Xcode)
A simple project, but it was cross-platform thanks to Lazarus. iOS port was a prototype and contained less boxes/levels (fun fact: CS teacher thought that I was showing pictures of a desktop app to a classmate, not a working app on a smartphone).
Won a second place in a local project competition.
2013 – G-Tree
Used: PHP, JavaScript, MySQL database
A web app for making genealogical trees before web apps became mainstream.
Had a performance penalty because of a large allocated canvas size. Drawing was a hybrid - photos of people were in HTML and lines were drawn in canvas. Position was stored in coordinated in database and restored in JS when opening a tree.
2014 – dPhoto
Used: PHP, JavaScript, MySQL database, C++ (OpenCV)
Source code: GitHub
No pictures of this project left.
An album that didn't have it's own storage and connected through API to Dropbox to fetch photos. Had a "taken from web" OpenCV example to extract faces that allowed to sort photos based on faces.
2015 – Доработка Scratch и SnapForArduino для работы с роботом
Used: Smalltalk, JavaScript, C++ (Arduino library)
Made a reskin of a Scratch (older Smalltalk-based) to match company style and some modifications to motor/sensors control to match what robot had.
Later, did same thing to a JS-based SnapForArduino. Even found a bug.
2016 – MatrixHelper
Used: C#, Visual Studio Tools for Office
One of the coolest projects I did. It took an Excel sheet with constants that were merged into a formula to make test/practice sheets for algebra classes and exams.
Saved all of the information to document properties so it won't get lost when transferring between computers.
I did not have enough time to make a better UI for formula editing (because formulas are done very weirdly in Word).
2019 – Портал для подачи заявок на обучение
Used: Laravel, MySQL database
Simple web page with a signup form. We've needed this custom solution because parents were abusing previous version (done in a Google/Yandex form) and filling out their children several times, creating additional work for later (you couldn't signup a children to more than two-three courses). Still, they found a way around even in this version, but not as many parents did that.
There was no export function sadly. I dumped data from phpMyAdmin on weekly basis to an Excel sheet.
2024 – Набор конфигураций для Logstash и Filebeat для сбора журнала регистрации 1С:Предприятие
Used: C, Ruby, PowerShell
Source code: GitHub
I was given a task to import logs from 1C to Elasticsearch from their proprietary format. Luckily, there were some examples of how to parse them.
Due to some design choices, it took some tries to come up with a stable and simple enough solution.
Projects
2018 – Bluetooth в ТРИК
Used: C, GNU/Linux
You can read about in my blog post.
2020 – FPGA IDE hard drive emulator
Used: C, Verilog (Verilator, Icarus Verilog), PCem
Thesis: Google Drive
Bachelor's thesis. Very early prototype, didn't had any way to communicate to SD card, had a fixed bootsector in CPLD to test things. I've wanted to build it for my IBM PS/2 Model 30/286 because it had a weird 8-bit XT IDE controller onboard with a custom edge connector. Original hard drive had suffered damage from water ingress and custom ICs had their legs completely broken off. Never finished this project.
Nowadays there are a lot of cheap options to choose from that do exactly this thing.
2024 – Spy X Family AMV
I played a Guitar Hero III on my PlayStation 2 and watched latest season of Spy X Family. Then it clicked in my brain and I put my PowerMac G5 to work.