Skills (short)

Some buzzwords to summarize my commercial experience

Object-Oriented Programming (OOP) Functional Programming (FP) SOLID TDD DDD

Ruby on Rails PostgresSQL Sidekiq RSpec Capybara Clojure Kafka

Elm JavaScript React.js Redux.js JQuery Angular.js


About me

Originally from Russia. Coding since 14, professionally programming since 2014.

Most of my experience is around Ruby on Rails and all the usual tech coming with it (Sidekiq, RSpec, Capybara, Posgtresql, etc). Ask me how I got into Ruby :)

My main interest is software design and different approaches to programming. You can see a bit of what's going on in my head by reading my blog weird-programming.dev.

Even though I am RoR dev, I am interested in various languages and technology. Currently, I am interested in something more scalable than Ruby on Rails, e.g. Kotlin, Java, C#, OCaml, TypeScript, etc. But am open to anything (as I said, various interests).

As I mentioned, my main interest is software design so I focus most of my energy towards code quality and demand the same from my colleagues.


Some interests

  • Software design and programming paradigms
  • #TechForGood
  • Technology, e.g.
    • Functional programming languages (OCaml, Haskell, etc)
    • Statically-typed languages in general (Golang, Kotlin)
    • MongoDB
  • Data analysis (no prior experience)
  • Data science (no prior experience)
  • MONEY :)

Work experience

carwow

2019-02-04 - present

Joined Used/leasing team during the time of rapid growth. Done lots of A/B testing and worked closely with design and data analysis teams. Also learned Elm along with lots of other tech.

After that was transferred to car-data team working on core data APIs written in Clojure. I joined during introduction of significant changes to data structures and storages so I've done a lot of refactoring of Ruby code.

After refactoring most of the work was data transformation (cadata about cars is provided by external companies) and app improvements.

  • Ruby on Rails
  • Elm
  • LaunchDarkly for feature flags
  • AppPhrase for I18n
  • HAML as a markup language
  • Clojure
  • Kafka for event storage and message delivery
  • Postgresql as relational DB
  • Honeycomb for app observability
  • Amplitude for user events tracking (mostly used by data analysis team)
  • Kanbanize
  • ...

InSales

2016-08-01 - 2019-01-19 (2 years 5 months)

InSales is a platform for creating online shops. Essentially, russian Shopify.

After joining the company I was working on authorization system of the main platform to simplify it.

After that I was given new inner project - helpdesk system to replace Zendesk. The main point behind developing our own system was the ability to fully tailor it for our needs: statistics, reinforcement system for our support team, integration with InSales itself, telegram notifications. That was only MVP. In fact, execs had big plans stored for that system

Other person was working on it before me and it already had some nice design done. Unfortunately, the code was unusable so I had to completely rewrite the backend and refactor a lot of frontend. Looking back, I regret refactoring it. I should've rewritten it while it was a small prototype. Instead, I spent a lot of time fighting with components throughout the whole development.

When helpdesk system was ready and being used by our support team I was given another inner project - an application that would allow different businesses hosted on InSales have supplier-reseller relationship. I managed to develop it up to closed beta testing before leaving the company in favour of moving to the UK.

  • Ruby on Rails
  • Postgresql
  • CoffeeScript as a default rails frontend language
  • HAML/Slim as a markup language
  • Bootstrap as CSS framework
  • Liquid for enabling client-side templating
  • Pundit for dealing with authorization
  • Webpack
  • React.js for the helpdesk system
  • Redux.js
  • Chart.js for graphs in statistics
  • Sass
  • Gitlab + Gitlab CI
  • Docker (but I wasn't responsible for production usage)
  • Redis for caching
  • Kanbantool
  • trello

Lakehouse

2016-03-01 - 2016-07-30 (5 months)

Lakehouse is (was?) a Ruby on Rails shop working for various companies including L'Oreal

I joined to work mostly on legacy logistics app for L'Oreal up until they decided to rewrite it from scratch with a different company.

After that I was helping with other rails projects but mostly was working on Lakehouse's own product. It's called [ODIN](http://www.o-din.ru/) and is a solution for companies managing big buildings like business centres.

My main contribution there was fixing the project structure. Before that it was 3 conflicting git branches for each customer. I introduced rails engines in order to share code between projects (every customer had a unique set of features so the apps were different).

  • Ruby on Rails
  • Postgresql
  • JQuery
  • React.js on some pages
  • Angular 1
  • Redmine for issue tracking

PROF-IT

2015-10-01 - 2016-03-01 (6 months)

I wanted to work with an actual object-oriented language so I came seeking for a Java job. My interviewers liked me and offered me a Ruby dev position instead. I accepted.

This is where my Ruby journey began. I had to learn it really fast and mostly by myself (some Perl experience from high school helped). My boss used to say he saved my soul by bringing me into Ruby world instead of Java's :)

I was working on internal tool processing data from Redmine APIs (helpdesk system). It also was a CLI for interacting with Redmine through console (I even continued using it on my next job).

After that I was working on internal GIS-project. But, unfortunately, we didn't have time to finish it due to the company going bankrupt.

  • Sinatra
  • Geoserver
  • ArcGIS
  • Redmine
  • Ember.js for frontend
  • Leaflet.js for working with maps

QSOFT

2014-10-01 - 2019-05-30 (8 months)

QSOFT is the biggest 1C-Bitrix (PHP framework and CMS) shop in Russia.

This experience was important for me because it was my first real job. However, technology-wise it's completely irrelevant.

  • PHP
  • 1C-Bitrix

Skills

Every list is somewhat ordered by descendence of experience/knowledge.

Backend

  • Ruby on Rails
  • Sinatra
  • Clojure

Testing

  • RSpec
  • Capybara
  • Minitest

Frontend

  • JavaScript/ES6
  • Elm
  • React.js
  • CoffeeScript
  • JQuery
  • Angular 1

Programming languages

  • Ruby
  • ES6
  • Clojure
  • Elm
  • OCaml and Haskell - wrote a couple of short snippets. Just generally interested in
  • Java/Kotlin - played with Android back in high school and recently took a look at the latter
  • Python, Perl, C/C++, Pascal - used back in high school and university

Data storages

  • Postgresql
  • Redis
  • Kafka - was introduced to in carwow
  • Mongodb - played with

Other

  • Emacs
  • git
  • bash/fish
  • tmux
  • Heroku
  • Redmine + API
  • DigitalOcean - deployed helpy.io for L'Oreal in Lakehouse
  • MacOS/Linux

Languages

  • Russian - native speaker
  • English - fluent