Исследуем, что мотивирует людей работать. Пройти опрос (займет около 5 минут).
Обо мне

В целом имею хороший опыт разработки разных систем и разных архитектур.

Знаю "что такое хорошо и что такое плохо" и продолжаю узнавать.

Любимый язык программирования - Go.

Как инструмент для реализации распределенных систем - gRPC.

Люблю работать на энтузиазме и делиться им с другими.

Смотрю в сторону машинного обучения и новых способов разработки.

Увлечения - музыка/медитация/путешествия/дизайн.

Участие в профессиональных сообществах
Опыт работы
Разработка облачных решений для совместной работы со всеми типами документов, обмена сообщениями и хранения файлов.
Software Engineer
Январь 2016 — По настоящее время (3 года и 10 месяцев)

Отдел по разработке корпоративного мессенджера Logos - https://myoffice.ru/apps/logos/

Обязанности

  • коммуницировать с командой (обсуждать инженерные решения с коллегами и схему и формат данных отдаваемый наружу с фронтенд коммандой и отделом мобильной разработки)
  • проводить и проходить code review
  • проводить собеседования
  • писать LLD (low level design ) и HLD (high level design)
  • проводить исследования для выбора технологий
  • прототипирование решений на основе технологий
  • реализовывать функционал на Go и покрывать его unit & integration test
  • документация кода и API

Для управления процессом разработки использовался скрам.

Достижения:

  • API для Web/Mobile клиентов
  • система отправки/получения сообщений между пользователями
  • полнотекстовый поиск на сервере и клиенте в офлайн режиме
  • синхронизация каталога (группы/контакты)
  • GraphQL gateway для виджетов
  • оффлайн работа клиента (встраиваемая библиотека на Go в Electron)
  • p2p и групповые звонки (WebRTC)
  • распределенная система обработки задач
  • интеграция в сервисы логирования и отправки метрик

Используемый стек технологий:

  • Go
  • postgresql
  • redis
  • boltdb
  • etcd
  • rabbitmq
  • kurento media server
  • gRPC
  • nginx
  • GraphQL

Исследования

  • тестирование клиента на Go для RabbitMQ и оценка его модификации для стабильной работы с RabbitMQ
  • возможности шардирования PostgreSQL
  • обзор и тестирование встраиваемых баз данных (KV) на Go
  • обзор open source медиа серверов и оценка интеграции с ними и написание прототипа групповых звонков
  • использование graphql для gateway + grpc как middle layer на Go
  • внедрение http://opentracing.io/

Ведущий мировой разработчик решений в области интеллектуальной обработки информации и лингвистики
Applied Researcher / Senior Engineer
Ноябрь 2015 — Декабрь 2015 (2 месяца)

Инструментарий:

  • Torch7
  • TensorFlow
  • gensim

Обязанности:

Исследование существующих технологий и решений по классификации документов: анализ статей, сравнение моделей, построение прототипов, ведение внутренней отчетности по результатам исследований.

Достижения:

Были рассмотрены решения позволяющие классифицировать документы имеющие в основе:

  • Text Vector Model
  • LDA
  • NN
  • RNN + LSMT

Исследование дало более прикладное понимание проблемы и основу для дальнейших направлений решения задачи.

Team Lead and Chief Architect/Engineer
Ноябрь 2014 — Ноябрь 2015 (1 год и 1 месяц)

Проект Marketplace - https://marketplace.smartcat.pro/

Разработка открытого рынка для исполнителей в сфере переводов.

Инструментарий:

  • Go
  • Docker
  • ElasticSearch
  • MongoDB
  • BoltDB
  • NSQ
  • Drone CI
  • PolymerJS
  • gRPC
  • Ejabberd

Обязанности:

  • Планирование и разработка архитектуры приложения.
  • DevOps / автоматизация выкладки на стенды с Drone CI и Docker/ миграции и прочее.
  • Разработка micro-services/unit tests/libs/clients and others.
  • Код ревью, бранчевание и релизы.

Достижения:

весьма за короткий срок была спланирована и реализована гибкая архитектура сервиса, позволяющая ему легко развиваться, тестироваться и также быть распределенной системой готовой к любым хабр эффектам.

_____________

1 years ago our company decided to develop a Marketplace(www.marketplace.smartcat.pro) for Language Services, and there I took on the role of team leader and chief architect/engineer.

  • Integration with SmartCAT(http://www.smartcat.pro/) (it is a system where customers can create their own projects).
  • A small messaging platform for customers and freelancers to communicate at.
  • Integration with payment systems.

To get all of these and many other things done, I have chosen the following set of tools:

  • Golang - the base language to write all services.
  • Material Design and PolymerJS - for design and front-end framework.
  • Docker - for build, shipping, easy deploy and easy scaling.
  • Drone CI - for continuous integration, deploy, releasing and many other things.
  • Ejabberd - for the messaging platform.
  • NSQ - for real-time event processing and communication for processing services.
  • ElasticSearch - to make easier the process of developing freelancers search and other analytics tools.
  • MongoDB - for storage and GridFS too.

I have run tests on marketplace with vegeta (https://github.com/tsenart/vegeta) and it have passed 1 000 000 reqs per minute. But the actual load at the moment is under 30 000 reqs per minute.

During this time, I also got a lot of experience in how to work with Go and with the Docker,ElasticSearch during production.

Perl/Ext JS Junior Developer -> Senior Developer
Июнь 2011 — Ноябрь 2014 (3 года и 6 месяцев)

Проект TMS

Начал в июне 2011 года как Perl/ExtJS разработчик внутри корпоративной системы управления переводами (TMS). Это была моя первая практика на пути к фулстек разработчику.

Инструментарий:

  • Perl
  • ExtJS
  • MySQL
  • Crontab
  • Nginx

Обязанности:

  • Разработка нового функционала системы MySQL+Perl+ExtJS+Mojolicious.
  • Разработка методов API.
  • Шаблонизация.
  • Написание хранимых процедур под MySQL.
  • Разработка Web приложений на ExtJS.
  • Багфиксы.
  • DevOps/ Выкладка продакшена и все что за этим тянется :)

В итоге полностью разработал:

  • Редактор профиля фрилансера
  • Поиск фрилансеров.
  • Редактор/поиск заказов.

И многое другое.

Чуть позже я менял UI TMS на AngualrJS+Bootstrap. И потом создавал его новый прототип на PolymerJS.

Также был проект по интеграции со smartcat.pro,для чего был разработан отдельный микро-сервис.

Инструментарий:

  • Perl + libev
  • MongoDB
  • Redis
Высшее образование
Московский государственный университет дизайна и технологии им. А.Н. Косыгина (бывший МГТУ Косыгина)
Москва
Факультет: Информационных технологий, автоматики и энергетики
Сентябрь 2007—Июль 2012 (4 года и 10 месяцев)

Специальность: Системы автоматизированного проектирования

Получил обширный запас знаний в этой области и хорошую основу (спасибо преподавателям:).

Языки программирования которые были в курсе:

- С, С++

- C#

- Pascal, Delphi

- Perl

- Lisp

Работали в основном с графикой, механикой, методами шифрования и конечно с дискретной математикой :)