Portfolio

Some projects that I developed are listed below (in non-strict order):

Eleving

Period: 2021-04-20 — presently

As of April 2021, I've joined Eleving as a Linux Administrator/DevOps

My daily routine includes:

  • writing quality server configurations in Ansible
  • reacting to all sorts of issues
  • managing server infrastructure with Terraform
  • communicating with development teams to deploy new or improved features
  • migrating services from AWS to Azure
  • reducing technical debt
  • improving service security
  • communicating with 3rd parties to help solve common problems

Stuff that I use daily:

  • git
  • Ansible
  • Terraform
  • gitlab/gitlab-ci
  • Prometheus/Grafana/Alertmanager
  • AWS
  • Azure
  • CentOS
  • Debian
  • PostgreSQL
  • MySQL
  • nginx
  • and much, much more

Evolution

Period: 2017-11-13 — 2021-04-19

Some of the things I did during this time:

  • Maintained approximately 120 production and test servers
  • Supported approximately 1800 diskless servers
  • Built OS for diskless servers
  • Created dynamic environments for Encoding Team
  • Created dynamic environments for Video Distribution Team
  • Implemented metrics collection of all servers that I maintained
  • Significantly simplified deployment process
  • Reduced update deployment from around 25 to approximately 3 minutes
  • Implemented simplified Jenkins pipelines
  • Dramatically refactored diskless OS image build process
  • Supported team in all Linux related things
  • Deployed PostgreSQL HA clusters
  • Worked closely with other departments (tier2, NOC, ProdOps, SRE, InfoSec, Service Managers etc)

H5 property order processing system

Period: 2017-05-01 — 2017-10-31

I was hired by Fjord Software as Senior Ruby on Rails Developer to help develop order processing system for one of Norwegian leading Real Estate marketing solutions provider — H5 Property.

My biggest challenge at the beginning was to understand old code because I couldn't get a hold of previous developer. Luckily I could easily get information about business needs and how they developed.

Knowing how business needs developed helped a lot, but there was huge amount of fragile code that I had to modify.

Here's what I managed to do within just 6 months:

  • Migrated authorization from CanCanCan gem to Pundit gem which further increased development speed and reduced chance of unexpectedly breaking some permissions. This change also simplified authorization code auditing if required.
  • Implemented billing system.
  • Created integration with Quickbooks.
  • Tripletex.
  • Convicted business to move data from Amazon EBS to S3 to cut operation costs by more than 50%.
  • Implemented code that allowed migrating over 3TB of files from server to Amazon S3, without system/client interruption.
  • Created foundation for API v2 which had fine gradient permissions control.
  • Implemented audit log. I also figured out pretty smart way how to create ordered event timeline based on audit log, however I didn't implement it because I left the company.
  • Adopted some trailblazer patterns (Cells, form objects, operations etc.)
  • Implemented image recognition using Google Vision API.
  • Improved system performance in various critical services.
  • and much more

Technologies:

  • Ruby on Rails
  • Mysql
  • SASS (SCSS)
  • git
  • sidekiq
  • jQuery
  • ImageMagick
  • Trailblazer
  • Pundit
  • grape
  • swagger

CakeHR - Human Resources Management

Period: 2016-01-17 — 2017-04-17

I joined CakeHR project as Lead Developer to help develop new features, refactor old code, review new code, fix issues and improve overall code quality.

Most challenging aspect of this project was refactoring code to improve code quality and maintainability.

Some of most interesting things I did:

  • Entirely refactored and standardized frontend
  • Developed performance module (employee reviews, goals, development plans, review generation etc.)
  • Developed company org-chart display and hierarchy management
  • Developed object change log for auditing purposes
  • Refactored a lot of backend code

Technologies:

  • Ruby on Rails
  • ActiveAdmin
  • PostgreSQL
  • MongoDB
  • SASS (SCSS)
  • git
  • sidekiq
  • MaterializeCSS
  • jQuery
  • d3.js

Nameswitch

Period: - 2016-01-17 — 2016-11-11

One of the first projects I did at Mosties was system to help people with paperwork related to name change in UK.

The general idea is that when client needs to change name/surname/gender they can buy a package that will allow filling relevant forms automatically after entering basic details such as old name, new name, address etc.

When the details are filled, client selects for which companies and government institutions they need to send applications and all the specific forms will be filled for client automatically and optionally printed and shipped to client.

This saves a lot of time searching for forms from all involved parties, instead it's all available in one place.

The most challenging aspect of this project was to create flexible means to fill out various different stock PDF forms.

