About me

Seasoned (over 10 years professionally) engineer with very diverse experience:

  • different industries, from Fintech to Physical Security
  • different companies, from Amazon to startups nobody ever heard of
  • different teams, from large cross-functional teams to being a loner on a large product project
  • different roles, from css-fixing junior to designing event-driven systems across multiple teams
  • different technology, from obscure russian PHP-frameworks to distributed Kafka-based event-sourced microservices

I am:
  • Technology-agnostic
  • Proactive
  • Outspoken
  • Performing well at any level: coding, architecture/system design, leadership

Check out my blog. I've got some obscure pieces I'm proud of.


Notable jobs

Funding Circle

Funding Circle is a fintech company that lends money to small businesses by via 3rd party investors (mainly, banks).
I work within Flexipay department that focuses on smaller, short term lending (e.g. pay-in-3) and credit cards.

Leading a team within Flexipay responsible primarily for payment facilitation and processing.

  • Architecture
  • Event-driven design: launched a couple of services from scratch as well as working on existing ones
  • Full-stack development (various repos and languages) whenever needed
  • Pair/mob programming, mentoring
  • Cross-team communication
  • Active involvement product design
  • Meeting organisation/facilitation
  • Documentation/reporting
  • Public speeking at meet-ups (LRUG, London Clojure Meet-Up) hosted by the company.
  • Hiring
  • ...

  • Clojure
  • Kafka
  • Microservices
  • Event-driven design
  • Event sourcing
  • Microfrontend architecture
  • System design
  • React.js
  • Ruby on Rails
  • Terraform
  • AWS
  • Github Actions, Drone CI
  • ...

Fresha

Fresha is a SaaS platform targeting beauty and wellness businesses providing them all-in-one product for managing their business: bookings, payments, contacts, etc

Developed and released a big product initiative introducing POS (Point of Sale) experience. Being the only fullstack engineer within the team, switched to purely FE (React + TS) work towards the end of the project as it required more attention.

Later transitioned to the Payments team helping with transition to the new ledger system.

  • Service-oriented architecture via gRPC
  • Elixir
  • TypeScript
  • React.js
  • Ruby on Rails (legacy code)
  • ...

Amazon

I worked for Security & Loss Prevention department within Amazon that primarily deals with physical security (emphasis on internal affairs). The interesting aspect for me was that it practically means that the department wasn't technical in its nature.

I was leading a new team within EMEA (later global) Security & Loss Prevention department working on an internal application from scratch (+ provided support for some existing apps my team got ownership of).

Was specifically hired to a new team to implement a new project (knowledge management system) for the security specialists. Designed (techical side of things) the whole system. The challenge was the absence of any similarities in experience within the team and having to adapt to Amazon's ways of working e.g. had to do some budgeting and use AWS for everything.

We delivered the MVP and the department was actively introducing it into their workflow (primarily, for trainings, overview articles, and index pages).

Also had some fun trainings related to Security and Loss Prevention.

  • AWS:
    • AWS Lambda
    • API Gateway
    • DynamoDB
    • CDK
    • SQS/SNS
    • Athena
    • ...
  • System design/architecture
  • Serverless
  • NoSQL
  • JavaScript - picked it as the primary language for the project
  • TypeScript - for CDK
  • Node.js
  • React.js + Redux.js
  • ...

SovTeh

SovTeh is a russian company owned by Sberbank (the biggest bank in Russia) dealing with commercial real estate management (e.g. large business centres).

Initially, I was approached by an ex-colleague (a senior manager within the company) asking for advice on a problem they had. He liked my suggestion so much he asked me to join their internal call so I could answer any follow-up questions. A few days later they asked me if I'm available to work on it as an independent contractor.

The project was a map with frequently updated locations of several objects (buildings, vehicles, maintenance teams). The problem they were having is the choice of technology and the lack of any experience with similar projects. What I suggested is the company should collaborate with a sibling (Sberbank-owned) company that specialises in map GIS (the company is called 2GIS)

My past experience working with map tech back in PROF-IT helped quite a lot as I was already familiar with some under the hood stuff map software.

The project was a success and is still being used by the company.

  • 2GIS
  • Leaflet.js - the integrated solution used Leaflet under the hood
  • Vue.js
  • Ruby on Rails
  • Redis
  • ...

Carwow

Carwow is a VC-backed startup developing a platform for car buyers to find the best deals nearby.

