Living in Moscow, Moscow region
Citizen of Russia
Position: Ruby/Rails Senior
I like to create products and services using information technologies to provide users with some new opportunities, e.g. services for obtaining electronic cheques, hotel reservation or search for deposits.
To do it, I use the following skills:
- writing technical assignment / specification (with focus on question "what and how to do for it");
- using client-server approach and technologies;
- programming the main functionality on the server side and minimally necessary on the client side;
- sometimes — wrting test cases / scenarious;
- sometimes — operational documentation;
- sometimes — schemata and diagrams of business processes, systems interaction etc.;
- sometimes — creating user interface layouts;
- sometimes — collecting data, formulation and testing hypotheses.
Currently, I'm looking for relocation or remote work. Business trips are allowed.
Back-end (server side)
Ruby — more than 3 years of experience (for companies), and also for my own's tasks. I try to write "clean" code, i.e. with understandable abstractions, visual, safe, reliable. An interesting example is a text parser, that transforms serialization of Java objects to JSON format.
Rails — more than 3 years of experience (for companies), and also for my own's tasks. I pay great attention to the structure of the code, so that the code is more flexible for later modifications. Also, I prefer to write small specailized classes, for example "repository" for obtaining objects collections (instead of typical approach — scope or methods of ActiveRecord::Base subclasses), this method allows me to separate business logic from data storage.
Sinatra (Ruby) — about 1 year of experience, use it in wiki-like site for technical documentation.
php — more than 2 years of experience (for companies), and also for my own's tasks. I use php for small sites and CMS.
Slim framework (php) — about 1 year of experience. Example: web interface for access control (PACS).
SQL — more than 4 years of experience. I can write simple and complex queries, but do it rare, because ORM solves most issues with databases.
MySQL — more than 2 years of experience. I used triggers and views. For example, I migrated data from TecDoc to MySQL (auto models, supplies etc., all kept in little-known DBMS).
PostgreSQL — more than 4 years of experience. Including full-text search and views, hstore.
MongoDB — about 1 year of experience.
Redis — about 1 year of experience. Example: solution for checking site/service operability.
TDD — 1 year of experience. I use RSpec, FactoryGirl, FFaker, and in some solutions — Capybara, Cucumber.
HTML HTML5 Slim templates (Ruby) — I use modern approaches for developing layouts of complex web pages.
CSS CSS3 Sass
JSON Schema — I use it for describing typical forms generated on client-side, and for client-side validations.
Redmine — 1-2 years of experience in developing Redmine-based solutions. These solutions are internal corporate systems for management of projects, issues, business processes and specific object types. Example plugins: announcements (notifications) on-site, logging queries to the site.
UML User Story ER-diagrams — 1-2 years of experience in System Analyst role in large corporate projects.
XML SOAP — developed integration between several systems.
UX — I made sketches for some web pages using Balsamiq, Visio, Quant UX.
Docker git Linux
Desired work conditions
Prefer to plan the solution of the problem before starting the work and to write clean code. It makes easier to implement new features and changes in code.
I like to determine what and how I should do, and also plan my activities.
I feel comfortable working independently, and if necessary I ask help from the staff.
I love to work in teams where every person has unique role (cross-functional teams), e.g. front-end + back-end + designer + product owner.
A good workplace for me looks like this: light enough, quiet, there is a chair or armchair up to the shoulders or above, not an "open space" for 30 people or more (maybe less) — important that it is quiet.
Important! I don't like overtime work, especially when it is not compensated by money or rest days.
Expectations for corporate culture
I'm interested in a democratic, creative environment, where there is space for the development of work processes and results, as well as experiments (development is always accompanied by experiments!). I welcome the combination of adaptability and organization!
In general, there should be quiet in the office. Discussions and demonstrations of works are appropriate to hold in the meeting room.
|Year of ending||Educational institution, direction of training|
|2015||Postgraduate (not finished PhD thesis), Moscow Technical University of Communication and Informatics|
|2013||Course "Project Management Workshop. Key documents, tools, solutions", "Project Practice"|
|2012||Specialist degree, 5-year graduate (Information Technologies, Computer Software), Moscow Technical University of Communication and Informatics|
Rails Developer at GameServerKings
Big changes in UI of the site (with the help of web designer), and also new features & functions on the site for clients & employees of this company. This company provides virtual hosting for online games. It's international team. I work remotely there, all communications are held in English.
Dev Team Lead at MOC ICT (Russia)
It is a subsidiary company of the Government of the Moscow region.
Developed Redmine-based site for controlling freight carriage.
There were 2 other developers in the team, everybody worked remotely.
But, alas, there were overtime work (even work on holidays) and a lot of stress.
System Analyst at Sberbank-Technology (Russia)
November 2017 — April 2018, 6 months UML
It is a subsidiary company of the largest bank in Eastern Europe, Sberbank.
I took part in the development of a set of programs for storing and managing data of the bank's clients, including:
- writing operational documentation;
- creating technical specifications for developers;
- designing integration between internal systems in micro-service platform.
Process Analyst at FC Otkrytie (Russia)
June 2017 — October 2017, 5 months UML Use Case UX
It is one of the largest banks in Russia.
I worked there in webdev team. Most interesting achievements there:
- I explored standards and recommendations on adapting web sites for visually, hearing and motor impaired people. Result this work in a set of guidelines for team. This work should make company's sites more convenient for these groups of people, i.e. reading information from this bank, filling the forms etc.
- Also, I explored business process of cash exchange for customers: from putting order on web site to getting cash in branch offices. I described all associated processes, including information systems and user actions. And coordinated integration work.
- I studied the topic of collateral properties and wrote technical specification for a third-party contractor to develop a site with a catalog of objects: real estate, cars, equipment.
System Analyst and Developer at NIIAS (Russia)
September 2016 — May 2017, 9 months Ruby Oracle UML XML SOAP
This company develops integration platform for Russian Railways.
I was involved in the integration of several information systems of the company in order to automate the drawing up of train schedules in the Russian Far East. To do it, I collected and coordinated the requirements with all interested parties, wrote algorithms for converting and transferring data from one systems to others. Using XML, XSD, WSDL, SOAP.
System Analyst / Developer at Uniweb (Russia)
January 2015 — July 2016, 1 year and 7 months
First, as a Developer (about a year), and then as a System Analyst.
System Analyst: UML Use Case User Story
As a System Analyst, I gathered requirements, elaborated them, wrote specifications for developers, and researched business processes.
Improved business process of enrolment in paid online courses on the site uniweb.ru to reduce time of processing the application by 30% through the introduction of early registration on training and performing similar operations by a single thread.
As a Software Engineer, I developed site for promoting distance learning courses for foreigners who wants to learn the Russian language (PushkinOnline), within team. Automated tests, refactoring, new features, bug fixes.
Increased stability (by 15%) and loading speed of the site by using automated testing and code refactoring. Also developed sections and features on the site, which increased the number of registrations on the online courses by 20%.
Developer at MTS (Russia)
It is one of the largest telecommunication companies in Eastern Europe.
I created a prototype of information system based on Redmine to test and elaborate ideas about project management in this large company
Lead Developer at CityAds (Russia)
This company provides services in Internet advertising.
I created a unified system for task management of employees at all levels (Redmine + custom plugins), thereby reducing the costs for the use of some third-party applications.
Implemented CRM for employees and migrated data from Salesforce. To get it done, I've collected requirements from employees, created data model and associated functionality, and trained users. Some tasks I gave to my subordinate.
Lead Developer at Wand (Russia)
It is web design studio.
I developed sites for commercial and non-profit organizations, within team and with help of one subordinate.
PHP Developer at CobraTelecom (Russia)
It is a telecommunication company that supplies Asterisk-based phone stations to medium and large companies.
I prepared the company's main product for installation in large Russian companies:
- introduced new software architecture for the development of new product’s features and improvement of code quality;
- updated look&feel of product's web interface;
- automated standard operations;
- developed operational documentation.
Delphi Developer at Salut (Russia)
July 2009 — September 2010, 1 year and 3 months Delphi Oracle
Developed buisiness applications using Delphi and Oracle DBMS.
English — upper-intermediate, B2
Italian — elementary (elementare), A2
A few more words about learning
I read articles on different topics, try new approaches and technologies for myself. Some recent examples:
- configured the assembly of CSS and JS files using Webpack;
- learned new way to re-structure the code in Rails with the separation of data modification operations (gem mutations), validations, generation of data forms — all in classes, instead of typical for Rails Way approach, "fat models".
Interesting in programming languages like Crystal, Rust and Go — for increasing speed of code execution, approaches for increasing the reliability of programs, familiar syntax.
I do paired Latin American dances (called forró) and learn the Italian language.