Technologies:

  • Ruby on Rails
  • ActiveAdmin
  • PostgreSQL
  • sidekiq
  • jQuery
  • some more secret sauce

Mogo Internal Accounting System

Period: 2013-04-25 — 2015-08-31

The most complex project I've worked on - MOGO financial system.

During this project I've been participating in development of almost all modules since the beginning of the project.

Some of modules that I've been working on are:

  • Fine calculations
  • Document generations
  • Permissions (possible to even disable certain field editing for user groups)
  • Agreement and subagreement logic
  • Very complex reports (with perspective data)
  • Integration of various undocumented 3rd party services

Challenges:

  • Performance
  • Missing or extra cents hunting in complex algorithms
  • Customisation
  • Code complexity and size
  • Overall project length
  • Gray hair

Technologies:

  • Releaf CMS
  • Ruby on Rails
  • Rspec
  • SASS
  • jQuery
  • MySQL
  • Redis
  • MongoDB
  • HAML
  • SOAP
  • REST API

Releaf Content Management System

Period: 2012-10-01 — 2018-11-29

Technically the most interesting project - Ruby on Rails content management system (CMS)

Technologies:

  • MySQL
  • PostgreSQL
  • Ruby On Rails
  • Rspec
  • HAML
  • SCSS (SASS)
  • JQuery
  • git

Releaf is fully open sourced project (licensed under MIT license).

Latio Homepage

Period: 2014-01-29 — 2014-07-11

Technologies:

  • Releaf CMS
  • Ruby on Rails
  • Rspec
  • MySQL
  • HAML
  • CSS
  • jquery
  • git

An interesting aspect of this project was that it was literally build on top of the old CMS.

Due to constantly changing content we had to implement heavy caching mechanisms.

DNB Internet Bank Frontend

Period: 2012-06-07 — 2013-04-23

Technologies:

  • Leaf CMS
  • php
  • Smarty
  • CSS
  • jQuery
  • git

Latvian American Express and Membership Rewards

Period: 2013-02-11 — 2015-08-20

During development of this project, I was responsible for back-end development and Releaf CMS development.

Key challenges were:

  • Development of Releaf CMS on top of Ruby on Rails
  • Integrating poorly designed 3rd party services
  • Complying with security requirements of Citadele Bank

After project was finished, I kept maintaining it until I left Cube Systems team at the end of August 2015.

Technologies:

  • Releaf CMS
  • Ruby On Rails
  • MySQL
  • Rspec
  • HAML
  • CSS
  • javascript/jQuery
  • SOAP services
  • various 3rd party services
  • git

elbook - DNB Bank Intranet

Period: 2011-09-27 — 2013-02-14

My first project at Cube Systems was internal document management system for DNB bank.

We created new systems from ground up and created script to import thousands of old documents in a way that merged localised documents and preserved old structure.

In addition, we implemented complex hierarchical permission mechanisms (per group, per user).

However the most complex feature was document preview. We created service that converted documents to normalised HTML format and provided preview and automatic related document linking features.

Features:

  • Document preview
  • Automatic related document linking
  • Document tree
  • Document versioning
  • Complex file access permissions

Technologies:

  • Ruby on Rails
  • OpenOffice
  • MySQL
  • HAML
  • CSS
  • git

AirBaltic Homepage Frontend

Period: 2012-11-27 — 2013-01-03

I was asked to help out with design slicing, since project was reaching deadline.

The greatest challenge in this project was the front page menu on which I had to spend quite a lot of hours to make it look and work as intended (The current AirBaltic homepage menu is much more simple than the one I originally developed).

Technologies used:

  • Ruby On Rails
  • SCSS
  • jQuery
  • SQLite
  • sh
  • git

Baltcom Intranet

Period: 2012-03-23 — 2013-02-19

Internal document management system for Baltcom.

Features:

  • Hierarchical document management
  • Document versioning
  • Document version comparison
  • Fine gradient permission controller (per group, per user)
  • E-mail notifications for created/updated documents
  • User action logs

Technologies:

  • Ruby on Rails
  • Mysql
  • HAML
  • CSS
  • jQuery
  • CoffeeScript

zfSnap

Period: 2010-07-08 — 2014-03-01

I'm the original author of zfSnap - ZFS snapshot management script.

Originally this project started as discussion on FreeBSD forums and turned into proof of concept that you can write Bourne shell script to automate periodic ZFS snapshot creation and deletion and don't need another language installed on you server.

The script evolved quickly and gained a lot of popularity. Since around year 2014 I no longer maintain it, however anyone willing to contribute code is welcome to do so.