Сейчас основной стек - это php с приоритетом на Symfony. Не против переключиться на Golang, но практического опыта меньше полугода.

Разработчик с разнообразным опытом: создание web-сайтов, серверных скриптов, разработка с нуля, работа в легаси-проектах, патчи к сторонним системам.

Работал и как бекенд-программист в паре с фронтенд-программистом. И как единственный фуллстек-программист плюс менеджер-сисадмин. И как один из разработчиков в проекте, где 100 человек. И как программист-тexлид команды из трёх программистов плюс удалённые менеджер-тимлид, тестировщик и сисадмин.

photo Обловацкий Юрий
Местонахождение: Беларусь, Гомель
Эл. почта: jury@observat.by
Телефон: +375-29-9487321 a1 telegram
+375-33-6834075 mts whatsapp
Github: Observat

Опыт работы

Библиотекарь в Детский оздоровительный лагерь "Лесная сказка"
Июнь 2006 - август 2006, июнь 2007 - август 2007, июнь 2008 - август 2008

Инженер-программист в ГГТУ им. П.О.Сухого
Август 2009 - май 2018

Разработка Единой Системы Авторизации Пользователей: регистрация, личный кабинет пользователя, админка, учебные планы, управление хостами, логи и др. Получение данных из 1С с помощью SOAP. Патчи к некоторым используемым системам.

Проекты:
GUI-клиент для настройки dhcp, сентябрь 2009 - ноябрь 2009
Регистрация в ЕСАП ( единая система авторизации пользователей ), ноябрь 2009 - ноябрь 2012
Личный кабинет пользователя ЕСАП, ноябрь 2009 - ноябрь 2012
Модуль администратора ЕСАП, ноябрь 2009 - июль 2013
Различные небольшие скрипты и патчи, январь 2010 - май 2018
Оплаты, статистика студентов, июль 2010 - ноябрь 2012
Управление конфигурацией DHCP через web-интерфейс, июнь 2011 - ноябрь 2012
Личный кабинет пользователя ЕСАП. Версия 2, декабрь 2012 - март 2015
Модуль администратора ЕСАП. Версия 2, апрель 2013 - май 2018
Электронный деканат, май 2014 - июнь 2014
Статистика пользования интернетом, июль 2014 - август 2014
Общий SOAP-сервер для взаимодействий с 1С, октябрь 2014 - май 2018
Чтение rfid-меток студенческого билета в Linux, февраль 2015 - февраль 2015
Личный кабинет пользователя ЕСАП. Версия 3, март 2015 - май 2018
CAS-авторизация для DSpace6, ноябрь 2017 - декабрь 2017
GUI-клиент для настройки dhcp

Разработчик, сентябрь 2009 - ноябрь 2009

Для изменения конфигурации DHCP, которая хранится в LDAP, использовать свой GUI-клиент с предустановленными правилами и ограничениями. Вместо ldap-браузера общего назначения. Проект отклонён.

Обязанности:
Проектирование и создание GUI, связь через С-библиотеку libldap.
Технологии:
C/C++, Qt3, libldap
Регистрация в ЕСАП ( единая система авторизации пользователей )

Разработчик, ноябрь 2009 - ноябрь 2012

Регистрация в ЕСАП, которая автоматически создаёт аккаунты студентов и сотрудников для всех услуг: учебных и административных сайтов, почты, интернета, файлового хранилища.

Обязанности:
Проектирование БД, создание интерфейса и проверка введённых данных по базам данных деканатов и отдела кадров.
Технологии:
Perl, Catalyst, MySQL, HTML/CSS
Личный кабинет пользователя ЕСАП

Разработчик, ноябрь 2009 - ноябрь 2012

Информация пользователю о доступных сервисах и квотах. Изменение пароля.

Обязанности:
Проектирование и написание web-интерфейса.
Технологии:
Perl, Catalyst, MySQL, HTML/CSS
Модуль администратора ЕСАП

Разработчик, ноябрь 2009 - июль 2013

