Сейчас основной стек - это php с приоритетом на Symfony. Не против переключиться на Golang, но практического опыта меньше полугода.
Разработчик с разнообразным опытом: создание web-сайтов, серверных скриптов, разработка с нуля, работа в легаси-проектах, патчи к сторонним системам.
Работал и как бекенд-программист в паре с фронтенд-программистом.
И как единственный фуллстек-программист плюс менеджер-сисадмин.
И как один из разработчиков в проекте, где 100 человек.
И как программист-тexлид команды из трёх программистов плюс удалённые менеджер-тимлид, тестировщик и сисадмин.
Librarian
in
Children Recreation Camp "Forest Fairy Tale"
June 2006 - August 2006, June 2007 - August 2007, June 2008 - August 2008
Software Engineer
in
P.O.Sukhoi State Technical University of Gomel
August 2009 - May 2018
Develop of Unified System of User Authorization: registration, personal account of the user, admin panel, curricula, management of hosts, logs, etc.
Getting data from 1C using SOAP.
Patches for some of the system used.
Projects:
GUI-client to configure dhcp,
September 2009 - November 2009
Registration in the Unified System of User Authorization,
November 2009 - November 2012
Personal account of the user by Unified System of User Authorization,
November 2009 - November 2012
Administrator module from Unified System of User Authorization,
November 2009 - July 2013
Различные небольшие скрипты и патчи,
January 2010 - May 2018
Payment and statistics of students,
July 2010 - November 2012
Managing DHCP configuration via web-interface,
June 2011 - November 2012
Personal account of the user by Unified System of User Authorization. Version 2,
December 2012 - March 2015
Administrator module from Unified System of User Authorization. Version 2,
April 2013 - May 2018
Electronic deanery,
May 2014 - June 2014
Statistics of Internet use,
July 2014 - August 2014
Common SOAP-server for interactions with 1C,
October 2014 - May 2018
Reading rfid-tags student card in Linux,
February 2015 - February 2015
Personal account of the user by Unified System of User Authorization. Version 3,
March 2015 - May 2018
CAS-авторизация для DSpace6,
November 2017 - December 2017
GUI-client to configure dhcp
Developer,
September 2009 - November 2009
For changing of DHCP configuration, which is stored in LDAP, use your GUI-client with predefined rules and restrictions.
The project was rejected.
Responsibilities:
Design and creation of GUI, communication via C-library libldap.
Technology:
C/C++, Qt3, libldap
Registration in the Unified System of User Authorization
Developer,
November 2009 - November 2012
Registration in the ESAP, which automatically creates accounts of students and staff for all services:
educational and administrative sites, mail, access to Internet, file storage.
Responsibilities:
Designing database, creating interface, checking of entered data on databases deans and department personnel.
Technology:
Perl, Catalyst, MySQL, HTML/CSS
Personal account of the user by Unified System of User Authorization
Developer,
November 2009 - November 2012
Information for user about available services and quotas.
Changing the password.
Responsibilities:
Designing and implement web-interface.
Technology:
Perl, Catalyst, MySQL, HTML/CSS
Administrator module from Unified System of User Authorization
Developer,
November 2009 - July 2013
Viewing and editing of the settings of access to resources for students and staff.
Viewing the distribution statistics of students and staff on educational groups and departments.
Changing and checking official mail aliases.
Managing advanced settings of access to resources by using groups in ldap.
View logs of all modules and notify the administrator about critical errors.
Management of operators of Unified System of User Authorization.
Responsibilities:
Development of web-interface, which interacted with MySQL and LDAP. Software maintenance.
Technology:
Perl, MySQL, LDAP, Catalyst, HTML/CSS
Различные небольшие скрипты и патчи
Developer,
January 2010 - May 2018
Из change-файла со вставками sql-кода получить готовый к выполнению sql-файл.
Оптимизация сравнения двух больших perl-хешей.
Найти все процессы-воркеры, и kill те, которые ещё не зомби, но потребляют много процессора.
Php-cкрипт, делавший optimize table в MySQL, переписать на консольный perl-скрипт с поддержкой параметров.
Для случайно изменённого поля mysql-таблицы восстановить предыдущие значения из бекапа, при этом не обновляя другие поля или таблицы.
Поиск бага в локальной версии intuit.
Поиск причины зависания видео на новом ноутбуке.
Собрать драйвер для нового сканера, а то некорректно работает на последней версии OC.
Для плагина camm приложения cacti добавить оповещение через jabber.
Преобразовать данные из xml в csv.
Сравнение двух схем БД: одна в формате sql, вторая в json-формате.
Responsibilities:
Разработка скриптов и патчей.
Technology:
Perl, MySQL, С, Php, Python
Payment and statistics of students
Developer,
July 2010 - November 2012
Data about payments and debts of students from 1C unloaded in MySQL via SOAP.
Then the web-server shows it to students.
Responsibilities:
Development of webserver and soap-server. Forming wsdl, xsd, skeleton of function for 1C-programmers.
Technology:
SOAP/WSDL, Perl, MySQL, 1C
Managing DHCP configuration via web-interface
Architect, developer,
June 2011 - November 2012
Storage DHCP configuration in the database makes it possible to change not only by system administrator.
Also allows you to make backup copies and to link with other information about the host.
Responsibilities:
Development of database, scripts for transferring DHCP configuration from LDAP to database. Creating of web-interface for editing data, checking constraints, scripting database synchronization with LDAP.
Technology:
Perl, Mojolicious, LDAP, MySQL, HTML/CSS, DocBook
Personal account of the user by Unified System of User Authorization. Version 2
Lead developer,
December 2012 - March 2015
Combining projects "Registration in the Unified System of User Authorization", "Personal account of the user" and "Payment and statistics of students"
with design change and migration to platform Mojolicious+Bootstrap3.
Add information about the educational process: curricula of correspondence faculty, academic performance and certification.
Restoring password and username.
Responsibilities:
Everything except updates on production-server. Issuing tasks for designer. Software maintenance.
Technology:
Perl, Mojolicious, HTML/CSS/JavaScript, MySQL
Administrator module from Unified System of User Authorization. Version 2
Lead developer,
April 2013 - May 2018
Association with the project "Managing DHCP configuration via web-interface" and migration to platform Mojolicious+Bootstrap3.
Adding mail server logs, dhcp logs and dhcp statistics.
Binding hosts with staff.
Assigning responsibility for information security in the units and rooms.
General UI improvements.
Inventory number of the computer.
Displaying data on the computers of the OCS Inventory NG.
Use the JS framework Dojo to display statistics ( filtering and graphics ).
There was an attempt to redesign the site as a web application on REST-architecture with the client part on Dojo,
but eventually it was decided to use the gradual refactoring taking into account the gained experience.
Purpose responsible for maintenance and installation.
Logging maintenance hosts.
Filling by staff data about educational process.
But Terms of Reference is missing.
After a year decided to purchase a ready-madе standart 1C-configuration.
Responsibilities:
Is not defined. Transferred to other project.
Technology:
Python, OpenERP
Statistics of Internet use
Developer,
July 2014 - August 2014
Replacement LightSquid on Free-SA.
Statistics considered by IP, but due to a VPN it is dynamic.
Required replacing IP to username using database billing system ~AsmodeuS~.
As well as optimization of this change, because the analyzer due to frequent calls to the database sometimes can not be completed until the morning.
Responsibilities:
Analysis and modification of free-sa project. Optimization (caching last data from billing system).
Technology:
С, libmysqlclient
Common SOAP-server for interactions with 1C
Lead developer,
October 2014 - May 2018
There is a replacement of some systems ( evolution: MS Access => MS SQL Server => MySQL => 1C ) at 1C-configuration "Management of budgetary institution 8".
But some of the data that will be stored in the 1C, need for Unified System of User Authorization.
After analysis of the options ( SOAP, OData, direct access to PostgreSQL ) chose to run unloading via SOAP on schedule.
In the process of implementation the project has evolved into a platform where you can create an unlimited number of additional SOAP servers.
In July 2017 downloading of data about payment students moved here from the personal account of the user.
Responsibilities:
Creating of wsdl-links, nginx-configurations, soap-scripts ( used fcgi ), functions for unloading data from 1C, scheduled tasks in 1C.
Technology:
Perl, 1C, SOAP/WSDL, MariaDB
Reading rfid-tags student card in Linux
Lead developer,
February 2015 - February 2015
Library switched to OS Linux.
Program from the vendor for reading rfid-tags were not working correctly in Wine.
Responsibilities:
Analysis of the similar program for OS Windows.
Created a daemon process for reading rfid-tags.
Technology:
Perl, Linux ( bash, xvkbd, udev )
Personal account of the user by Unified System of User Authorization. Version 3
Lead developer,
March 2015 - May 2018
Support multilingual interface.
Adaptive design to support mobile phones.
Issuance of all available information to students of correspondence courses.
Authorization in Microsoft DreamSpark.
Authorization via Jasig CAS.
Responsibilities:
Everything except first line of technical support and updates of production-DB.
Technology:
Perl, HTML/CSS/JavaScript, Mojolicious, MariaDB
CAS-авторизация для DSpace6
Developer,
November 2017 - December 2017
Добавление CAS-авторизации для DSpace 6.
На github нашёлся патч для DSpace 5, но для CAS он использовал внешнюю библиотеку старой версии.
Эта старая версия библиотеки не собиралась, имела несовместимый с новой версией интерфейс и полтора года как полностью снята с поддержки.
Переписал найденный патч на DSpace 6 и org.jasig.cas.client 3.4.1
Responsibilities:
Анализ похожего патча для старых версий, написание нового патча, тестирование.
Technology:
Java, Apache Cocoon, Jasig CAS Server, org.jasig.cas.client v3.4.1
Software Engineer
in
Private trade and production unitary enterprise "First dimension"
January 2012 - June 2012
Inspecting and editing website izmerenie.by. Patches for 1C:Accounting
Webmaster
in
Gometal.by
September 2015 - October 2017
Создание и поддержка сайта gometal.by.
Сайт представлял собой интернет-витрину из готовых статических страниц,
которые были сгенерированы с помощью perl и пакета ImageMagick на основе xml и шаблонов Mojo::Template.
Software Engineer
in
Стратегический консалтинг
February 2017 - May 2017
Backend и frontend без вёрстки и дизайна. Технологии: Python/Django, MySQL, HTML/JS
Software Engineer
in
ITDoc
November 2017 - January 2018
Сфера деятельности компании – разработка и поддержка программного обеспечения
для крупнейшей в США сети производителей/дистрибьюторов медицинского оборудования и лекарственных препаратов.
Использовал: PHP7/Symfony3, JavaScript
Software Engineer
in
BostilSupport
February 2018 - July 2019, November 2019 - April 2021
Projects:
Reverd phone scam stopper,
February 2018 - June 2018, November 2019 - April 2020
SmartBuy,
June 2018 - October 2018
Корзина для shop.by,
November 2018 - December 2018
Mebeljurnal.ru,
November 2018 - December 2018
Mir24.tv,
December 2018 - July 2019, November 2019 - April 2021
Объявления на shop.by,
January 2021 - March 2021
Reverd phone scam stopper
Разработчик,
February 2018 - June 2018, November 2019 - April 2020
Система учёта и обработки данных для крупного канадского проекта, связанного с мобильной связью.
Основная задача проекта - остановить нежелательные телефонные звонки.
Responsibilities:
Переписывание админки с чистого PHP на Symfony(easyadmin), добавление в неё функционала. Создание API для интеграции с корпоративными клиентами
Technology:
PHP7, Symfony3, MySQL
SmartBuy
Ведущий разработчик,
June 2018 - October 2018
Проект рекламы через кассовые чеки.
Игрок сканирует чек или QR-код в магазине, регистрируется в системе
и принимает участие либо во мгновенной лотерее, "стирая" билетик на смартфоне, либо в викторине.
При выигрыше обращается к кассиру за призом.
CMS для управления множеством компаний-клиентов и их кампаний с призами.
Responsibilities:
Анализ. Реализация всего backend. Deploy. Доработка под frontend
Technology:
PHP7, Symfony4, JSON API, MySQL
Корзина для shop.by
Разработчик,
November 2018 - December 2018
Глобальная корзина - посредник между покупателями и магазинами-продавцами.
Продавцы подключают корзину как сервис.
Корзина сама определяет, какому конкретному магазину перенаправить заказ.
Заморожено из-за долгого согласования с менеджментом
Responsibilities:
Анализ ТЗ. Изучение существующего кода. Оценка времени выполнения
Technology:
PHP, Go, Laravel, Yii2, MySQL, GraphQL
Mebeljurnal.ru
Разработчик,
November 2018 - December 2018
Responsibilities:
Отвязка от старой БД, оставшейся от Joomla. Обновление PHP и Laravel до свежих версий
Technology:
PHP, Laravel, MySQL
Mir24.tv
Разработчик, техлид,
December 2018 - July 2019, November 2019 - April 2021
Багофиксы и разнообразные дополнительные функции для mir24.tv и её админки.
Реализация API для SmartTV.
Переписывание API для мобильного приложения с Java на PHP.
Сайт-кастинг для "Слабого звена".
Responsibilities:
Начинал как один из пяти программистов, а закончил как программист-техлид команды из трёх программистов плюс удалённые менеджер-тимлид, тестировщик и сисадмин.
Для объявлений создаются 4 подпроекта, у которых общий API.
К нему могут обращаться либо PHP, либо Vue.js.
API написано на Golang, скрывает БД от всех остальных и его интерфейс - это GraphQL
Responsibilities:
Проектирование, реализация и тестирование БД и API
Technology:
Go, GraphQL, MySQL, ManticoreSearch, PHP, Laravel
Software Engineer
in
Z4.by
July 2019 - October 2019
Разработка CRM для Поступи.бел.
Технологии: PHP7/Laravel5.8, JavaScript/Vue.js, MySQL, Redis, WebSocket.
Senior Software Engineer
in
VirtualHealth
April 2021 - Present
Projects:
Infrastructure team,
April 2021 - April 2022
Workflows team,
May 2022 - November 2022
Backend team,
November 2022 - Present
Infrastructure team
Developer,
April 2021 - April 2022
Основные домены: New instances, ElasticSearch, AWS S3, Airflow, Notifications, Twilio. Команду расформировали при обновлении процессов в компании.
В описание попали больше инфраструктурные задачи. Основные задачи под NDA или понятны только внутри компании.
Из-за требований безопасности заменил распределённые мютексы, написанные на Zookeeper, на распределённые мютексы, написанные на Locking Functions из MySQL.
Внедрение Veracode SAST в bitbucket pipelines.
CDC Maxwell генерирует события по бинлогу MySQL.
Но появились изолированные PostreSQL, для которых тоже нужно реагировать на изменения данных.
Для этих случаев решено использовать бизнес-события.
Но для конечного пользователя обработка этих двух типов событий не должна отличаться.
Если из треугольника "Дёшево. Быстро. Качественно." вычеркивается Качественно, то мне некомфортно.
Предпочитаю вычеркивать или Быстро, или по чуть-чуть Быстро и Дёшево
Профиль по Белбину: специалист, аналитик, далее плотной группой идут финишёр, исполнитель, идеегенератор.
Хобби: исследовать и созидать.
Коллекционирование впечатлений, идей, мыслей и сюжетов из книг и фильмов;
велосипед, исследование местности пешком;
мысленное построение математическо-аналитической модели чего-либо.
Например, найду алгоритм или стратегию выигрыша в игре и после этого могу потерять к ней интерес, ведь осталось просто следовать найденному алгоритму.
Третья рабочая группа инвалидности: после 18 лет больше по близорукости, а до 18 по ДЦП.
Один глаз с рождения 0.03 и зрение монокулярное.
На должностях, требующих работу на компьютере,
медкомиссию сейчас прохожу, если в направлении на медосмотр будет формулировка
"... на должность инженера-программиста без вредных условий труда".
В Беларуси формулировка вредности:
"Наблюдение за экранами видеодисплейных терминалов:
при буквенно-цифровом типе отображения информации - более 3 часов в смену,
при графическом типе отображения - более 5 часов в смену"
( пункт 5.6.3 Приложения 1 Постановления Министерства здравоохранения Республики Беларусь от 28.04.2010 N 47 ).
Есть ИП, на них медкомиссия не распространяется. Другие маловероятные варианты: аренда/аутстаффинг; официально 3, а фактически 8; договор подряда.
Возможно я чего-то не учёл либо законы уже поменялись.
Английский неразговорный.
На слух иностранные языки воспринимаются плохо, т.к. из звукового потока я не всегда успеваю выделить слова до того как произнесётся следующая фраза.
Это также осложняется тем, что написание и произношение слов в английском языке отличаются.
Ещё для распознавания слов важен контекст.
На матанализе была новая тема и новый термин, который я слышал то как "пояс", то как "полюс".
После лекции я посмотрел в учебнике: полюс. Больше слова "пояс" я не слышал :)
А вот русские "пятьдесять" и "шестьдесять" я нередко путаю, т.к. они звучат похоже и в любом контексте равнозначны.
If you are creating or refreshing the development team, please contact me.
I will consider any proposal.