Go back CV

Extended CV Skillset


Languages and frameworks:
Ruby, Ruby on Rails, Sinatra, some experiences with Elixir and Phoenix Elixir; PHP

I worked with every Ruby on Rails since version 2.3 - *, Every Ruby version since 1.8

Databases:
PostgreSQL, MySQL, ElasticSearch, Redis, MongoDB, CosmosDB, DynamoDB

Tests:
TDD, BDD, RSpec, MiniTest, Cucumber, Spinach, Selenium, Capybara, Jasmine, Factories & Fixtures. But also experiences with DHH style of developing apps where tests are introduced  later. CI setup experiences

API development:
Standard REST JSON API,  HATEOAS JSON APIs, query based JSON APIs, GraphQL alternatives

DevOps:
Heroku, AWS (ElasticBeanstalk, EC2, S3, ELB, ECR, Lambda, Amplify, different AWS, DynamoDB, RDS, ElasticSearch) ,Capistrano, Netlify; NginX, Unicorn, Puma;  Docker, docker-compose; experiences setting up CD/build machines (custom via Jenkins or 3rd party Travis CI, CodeShip); TwelveFactor app principles; vertical scaling, load-balancer setup; Sys-admin exp. (ssl certs, Linux conf …); I also have some experience with Microsoft Azure and Kubernetes

Architectures:
Mighty monolith Rails, BE API monolith Rails (FE SPA / BE API split but also BE API as a service), 
Monolith as a hexagonal architecture, Event driven monolith architecture, Microservice architecture and Serverless Architecture, Hybrid architectures

Code design:
I can work on projects with any coding practices: pragmatic ones e.g. Mighty Monolith (as proposed by DHH), DCI paradigm apps, or coding practices focusing on smaller objects like SOLID principles and object decomposition,  (e.g service objects, policy objects, entity objects, …;  TDD always, OODD).  I think it's really all about what style of code the team is comfortable with. As from my side I have a good grasp of multiple coding designs and will respect the one project is following. 

Performance optimization:
multiple layer caching (Russian doll caching, model lv. caching),  ETag, NewRelic, AppSignal, Airbreake,
benchmarking (global and partial), principle of gradual improvements,...

Team management & productivity:
Shape up methodology, agile development methodologies: Scrum, Kanban, Extreme Programming (XP); understanding of agile principles (the original meaning of the word agile); Git flow and Github flow (feature branch flow); Experience with Sync & Async remote work; paircoding, remote pair-coding, BE team management, organization of teams around Bounded Contexts (Monolith or Microservices); Orchestration of separate FE - BE team deliveries;
As for small project I’m familiar with delivering software from architecture use cases or  from UX wireframes or from direct client interaction to the end solution

Frontend:
HTML5 standards and HTML semantics, micro-data, SEO, HAML, SLIM; CSS3, mobile website development, responsive designs, SASS; JavaScript, ES6, StimulusJS, Hotwire/Turbo, Webpack (webpacker gem), CoffeeScript, jQuery, Turbolinks, Unobtrusive JavaScript, Rails RJS/SRJ; Sprockets, Propshaft; Twitter Bootstrap, Zrub Foundation, Materialize css, Bulma, Tailwind, HTML/Mail boilerplates; ViewComponent gem; UX, wireframing, mockup & web-design. SEO.

My coding environment: 
Since 2022 M1 Macbook Air + RubyMine but I’ve spent 14 years under Linux Ubuntu + Vim