Просмотр и редактирование настроек доступа к ресурсам для студентов и сотрудников. Просмотр статистики распределения студентов и сотрудников по учебным группам и подразделениям. Изменение и проверка алиасов официальной почты. Управление дополнительными настройками доступа к ресурсам используя группы в ldap. Просмотр логов всех модулей ЕСАП и оповещение администратора о критических ошибках. Управление операторами ЕСАП.

Обязанности:
Разработка web-интерфейса и взаимодействие с MySQL и LDAP. Сопровождение.
Технологии:
Perl, MySQL, LDAP, Catalyst, HTML/CSS
Различные небольшие скрипты и патчи

Разработчик, январь 2010 - май 2018

Из change-файла со вставками sql-кода получить готовый к выполнению sql-файл. Оптимизация сравнения двух больших perl-хешей. Найти все процессы-воркеры, и kill те, которые ещё не зомби, но потребляют много процессора. Php-cкрипт, делавший optimize table в MySQL, переписать на консольный perl-скрипт с поддержкой параметров. Для случайно изменённого поля mysql-таблицы восстановить предыдущие значения из бекапа, при этом не обновляя другие поля или таблицы. Поиск бага в локальной версии intuit. Поиск причины зависания видео на новом ноутбуке. Собрать драйвер для нового сканера, а то некорректно работает на последней версии OC. Для плагина camm приложения cacti добавить оповещение через jabber. Преобразовать данные из xml в csv. Сравнение двух схем БД: одна в формате sql, вторая в json-формате.

Обязанности:
Разработка скриптов и патчей.
Технологии:
Perl, MySQL, С, Php, Python
Оплаты, статистика студентов

Разработчик, июль 2010 - ноябрь 2012

Данные об оплате и задолженностях студентов из 1C выгружаются в MySQL через SOAP. Потом web-сервер показывает это студентам.

Обязанности:
Реализация web- и soap-серверов. Формирование wsdl, xsd; каркаса функции для 1С-программистов.
Технологии:
SOAP/WSDL, Perl, MySQL, 1C
Управление конфигурацией DHCP через web-интерфейс

Архитектор, разработчик, июнь 2011 - ноябрь 2012

Хранение конфигурации DHCP в БД даёт возможность изменять её не только системному администратору. Также позволяет делать резервные копии и связывать с другой информацией о хостах.

Обязанности:
Разработка БД, перенос конфигурации DHCP из LDAP в БД, создание web-интерфейса, редактирование с проверкой ограничений, написание скриптов синхронизации БД с LDAP.
Технологии:
Perl, Mojolicious, LDAP, MySQL, HTML/CSS, DocBook
Личный кабинет пользователя ЕСАП. Версия 2

Ведущий разработчик, декабрь 2012 - март 2015

Объединение проектов "Регистрация в ЕСАП", "Личный кабинет пользователя ЕСАП" и "Оплаты, статистика студентов" с изменением дизайна и переходом на платформу Mojolicious+Bootstrap3. Добавление информации об учебном процессе: учебные планы заочного факультета, мониторинг успеваемости, аттестация. Восстановление пароля и логина.

Обязанности:
Всё, кроме обновлений на production-сервере. Выдача заданий дизайнеру. Сопровождение.
Технологии:
Perl, Mojolicious, HTML/CSS/JavaScript, MySQL
Модуль администратора ЕСАП. Версия 2

Ведущий разработчик, апрель 2013 - май 2018

Объединение с проектом "Управление конфигурацией DHCP через web-интерфейс" и переход на платформу Mojolicious+Bootstrap3. Добавление логов почтового сервера, логов dhcp и статистики dhcp. Привязка хостов к сотрудникам. Назначение ответственных за информационную безопасность в подразделениях и комнатах. Общее улучшение интерфейса. Инвентарный номер компьютера. Отображение данных о компьютерах из OCS Inventory NG. Использование JS-фреймворка Dojo для отображения статистики ( фильтрация и графики ). Была попытка переделать сайт как вебприложение на REST-архитектуре с клиентской частью на Dojo, но в итоге решено использовать постепенный рефакторинг с учётом полученного опыта. Назначение ответственных за техобслуживание и установку ПО. Журнал техобслуживания хостов.

