Веб-разработчик с опытом создания web-сайтов и серверных скриптов. Знание PHP, Perl, а также JavaScript, Python, C/C++, 1C, Java. Проектирование и выполнение проекта с нуля до готового продукта. Анализ кода существующей системы и внесение изменений в неё. Имею склонность к аналитике.
photo Обловацкий Юрий
Местонахождение: Беларусь, Гомель
Эл. почта: jury@observat.by
Телефон: +375-33-6834075 mts whatsapp
+375-29-9487321 velcom telegram
Github: Observat
Skype: 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 - продолжаю работать

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

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

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

Обязанности:
Переписывание админки на Symfony, добавление в неё функционала.
Технологии:
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 - настоящее время

Обязанности:
Багофикс. Переписывание API для мобильного приложения с Java на PHP. Реализация API для SmartTV
Технологии:
PHP, Laravel, Lumen, Java, ReactJS, MySQL, Sphinx, Memcached

Образование

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

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

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

Навыки

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

Обо мне

Из треугольника "Быстро. Качественно. Дёшево." чаще вычёркивается "быстро". Стараюсь всё делать на совесть, но без фанатизма.

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

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

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

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


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

Последнее обновление: 2019-04-09 16:44:57