Profile

Romanov Pavel

Pavel Romanov

Ruby Developer, Elixir enthusiast

Name:Romanov Pavel
Address:Kazan, Russian Federation
Continuous professional development and application of advanced technologies, the implementation of difficult and interesting projects.
About me
I prefer to write unit and integration tests for almost everything, sometimes before writing the code. It’s very helpful for refactoring and makes me more confident in my work. Also I prefer to use functional programming patterns even in OO languages: if something can be done with pure functions - I will do it in this way, but without fanaticism and breaking the rest architecture. Ruby is a very magical language and allows deveper to make one task in different ways, so I usually write my code in a very obvious manner, but when the task requires to write boilerplate code, I use metaprogramming. If something can be done without metaprogramming and other magic it should be done without metaprogramming and magic. I prefer explicit interfaces in my code, it simplifies reading and understanding.

About ruby
I like Ruby because it helps me to write very expressive code very fast. Ruby is a good choice for writing tricky business logic if it should’t be very fast. Code can be tested in a very easy way and programmer can focus on business requirements instead of platform limitations.

About elixir
I like Elixir because its a highly productive language and an absolute pleasure to work with. I can focus on the solution I’m creating with little ceremony. The code is easy to write and read. The language comes with almost everything included including documentation, testing, fault tolerance, high availability, and scalability. Sending messages and spawning new processes are one liners. The REPL works great.
TODO:
  • - build a cluster
  • - to have deep understanding meta programming with macros :)

About go lang
I like Go because it is the most nonmagical language I’ve ever known, it allows to white very transparent and understandableconcurrent code with high perfomance and without additional runtime. It’s a good choice for very fast and small concurrent programs for networks and tasks that requre low latency.

About js =)
I don’t like JS because of API inconsistency, I can’t enter into the flow state when I work with them.

Employment

december 2017 - present

Enjoybook

Team lead
Personal books for kids and family, custom photoalbums.

Responsibilities:

  • Manage small developers team
  • Migration two servers from heroku to vps
  • Implemented postgres backups jobs with WAL logs and dumps
  • Config vps for staging
  • Cooperate with outsourced devOps for implementation of new cluster infrustructure based on docker
  • Implemented Rspec and TDD
  • Implemented CI && CD
  • Refactor core of applications for better extandability and addition of new products
  • Implemented cross PR review
  • Implemented Code Freeze, bugfixing, git flow
  • Introduced ReactJs/Redux
  • Implemented AWS Lamda for resizing images on the fly

Task tracker - Trello, Jira.

Gitflow

january 2017 - december 2017

Stackinter

Ruby lead developer
Social network.

Responsibilities:

  • Manage small developers team
  • Interaction with manager, setting sprint goals
  • Implemented Rspec and TDD, raised test count from 0 to 1500, coverage ~ 80%
  • Implemented CI && CD
  • Rework of Payment System
  • User model refactor
  • Implemented cross PR review
  • Implemented Code Freeze, bugfixing, git flow
  • Implemented RabbitMQ instead queue based on Sidekiq
  • Developed 2 microservices in addition to main app
  • Developed new app with ReactJS, RoR, Docker for administration puproses
  • Introduced Telegram bot for managing behaviour of social bots
  • Developed alpha version of WebRTC server, with Phoenix/Elixir

Task tracker - Trello, Pivotal, Gitlab.

Gitflow

october 2016 - present

Elixirjob

Founder
Elixir Job board.

Features:

  • CRUD
  • Supervised workers for fetching
  • Interaction with HH API
  • Delayed daily jobs
  • Ansible + exrm for deploy
  • elixirjob.ru
august 2016 - january 2017

Appodeal Inc., on project

Ruby Developer(backend)/ Elixir
Appodeal receives offers from ad networks & RTB exchanges and compares them in real time. Automatic blacklisting, looking up optimal ad networks, tracking user behavior (interests, demographics, machine learning).

Responsibilities:

  • in pair with frontend developer, created new version of cross-promo and direct ad campaign with numerous settings;
  • refactored and improved legacy code
  • improved targeting functionality(user behavior: interests, geo, manufacturer and models, demographics, etc.)
  • adding and improving tests
  • targeting user interests according android/ios device(aerospike, personograph)
  • internal slack bot built with elixir, rent servers for test releases

Task tracker - Redmine.

Gitflow

june 2016 - august 2016

Startup, on project

Ruby Developer(backend)
Universal internet platform for supporting enterpreneurs.

Responsibilities:

  • divide large service on creation of bank accounts and the creation of remittances into two
  • configure asynchronous communication between services by Rabbitmq
  • configure ElasticSearch (gem Chewy) to give data on query
  • compliance with the code style rubocop
  • refactoring
  • TDD, rspec/mini-test, coverage about 95%

Build new features:

  • issue a credit card tied to a personal bank account;
  • opening a deposit entity or individual contribution

Task tracker - Asana.

october 2015 - june 2016

Investment platform ( 4XXI Ltd.)

Ruby Developer(backend)
Savings and investment platform designed to guide you step-by-step.

Responsibilities:

  • development of an investment platform from scratch;
  • database design
  • TDD (RSpec, coverage of about 96 % )
  • compliance with the code style rubocop
  • continues integration
  • deploying with Capistrano
  • interaction with API (Vanare.com, Plaid.com)
  • www.worthfm.com

Task tracker - Jira.

Gitflow

Scrum methodology, sprints, planning poker.

november 2014 - january 2015

Sony

Ruby Developer(fullstack)

Resolve issues and blockers at client side (AngularJs) and backend (RoR 4).

Task tracker - Jira.

november 2013 - may 2014

Freelance

Ruby Developer
Create a variety of simple websites oт Ruby on Rails.
november 2007 - may 2014

SkbBank

Head of Sector

Achievements and responsibilities:

  • Organization of the smooth operation of 15 offices in the Sverdlovsk region.
  • Recruitment, interviewing, testing of candidates, staff adaptation
  • Setting up of personal computers, peripherals, installation of operating systems, support, consulting, training, coaching staff

Education

2001 - 2006

Ural Federal University

B.Sc. Metallurgical and construction technologies. Electric drive and automation of industrial plants

References & recommendations

August 2016 - Novermber 2016

Appodeal Inc.

Ruby Developer( backend )
"Pavel is a great developer with strong skills and high level of self-organizing. And also is a good guy. It was nice to work with him. "

— Konstantin Grabar, Server Team Lead at Appodeal Inc.



October 2015 - July 2016

4XXI Ltd.

Ruby Developer( backend )
"Pavel is an experienced developer. He was always available if we had critical things to fix, he is responsible and passionate about writing code. Pavel is an easy-going person and it was always easy to discuss any tasks with him. I would recommend to work with Pavel. "

— Natasha Katson, Project/Marketing Manager, 4xxi, managed Pavel at 4xxi

Contact info
Address
Phone
Website