Обязанности:
Вся разработка, сопровождение.
Технологии:
Perl, Mojolicious, HTML/CSS/JavaScript, Dojo, MariaDB, LDAP, SOAP, XPath
Электронный деканат

Разработчик, май 2014 - июнь 2014

Заполнение деканатами данных об учебном процессе. Но ТЗ нет. Через год решено приобрести готовую типовую 1С-конфигурацию.

Обязанности:
Не определено. Переведён на другие задачи.
Технологии:
Python, OpenERP
Статистика пользования интернетом

Разработчик, июль 2014 - август 2014

Замена LightSquid на Free-SA. Статистика считается по IP, но из-за использования VPN он динамический. Требуется заменa IP на логин, используя БД биллинг-системы ~AsmodeuS~. А также оптимизация этой замены, т.к. анализатор из-за частых обращений к БД иногда не успевал завершиться до утра.

Обязанности:
Анализ и модификация free-sa. Оптимизация ( кеширование последних данных из биллинг-системы ).
Технологии:
С, libmysqlclient
Общий SOAP-сервер для взаимодействий с 1С

Ведущий разработчик, октябрь 2014 - май 2018

Идёт замена некоторых систем ( эволюция: MS Access => MS SQL Server => MySQL => 1C ) на 1С-конфигурацию "Управление бюджетным учреждением 8". Но некоторые данные, которые будут храниться в 1C, нужны для ЕСАП. После анализа вариантов ( SOAP, OData, прямое обращение к PostgreSQL ) выбрали запуск выгрузки через SOAP по расписанию. В процессе выполнения проект превратился в платформу, на которой можно создавать неограниченное количество дополнительных SOAP-серверов. В июле 2017г выгрузка данных об оплате и задолженностях студентов перенесена сюда из личного кабинета пользователя ЕСАП.

Обязанности:
Создание wsdl-ссылок, nginx-конфигураций, soap-скриптов ( используется fcgi ), внешних выгрузок в 1С, регламентных заданий в 1С.
Технологии:
Perl, 1C, SOAP/WSDL, MariaDB
Чтение rfid-меток студенческого билета в Linux

Ведущий разработчик, февраль 2015 - февраль 2015

Библиотека перешла на ОС Linux. В wine программа от поставщика для чтения rfid-меток работала некорректно.

Обязанности:
Анализ работы аналогичной программы для ОС Windows. Создание демон-процесса для чтения rfid-меток.
Технологии:
Perl, Linux ( bash, xvkbd, udev )
Личный кабинет пользователя ЕСАП. Версия 3

Ведущий разработчик, март 2015 - май 2018

Поддержка многоязычного интерфейса. Адаптивный дизайн для поддержки мобильных телефонов. Выдача всей доступной информации студентам заочной формы обучения. Авторизация в Microsoft DreamSpark. Авторизация через Jasig CAS.

Обязанности:
Всё, кроме первой линии техподдержки, начального deploy и обновлений production-БД.
Технологии:
Perl, HTML/CSS/JavaScript, Mojolicious, MariaDB
CAS-авторизация для DSpace6

Разработчик, ноябрь 2017 - декабрь 2017

Добавление CAS-авторизации для DSpace 6. На github нашёлся патч для DSpace 5, но для CAS он использовал внешнюю библиотеку старой версии. Эта старая версия библиотеки не собиралась, имела несовместимый с новой версией интерфейс и полтора года как полностью снята с поддержки. Переписал найденный патч на DSpace 6 и org.jasig.cas.client 3.4.1

Обязанности:
Анализ похожего патча для старых версий, написание нового патча, тестирование.
Технологии:
Java, Apache Cocoon, Jasig CAS Server, org.jasig.cas.client v3.4.1

Инженер-программист в ЧТПУП "Первое измерение"
Январь 2012 - июнь 2012

Инспектирование и правка сайта izmerenie.by. Изменения в 1С:Бухгалтерии.

Web-мастер в Gometal.by
Сентябрь 2015 - октябрь 2017

