Обо мне

https://github.com/dimuls/

https://bitbucket.org/dimuls/

https://vk.com/dimuls

https://tech-mail.ru/alumni/1/44

Личные качества: самостоятелен, неконфликтен, легко осваиваю новые технологии.

Сейчас люблю и использую go, goland, postgres, docker, linux, ubuntu, vim, git, bash.

Работая в bitlum хорошо познакомился с технологией блокчейн и такими криптовалютами как биткоин и эфир. Вдумчиво прочёл книгу Mastering bitcoin.

В прошлом увлекался perl, mojolicious, html/css, javascript, jquery/knockout.js, pytest, node.js.

Профессиональные навыки
GolangDockerGitBashLinuxPostgreSQL
Участие в профессиональных сообществах
Опыт работы
3ATDev занимается разработкой веб- и мобильных приложений , обеспечивает долгосрочную поддержку разработанных продуктов
Симферополь
Программист
Февраль 2019 — По настоящее время (9 месяцев)

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

  • поддержка существующих микросервисов на Go,
  • написание новых микросервисов на Go,
  • администрирование Docker контейнеров и Gitlab CI,
  • поддержка и разработка админки на Typescript/Angular.

Был произведён переезд репозиториев из Bitbucket в Gitlab, настроены Gitlab CI для перенесённых репозиториев.

Настройка и запуск staging среды со всеми микросервисами по моей инициативе.

Решена проблема долгих запросов к MongoDB путём изменения схемы БД и правильного использования библиотеки на Go.

Написано большое кол-во различных сложных аггрегаций к MongoDB.

Решена проблема переподключения к RabbitMQ используя библитеку cony.

Спроектирован и написан новый сервис (TM). Спроектирован и переписан с улучшениями старый сервис (SM).

Большое кол-во мелких правок и улучшений микросервисов.

Разобрался с Typescript/Angular, написал несколько разделов в админке, много мелких правок и улучшений в старых разделах.

Разобрался с текущей схемой деплоя, в которой используется Docker, Docker Compose, Gitlab CI. Написал несколько докер-контейнеров и конфигов docker-compose. Писал сценарии .gitlab-ci.yml.

Boomstarter.network
Москва
Ведущий программист
Сентябрь 2018 — Январь 2019 (5 месяцев)

Изучение существующих решений майнинг пулла. Разработка патча для github.com/coinfoundry/miningcore. Познакомился с языком C#.

Изучение и внедрение terraform для управления AWS. Сделал конфигурацию из трёх машин и контролем доменной зоны на terraform.

Развертывание демонов блокчейнов в докерах на серверах AWS с использованием docker-machine. Развёртывание miningcore и postgresql в докере с использованием docker-machine.

Разработка прототипа мультиплатформенного десктопного майнер-клиента на базе github.com/asticode/go-astilectron.

Разработка API бэкенда, админки на базе echo и gorm. Покрытие кода тестами. Настроил деплой проекта с использованием bitbucket pipelines. Сделал systemd конфиг для сервиса проекта.

GolangPostgreSQLDockerJavaScriptHTMLCSSC#Amazon AWSDevops
Bitlum
Вильмингтон
Ведущий программист
Февраль 2018 — Июль 2018 (6 месяцев)

Разработка и поддержка бэкенда криптовалютного обменника zigzag.io. Разработка и поддержка криптовалютной биржи для внутренних нужд. Разработка и поддержка payserver - единого апи к криптовалютным блокчейнам.

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

Поднял и запустил сервис мониторинга на основе prometheus+grafana. Первым сделал сбор метрик в бэкенде обменника, на основе которых потом были сделаны нотификации о проблемах.

Разработал докеры для всех сервисов. Особенно выделяются докеры для пейсервера https://github.com/bitlum/payserver/tree/master/docker. Здесь сделаны докеры для регтест, тестнет, мейннет сетей. Всё это позволило проводить быстрые деплои новых версий софта с использованием docker-machine. До этого демоны блокчейнов управлялись руками и скриптами на хосте.

