Projects
Commercial projects
-
Yasno.live
June 2021 – July 2022
Back-end developer, DevOps assistant
Team of 5–8 developers, including remote
Aggregator for mental health, between psychologists and clients. The first large commercial project on Ruby on Rails.
I’ve done a lot of work for Docker (Kubernetes), CI (GitHub Actions), payment systems (YooMoney), custom SQL aggregation statistics in Admin Panel.
Technologies:
- Back-end
- Ruby
- Ruby on Rails
- PostgreSQL
- ActiveRecord
- Redis
- Front-end
- JavaScript
- CoffeeScript
- Bootstrap
- SCSS
- Integrations
- YooMoney API
- Localization
- I18n
- Error tracking
- Bugsnag
- Code management
- GitHub
- Hosting
- Yandex Cloud
- Task management
- Notion + GH Issues
- Back-end
-
GetTransport.com
August 2017 – March 2020
CIO + Software Architect + Lead Website Developer
Team of 2–5 developers, including remote
Cargo transportation aggregator, between shippers and carriers. Another project written via Flame.
I’ve tried to make this project taking into account my architecture errors of GetTransfer. So, it’s using a next version of Flame, 5, with a lot of improvements. Also we have started to use service objects instead of fat controllers and models. Then I service objects turned into Formalism forms.
This project was pretty similar to GetTransfer, so I was working with similar technologies, sometimes with a better or cleaner approach.
Technologies:
- Back-end
- Ruby
- Flame
- PostgreSQL
- Sequel
- Formalism
- ERB
- Money gem
- Front-end
- JavaScript
- SCSS
- IcoMoon
- Integrations
- Google Maps API
- GeoNames API
- PayPal API
- Platron API
- Localization
- Crowdin
- Error tracking
- Sentry
- Code management
- GitLab
- Hosting
- Hetzner
- Task management
- Basecamp
- Back-end
-
GetTransfer.com
September 2015 – August 2017
CIO + Software Architect + Lead Website Developer
Team of 2–10 developers, including remote
People transfers aggregator, between passengers and carriers. It’s pretty popular and successful.
The first project written via Flame.
There was a lot of work with:
-
SCSS architecture;
-
JavaScript plugins and custom code;
-
database architecture and optimizations;
-
form data validations;
-
client-side and server-side tight integration with Google Maps API;
-
integrations with a lot of payment systems, like PayPal or Platron;
-
translations via Crowdin and Gengo;
-
currencies exhanges;
-
timezones and time convertations;
-
comfortable dashboards for different types of users, from managers to client;
-
aggregated data exports in different formats;
-
forecasts algorythms for prices.
In all time of working on this project I was leading a team of up to 10 people, they all were different and many of them were cool. I’ve got a lot of experience in leading and talking with people, especially reviewing their code. 😬 Now I’m more calm and respectful.
Honestly, I don’t like what project became after my leave.
Technologies:
- Back-end
- Ruby
- Flame
- PostgreSQL
- Sequel
- ERB
- Money gem
- Front-end
- JavaScript
- SCSS
- Bootstrap
- Fontello
- Integrations
- Google Maps API
- GeoNames API
- PayPal API
- Platron API
- Localization
- Crowdin
- Error tracking
- Sentry
- Code management
- GitLab
- Hosting
- AWS
- DigitalOcean
- Scaleway
- Task management
- Basecamp
-
-
GetWiFi
April 2015 – November 2015
CIO + Software Architect + Lead Website Developer
Team of 2–4 developers
Dashboard for Wi-Fi captive portals among cafes, hotels, etc.
At that time I knew PHP at high level and saw its disadvantages for me. So, I wanted to learn any new programming language with more consistency and better potential for project files structure. Finally I was choosing between Python and Ruby, and I like (more consistent) OOP approach of Ruby,
snake_case
and its philosophy.This project was a first serious try to make it with Ruby. I didn’t like Ruby on Rails, mostly because of its approaches and “magic”, so I’ve developed this project via Sinatra, but was a big mistake because of controllers architecture and it became the impulse to create Flame framework.
Although there was nice (in my opinion) horizontal-nested simple UI, and pretty good database architecture.
Technologies:
- General
- MikroTik firmware and configs
- Wi-Fi Captive Portal
- Back-end
- Ruby
- Sinatra
- MySQL
- DataMapper (abandoned ORM)
- Front-end
- JavaScript
- Code management
- BitBucket
- Task management
- Basecamp
- General
-
KEY Group
April 2014 – March 2015
Lead Website Developer
Team of 2–3 developers and outsource
It was a weird experience of making the layout with diagonal sections. Adaptive! I’ve made it via CSS
transform
finally, although there were many different tries with other approaches. Also it was my practice of making SVG icons via font characters. I’ve learned a lot of CSS with this project.Technologies:
- Back-end
- PHP
- MySQL
- Front-end
- CSS
- JavaScript
- Fontello
- Code management
- BitBucket
- Task management
- Basecamp
- Back-end
-
Icons of the World
March 2014 – January 2015
Lead Website Developer
Team of 2–4 developers
Presentation site of the same named books. Home page contained almost full-screen Google Maps with custom markers, pop-ups and clusters. It was hard to make custom optimizations of requests to database bypassing WordPress engine.
Technologies:
- Back-end
- PHP
- WordPress
- MySQL
- Front-end
- CSS
- JavaScript
- Integrations
- Google Maps API
- Task management
- Basecamp
- Back-end
-
RDI
July 2014 – March 2015
Front-end developer
Team of Single outsource developer
Site of the development company (in Moscow region). My only experience of changing layout (HTML, CSS, PNG) by just a single JPEG file with target design.
Technologies:
- General
- GIMP
- Back-end
- PHP
- 1C-Bitrix
- Task management
- Basecamp
- General
-
BCLeaner
January 2013 – March 2013
Full-stack developer
Team of Single developer
System for detecting bots among Twitter followers.
In these times there were many bots in Twitter and popular people cheated followers count. But then declaring that you have no bots among your followers and you’re honest became fashinable. So, there was a request to make an automated tool (service) for detecting bots among your followers and ban them (it was the force unfollow in this time, as I remember). Then you could declare that you’re “clean” and “honest” too.
I was trying to make such system for money. Bots recognition algorythm was pretty good, but I have not finalize this project because I was fired up for fail in another parallel non-related project in the same company.
Technologies:
- Back-end
- PHP
- Integrations
- Twitter API
- Back-end
Personal projects
-
Stream Timer
February 2020 – now
Application with configuring timer for streaming application, like OBS.
Useful for AFK (stream pauses), some events (like rocket launches or draws), etc.
Previously it was built only via Vue.js and static, but I’ve made a complete web-application via Flame and database (configuration and users saving).
Technologies:
- Back-end
- Ruby
- Flame
- PostgreSQL
- Sequel
- Formalism
- ERB
- Front-end
- JavaScript
Vue.js- SCSS
- IcoMoon
- Code management
- GitHub
- Back-end
-
Who2Follow
October 2019 – now
A try to create my own algorythm of follows/friends/etc. suggestions. Platform-independent, but Twitch and Twitter are first in the plan (just because they’re more important for me).
Core (algorythm in a Ruby gem) and CLI tool are ready, site will be soon.
Technologies:
- Back-end
- Ruby
- Clamp
- Twitch API
- Tests
- RSpec
- Code management
- GitLab
- Back-end
-
Stream Assistant
October 2018 – now
Bot for assisting broadcaster and moderators in stream chats. It answers to frequently asked questions. Works via regular expressions. Right now only in Russian, but other languages in plans.
I’ve integrated it with YouTube at first, via official Google’s gem, then I’ve integrated it with Twitch via gem for API and another gem for chat. They’re pretty abandoned, there are PRs for them:
Also I’ve created a separated gem for auithentication:
twitch_oauth2
.Also it has integrations with third-party services, like Steam, I’ve created a PR to the gem with improvements.
For time difference I was trying many gems and chose
moments
, but I’ve made some improvements for it (it looks maintained, PRs were merged).Site with description and dashboard for streamers will be soon.
Technologies:
- Back-end
- Ruby
- PostgreSQL
- Sequel
- Integrations
- YouTube API
- Twitch API
- Twitch IRC
- Steam API
- Tests
- RSpec
- Code management
- GitLab
- Hosting
- Scaleway
- Hetzner
- Back-end
-
Soundly
February 2013 – February 2014
Reincornation of Simple Player as web service (site). Plays local files (selected via browser) and integratation with VK (again). Without visualizer, sadly. But it worked with VK Audios faster (especially search, global too), than VK itself. Util VK has closed their Audio API for monetization. Single file of plain JavaScript with about 1500 LOC: I didn’t think about architecture and third-party tools (libraries) at this time.
Technologies:
- Front-end
- JavaScript
- Integrations
- VK API
- Front-end
-
Simple Player
June 2011 – July 2012
Music player for Windows, plays local files or audios from VK.com. My main project on Delphi, I’ve learned a lot of things and was trying to make a good design (via FireMonkey). It was hard to make a good (in my taste) visualizer.
Technologies:
- General
- Delphi (FireMonkey)
- Integrations
- VK API
- General
Job tests
-
Ruby Developer at PayApp
December 2020, 6.5 hours
Two miscroservices, communicating via HTTP API, for solving square equation and for checking results.
Not too much new for me, I was expecting something like Kafka or RabbitMQ, but I’ve tried Grape just for
funeducation.Technologies:
- Back-end
- Ruby
- Grape
- PostgreSQL
- Sequel
- Faraday
- Tests
- RSpec
- Code management
- GitHub
- Back-end
-
Ruby Developer at Realy
December 2020, 12.5 hours
Ruby on Rails application (I had not too much experience with it), feed of
User
records from PostgreSQL via Elasticsearch (gemchewy
).Emphasis on RSpec tests, fabrication.
Technologies:
- Back-end
- Ruby
- Ruby on Rails
- PostgreSQL
- ActiveRecord
- Elasticsearch
- Tests
- RSpec
- Factory Bot
- Code management
- GitHub
- Back-end