Создание и поддержка сайта gometal.by. Сайт представлял собой интернет-витрину из готовых статических страниц, которые были сгенерированы с помощью perl и пакета ImageMagick на основе xml и шаблонов Mojo::Template.

Инженер-программист в Стратегический консалтинг
Февраль 2017 - май 2017

Backend и frontend без вёрстки и дизайна. Технологии: Python/Django, MySQL, HTML/JS

Программист в АйТиДок
Ноябрь 2017 - январь 2018

Сфера деятельности компании – разработка и поддержка программного обеспечения для крупнейшей в США сети производителей/дистрибьюторов медицинского оборудования и лекарственных препаратов. Использовал: PHP7/Symfony3, JavaScript

Инженер-программист в БостилСаппорт
Февраль 2018 - июль 2019, ноябрь 2019 - апрель 2021

Проекты:
Reverd phone scam stopper, февраль 2018 - июнь 2018, ноябрь 2019 - апрель 2020
SmartBuy, июнь 2018 - октябрь 2018
Корзина для shop.by, ноябрь 2018 - декабрь 2018
Mebeljurnal.ru, ноябрь 2018 - декабрь 2018
Mir24.tv, декабрь 2018 - июль 2019, ноябрь 2019 - апрель 2021
Объявления на shop.by, январь 2021 - март 2021
Reverd phone scam stopper

Разработчик, февраль 2018 - июнь 2018, ноябрь 2019 - апрель 2020

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

Обязанности:
Переписывание админки с чистого PHP на Symfony(easyadmin), добавление в неё функционала. Создание API для интеграции с корпоративными клиентами
Технологии:
PHP7, Symfony3, MySQL
SmartBuy

Ведущий разработчик, июнь 2018 - октябрь 2018

Проект рекламы через кассовые чеки. Игрок сканирует чек или QR-код в магазине, регистрируется в системе и принимает участие либо во мгновенной лотерее, "стирая" билетик на смартфоне, либо в викторине. При выигрыше обращается к кассиру за призом. CMS для управления множеством компаний-клиентов и их кампаний с призами.

Обязанности:
Анализ. Реализация всего backend. Deploy. Доработка под frontend
Технологии:
PHP7, Symfony4, JSON API, MySQL
Корзина для shop.by

Разработчик, ноябрь 2018 - декабрь 2018

Глобальная корзина - посредник между покупателями и магазинами-продавцами. Продавцы подключают корзину как сервис. Корзина сама определяет, какому конкретному магазину перенаправить заказ. Заморожено из-за долгого согласования с менеджментом

Обязанности:
Анализ ТЗ. Изучение существующего кода. Оценка времени выполнения
Технологии:
PHP, Go, Laravel, Yii2, MySQL, GraphQL
Mebeljurnal.ru

Разработчик, ноябрь 2018 - декабрь 2018

Обязанности:
Отвязка от старой БД, оставшейся от Joomla. Обновление PHP и Laravel до свежих версий
Технологии:
PHP, Laravel, MySQL
Mir24.tv

Разработчик, техлид, декабрь 2018 - июль 2019, ноябрь 2019 - апрель 2021

Багофиксы и разнообразные дополнительные функции для mir24.tv и её админки. Реализация API для SmartTV. Переписывание API для мобильного приложения с Java на PHP. Сайт-кастинг для "Слабого звена".

Обязанности:
Начинал как один из пяти программистов, а закончил как программист-техлид команды из трёх программистов плюс удалённые менеджер-тимлид, тестировщик и сисадмин.
Технологии:
PHP7, Laravel, Lumen, ReactJS, Java, MySQL, Memcached, Sphinx
Объявления на shop.by

Разработчик, январь 2021 - март 2021

Для объявлений создаются 4 подпроекта, у которых общий API. К нему могут обращаться либо PHP, либо Vue.js. API написано на Golang, скрывает БД от всех остальных и его интерфейс - это GraphQL

Обязанности:
Проектирование, реализация и тестирование БД и API
Технологии:
Go, GraphQL, MySQL, ManticoreSearch, PHP, Laravel

Инженер-программист в Зачётка
Июль 2019 - октябрь 2019