В целом я довольно быстро прошёл путь от мелких доработок в процессе знакомства в начале до ответственности почти за всю систему обменника.

Краснодар
Go разработчик
Февраль 2017 — Декабрь 2017 (11 месяцев)

Разработка и поддержка игрового фреймворка, который состоял из множества компонентов: веб-сервер, socket.io сервер, клиенты к другим подсистемам, таймеры, менеджер комнат, обобщённая комната, расчёт рейка, запись игры, логирование, конфиги и прочие...

Решение архитектурных проблем связанных игровым фреймворком и его взаимодействия с другими подсистемами. Провёл обширный рефакторинг игрового фреймворка, избавил его от багов и проблем, привёл к стабильному виду.

Разработка и поддержка карточных и настольных игр на базе игрового фреймворка: дурак, козёл, 21, нарды, покер, сека. Часть игр была написана с нуля, часть переписана под фреймворк.

По мере накопления опыта в предметной области пришло понимание оптимальной конструкции игр и фреймворка. Последние игры - покер и нарды были написаны за относительно короткий срок.

Покрытие игровых движков тестами на Ginkgo/Gomega.Взаимодействие с разработчиками фронтенда и других подсистем. Код ревью.

Разработка велась в среде Goland (Gogland). Использовался CI vexor.io.

Работал полностью удалённо, самоорганизовывался и поддерживал стабильную производительность труда. Не боялся работать в свободное время на чистом энтузиазме.

