Обо мне

I'm working at “Core” department in a team of five people (three senior
developers and two QA engineers), also we have a manager that express
requirements for the new upcoming projects. We follow Agile project development
strategy with two weeks sprints, scrum board, story points, planning, backlog,
grooming etc.
In-hand technologies: Java Core, JMH (not used often but really magic tool),
Spring, (Apache Commons and Guava - I Love both).
Web servers and databases: MongoDB, Jetty.
Other: Maven, Gradle, Mercurial.

Профессиональные навыки
Опыт работы
Июнь 2017 — по настоящее время (1 год и 1 месяц)
Software Developer
Санкт-Петербург
Обязанности и достижения

Develop new and support more then ten microservices, some of them internal and some of them used by thousand of Infobip customers (like Infobip Customer Portal). Most of the services consist of three parts front-end, middleware and back-end. I'm working as a part of an Agile team of six T-Shape developers, so all of us could develop and support all parts of all our services, but some of us have specialisations (I'm not so familiar with front-end techs, but take more tasks in back-end and databases). For back-end we use Kotlin (we love coroutines and actors) and Java with Spring Boot ecosystem (Web Services, Data, Caches, Schedulers, Actuator etc.), MongoDB, Elastic and PostgreSQL

for data storages, Graylog, Kibana and Splunk for log analyses, Prometheus and Grafana for monitoring. Also some internal company tools used for deploying Docker containers, service discovery and load balancing.

Июнь 2016 — Июнь 2017 (1 год и 1 месяц)
Lead Software Developer
Санкт-Петербург
Обязанности и достижения

Involved in the full software development life cycle of "Site Audit" service (https://www.semrush.com/features/site-audit/)

Used technologies:

- Java8, Spring(REST, Data, IoC), Javaslang, Jooλ, Hamcrest, Mockito, Project Lombok, Guava etc.

- Hadoop, HBase (Cloudera), MongoDB

Апрель 2015 — Июнь 2016 (1 год и 3 месяца)
Principal Software Developer
Санкт-Петербург
Обязанности и достижения

Project: Historical data aggregation

- Scala + Akka(Routers, Balancing, Persistent, FSM) as main development stack;

- Re-implemented application that was initially based on Java and Scheme;

- JOOQ for constructing SQL queries;

- Scheme language for SQL query patterns;

- RxJDBC and RxJava widely used;

- SQL query analysis and optimization (Oracle, MSSQL, PostgreSQL).

Июнь 2013 — Апрель 2015 (1 год и 11 месяцев)
Senior Java Developer
Санкт-Петербург
Обязанности и достижения

I'm working at “Core” department in a team of five people (three senior

developers and two QA engineers), also we have a manager that express

requirements for the new upcoming projects. We follow Agile project development

strategy with two weeks sprints, scrum board, story points, planning, backlog,

grooming etc.

In-hand technologies: Java Core, JMH (not used often but really magic tool),

Spring, (Apache Commons and Guava - I Love both).

Web servers and databases: MongoDB, Jetty.

Other: Maven, Gradle, Mercurial.

Projects:

● Distributed grid service based on Oracle Coherence.

● Distributed, fault tolerant and high availability service (based on MongoDB) (four locations) with

over 200 huge request/sec per each node with the main aim to replace big

and expensive solution based on OrcaleDB and provide possibility for

handling terabytes of data.

● GEO location service that allows or disallows using of some specific service

based on IP of the end user, this project was required a low-latency

response from server side (less than 100 ms), specific data structure for

storing and handling IP addresses located in memory.

● Internal UI console for managing VoIP traffic, switching between different

database etc.

Октябрь 2009 — Май 2013 (3 года и 8 месяцев)
Sablono
Java Software Engineer
Берлин
Обязанности и достижения
- Разработка библиотеки версионирования объектов; - Разработка программного обеспечения на платформе Eclispe RCP; - Разработка слоя взаимодействия с базой данных. Скринкаст демонстрирующий работу библиотеки: http://youtu.be/szO8AQLYPVw Исходный код на GitHub'е: https://github.com/INLHELL/setvers Разрабатываемый программный продукт используется для проектирования процессов строительного производства. Мною была создана библиотека для версионирования состояний объектов, библиотека предоставляет функционал схожий с системами управления версиями: возврат к предыдущему состоянию объекта, ветвление, слияние различных версий и т.д. Данная библиотека абсолютно не зависит от предметной области и может использоваться в других проектах. Для описания того, как будут хранится объекты, а также как они будут показаны пользователю используются аннотации, анализ объектного графа реализован при помощи механизмов рефлексии. Для визуализации результатов работы, мною был создан графический интерфейс (Eclipse widgets, JFace, SWT). Также я создал и поддерживаю слой приложения отвечающий за взаимодействие с базой данных. На первом этапе проекта использовался - Hibernate+MySQL/H2, позднее - Ektorp+CouchDB. Работа на кафедре строительной информатики, преподаваемые предметы: - Моделирование (структуры данных, базы данных, оценка алгоритмов, паттерны проектирования), - Строительная Информатика (введение в программирование на Java, структуры данных и алгоритмы), - Моделирование бизнес процессов (календарное и сетевое планирование). Публикации: 1) "Mapping an Internal Object Graph Structure onto an Understandable Structure of Versioned Sets", http://www.icccbe.ru/paper_long/0345paper_long.pdf 2) "Разработка простого Eclipse RCP приложения", http://habrahabr.ru/post/139340/ 3) "Setvers - Versioning Sets of Objects", http://zuse.ucc.ie/forumbau2011/papers/12.pdf 4) "Implementation Concept of a Versioning Approach for Civil Engineering Process Models", http://link.springer.com/chapter/10.1007%2F978-0-85729-024-3_54
Высшее образование
Сентябрь 2003 — Май 2008
ВолгГАСУ
ИАиС - Строительный
Волгоград
Специализация и достижения
Информационные Системы и Технологии Работа над Ph.D. в TU-Berlin