Разработка CRM для Поступи.бел. Технологии: PHP7/Laravel5.8, JavaScript/Vue.js, MySQL, Redis, WebSocket.

Senior Software Engineer в VirtualHealth
Апрель 2021 - продолжаю работать

Проекты:
Infrastructure team, апрель 2021 - апрель 2022
Workflows team, май 2022 - настоящее время
Infrastructure team

Developer, апрель 2021 - апрель 2022

Основные домены: New instances, ElasticSearch, AWS S3, Airflow, Notifications, Twilio. Команду расформировали при обновлении процессов в компании.

Технологии:
PHP7, Symfony, Yii, Python, Airflow, RabbitMQ, ElasticSearch, MySQL, AWS S3
Workflows team

Developer, май 2022 - настоящее время

Основные домены: Care team, Maxwell, Interact, Twilio

Технологии:
PHP7+, Symfony, Yii, RabbitMQ, ElasticSearch, MySQL, AWS

Образование

ГГУ им. Ф.Скорины

Програмное обеспечение информационных технологий

Беларусь, Гомель, 2004-2009

Навыки

Технологии Уровень и последнее использование
Языки программирования
PHP
2022
Python
2021
Go
2021
JavaScript
2021
Java
2019
Perl
2018
C
2015
C++
2009
Хранилища данных
MySQL/MariaDB
2022
Elasticsearch
2022
Redis
2021
Sphinx/ManticoreSearch
2021
Memcached
2021
LDAP
2017
SQLite
2016
PostgreSQL
2016
MS SQL
2009
Платформы
HTML/CSS/JS
2021
SOAP/WSDL
2018
1C
2018
.Net
2009
Иностранные языки
Английский
2022
Французский
2004

Обо мне

Если из треугольника "Дёшево. Быстро. Качественно." вычеркивается Качественно, то мне некомфортно. Предпочитаю вычеркивать или Быстро, или по чуть-чуть Быстро и Дёшево

Профиль по Белбину: специалист, аналитик, далее плотной группой идут финишёр, исполнитель, идеегенератор.

Хобби: исследовать и созидать. Коллекционирование впечатлений, идей, мыслей и сюжетов из книг и фильмов; велосипед, исследование местности пешком; мысленное построение математическо-аналитической модели чего-либо. Например, найду алгоритм или стратегию выигрыша в игре и после этого могу потерять к ней интерес, ведь осталось просто следовать найденному алгоритму.

Третья рабочая группа инвалидности: после 18 лет больше по близорукости, а до 18 по ДЦП.

Один глаз с рождения 0.03 и зрение монокулярное. На должностях, требующих работу на компьютере, медкомиссию сейчас прохожу, если в направлении на медосмотр будет формулировка "... на должность инженера-программиста без вредных условий труда". В Беларуси формулировка вредности: "Наблюдение за экранами видеодисплейных терминалов: при буквенно-цифровом типе отображения информации - более 3 часов в смену, при графическом типе отображения - более 5 часов в смену" ( пункт 5.6.3 Приложения 1 Постановления Министерства здравоохранения Республики Беларусь от 28.04.2010 N 47 ). Есть ИП, на них медкомиссия не распространяется. Другие маловероятные варианты: аренда/аутстаффинг; официально 3, а фактически 8; договор подряда. Возможно я чего-то не учёл либо законы уже поменялись.

Английский неразговорный. На слух иностранные языки воспринимаются плохо, т.к. из звукового потока я не всегда успеваю выделить слова до того как произнесётся следующая фраза. Это также осложняется тем, что написание и произношение слов в английском языке отличаются. Ещё для распознавания слов важен контекст. На матанализе была новая тема и новый термин, который я слышал то как "пояс", то как "полюс". После лекции я посмотрел в учебнике: полюс. Больше слова "пояс" я не слышал :) А вот русские "пятьдесять" и "шестьдесять" я нередко путаю, т.к. они звучат похоже и в любом контексте равнозначны.


Если создаёте или пополняете команду разработчиков, то обращайтесь. Рассмотрю любые предложения.

Последнее обновление: 2022-06-06 18:38:26