Новые Облачные Технологии
Москва
Ведущий разработчик
Октябрь 2016 — Январь 2017 (4 месяца)
Работа в бэкенде МойОфиса на языке Perl. В основном фиксы различных багов. Работа с БД Postgresql: создание таблиц, добавление индексов. Написал плагин для postfix, который разрешал или запрещал отправку писем в зависимости от адресов отправителя и получателя.
To change the way people shop in SEA
Ведущий разработчик
Апрель 2016 — Июнь 2016 (3 месяца)
Касался задач связанных с бэкендом на Go: это решение мелких проблем, добавление новых фич. Ознакомился с архитектурой больших нагруженных проектов на Go. Написал много тестов для интернет магазина lazada с использование py.test, полностью его освоив.
Телеком-Защита
Москва
Ведущий разработчик
Февраль 2014 — Апрель 2016 (2 года и 3 месяца)
Разработка и поддержка веб-гуи для поиска в большой распределённой базе данных. До меня уже был веб-гуи, который работодателя не устраивал. Был нанят для того, чтобы переписать старый гуи. Я упростил схему бд, вывел конфигурационную часть в файлы, с нуля переписал веб-гуи, сделал рабочую систему прав доступа и журналирования событий. Для вёрстки никакие фреймворки (bootstrapm, jquery-ui, yui, бэм) не использовал: мне хотелось отточить навыки кроссбраузерной вёрстки. Написал очень богатый слой js с использованием knockout.js: требовалась сложная логика интерфейсов, особенно на форме создания запросов. Получил опыт кросс-браузерной вёрстки: IE8-11, Firefox, Chrome. Новый веб-гуи очень понравился как работодателю так и пользователям. Бэкенд я переписывал тоже с нуля с использованием mojolicious. В процессе разработки хорошо его освоил. В качестве базы данных для гуи используется postgresql. До работы в Телеком-Защита я имел дело только mysql, но postgresql я быстро освоил. Движок написанного веб-гуи позволяет быстро добавлять новые типы запросов, с разными наборами полей. Занимался вопросами сборки и деплоя веб-гуи: написал скрипты и спеки для сборки rpm. Движок гуи позволет собирать сборки для разных заказчиков. Работал с git хуками для интеграции с bugzilla. Начал проект автоматизированного тестирования веб-гуи с использованием casper.js. Написал тесты для формы логина. Передал проект ответственному за качество. До меня гуи тестировался только вручную. В итоге всё это было переписано на perl-вый клиент к selenium, был реализован PageObject, и несколько тестируемых форм. Были написаны несколько тестов с использованием PageObject. Поднял и настроил selenium бэкенд с firefox и google chrome. Написал скрипты миграции и импорта большого массива данных из Oracle в Postgresql. Начиная с октября 2015 руковожу 1 программистом-помощником: даю задачи, контролирую результат. Работал над переходом от RPM-сборок к LXC-контейнерам. Написал скрипт деплоя, написал сборку проекта с использованием Carton. Освоил и стал широко применять возможности функционального программирования perl (map, grep, List::Util, List::MoreUtils) и javascript (underscore.js/lodash.js). Пришло понимание, что во многих случаях функциональное оформление алгоритмов намного проще в реализации и яснее в восприятии (при понимании ФП, конечно). Главное достижение: целиком написаный веб-гуи для большой распределённой системы. Личное для себя достижением я считаю написание фреймворка для построения богатых форм: можно конфигом задать набор полей, способы валидации и логику отображения. Этот конфиг применяется как для отображения и валидации в браузере, так и для валидации на бэкенде, в perl. Кроме веб части, поддерживал некоторые важные бэкенд-скрипты, которые обеспечивали отправку запросов на узлы распределённой БД так и приём результатов.
Мы ждем людей, которые хотят воплощать и развивать масштабные проекты
Младший разработчик
Август 2013 — Октябрь 2014 (1 год и 3 месяца)
Работа в проекте Авто@Mail.ru. Работал со всеми аспектами веб-разработки: Правка багов, написание сервисных скриптов, создание и поддержка внутренних админок, написание скриптом миграции БД, написание бизнес-логики проекта, написание javascript скриптов. Главное достижение, то чем я горжусь: я сделал админку для помощи в определении гео-координат автосалонов по их адресу. Для этого на странице работали три карты: от гугл, мейл.ру и яндекс. Менеджер мог список автосалонов с координатами, полученные по трём разным апи карт. В случае большого отличия, он мог вручную выставить геокординаты, в случае совпадения - координаты сохранялись автоматически. Это очень ускорило заполнение гео-координат у автосалонов нашего проекта. К достижению можно добавить, админку для импорта новостей из news@mail.ru в проекта авто. Менджеру проекта хотелось поиск и импорт новостей связанных с авто тематикой. Была сделана одна страница с богатым js, который по jsonp получила список новостей и отображал их менеджеру. Менеджер мог выбрать список тегов, регионов, листать страницы результатов поиска. При импорте он переходил в уже созданную ранее форму создания новости с заполненными полями. Не менее важным достижением, лично для себя: я получил большой опыт фронтэнд разработки (js/css/html). Отдельно хочу отметить знакомство и освоение knockout.js.
Высшее образование
Московский государственный технический университет имени Н.Э. Баумана
Москва
Факультет: Информатики и систем управления; ИУ
Сентябрь 2005—Июнь 2011 (5 лет и 9 месяцев)
Прошёл курс повышения квалификации Технопарк Mail.ru по специализации Системный архитектор https://tech-mail.ru/alumni/1/44.
Рекомендательные письма
felian
Go, Golang Developer, Teamlead, Тимлид, remote work full time • руководитель

Здравствуйте.

Вадим - перспективный разработчик, стремится к лидерству, профессиональному росту и освоению новых технологий. Лоялен, обладает мнением, которое отстаивает. Знает что такое рефакторинг и тесты, применяет эти знания, экспериментирует в поиске лучшего подхода к реализации поставленной задачи.

Наше удалённое сотрудничество показало что данный сотрудник достаточно организован, не опаздывает к началу рабочего дня, внимателен. Пропущенное рабочее время отрабатывает.

В целом сложилось положительное впечатление.

Письмо написано 21 декабря 2017 в 10:29