Initially, joined the "Used/Leasing" team. At the time that part of the business was new and full of potential so it involved a lot of product work and cross-functional collaboration. Some highlights of the experience: lots of AB-testing, cross-team collaboration (data analysts, designers, user researchers), Elm programming language, large team with well-oiled Kanban-based process.

Later transitioned to the data team responsible for sinking and transforming large amounts of data coming from 3rd party vendors (hundreds GBs a night). The reason was primarily due to the team leader leaving and me being the only person outside the team who knew Clojure (and was interested in it). Apart from getting a chance to work with Clojure professionally, I was exposed to Kafka and working in a much smaller and chaotic team.

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

InSales

InSales is a SaaS platform for creating online stores. Essentially, russian (and some other countries') Shopify

Initially, worked on the authorisation system (roles and permissions) within the main product.

However, shortly after was transitioned to the internal initiative to build a customer-facing helpdesk system to replace Zendesk. The initiative was around for a while but multiple developers have given up on it. Built and delivered it mostly from scratch (reused as much of the old prototypes as possible). The project was a success and the support team (along with the customers) were fully migrated to the new app giving the company full control over it (e.g. we introduced a reward system for the support team) and saving money long-term since they didn't have to pay for Zendesk anymore.

My next project was a prototype for a system that established vendor-reseller relationship between different stores within the problem. I delivered the MVP just before I left the company to move 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

Lahouse was a small russian consultancy working with some big names (including L'Oreal) developing software for them in Ruby on Rails. Another side of the business was a project called ODIN - a platform for commercial real estate management.

I was mainly involved in development of a legacy logistics app for L'Oreal as well as ODIN project. My responsibilities also involved mentoring an intern and maintenance of some other systems. I also had to deploy a helpdesk system Helpy for L'Oreal which involved some system administration (Digital Ocean VPS)

One of the notable improvements I introduced was splitting of ODIN project features into Rails engines which unified different instances of ODIN across customers (each customer had their own customised version of ODIN living in a separate git branch) and enabled the business to sell separate features.

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

PROF-IT

PROF-IT was a company building software fulfilling government contracts

I was looking to change jobs as I was interested in Object-Oriented Programming and was looking to work with Java. However, the interviewers were impressed with my Python script and decided to hire me as a Ruby developer. My mentor later would joke that he saved my life with that decision.

My initial project was a CLI utility for Redmine for our CTO to keep track of various projects.

We then started working on a GIS system using Geoserver, ArcGIS, Sinatra.rb, Ember.js, and Leaflet.js. It was never released as the company declared bancrupcy before we could finish.

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

QSOFT

QSOFT is one of the biggest web studios in Russia. The customers include KIA, Raiffeisen Bank, Sberbank, and companies well-known in Russia.

I was working with a PHP framework 1C-Bitrix. The experience was crucial as it was my first programming job that involved teamwork.

  • PHP
  • 1C-Bitrix
  • Apache Subversion (SVN)

Skills

General skills

  • Functional Programming (FP)
  • Object-Oriented Programming (OOP)
  • Test-Driven Development (TDD)
  • Event-driven design
  • Event sourcing
  • System design and architecture
  • Computer science fundamentals (algorithms and data structures)
  • Agile development: Kanban, Scrum
  • Pair programming/mentoring

Programming languages

  • Clojure
  • Ruby
  • Lisp (Common Lisp, Elisp, PicoLisp)
  • JavaScript
  • Elixir/Erlang
  • Elm
  • TypeScript
  • Java/Kotlin - very little professionally
  • OCaml and Haskell - not professionally
  • C - used a lot in school and had exposure to it via FFI
  • CoffeeScript - it was popular in Ruby on Rails world
  • Python, Perl, Pascal - used back in high school and university. Mostly, for competitive programming and CS fundamentals

Some other random tech

  • Kafka
  • Ruby on Rails
  • React.js
  • AWS
  • PostgreSQL
  • SQLite - wrote my own bindings for SBCL and use it for personal projects (incl. large datasets)
  • NoSQL/DynamoDB
  • SQS/SNS
  • RSpec, Capybara, Minitest
  • Redis
  • AVRO
  • GRPC/protobuf
  • JQuery
  • Bootstrap
  • Bulma
  • Heroku
  • Angular 1
  • Linux/Unix
  • Mongodb