Обо мне

Занимаюсь профессиональной разработкой на javaee с 4 курса университета СГАУ, который закончил в 2013г. Значительное время работа была связана с настольными приложениями на javafx в сфере медицины, начиная от работы медсестры — до счетов по программе ОМС.

Из анализа собственного опыта работы выявил свою основную функцию - решать проблемы. По духу близки принципы экстремального программирования (XP).

Развиваюсь в сторону full-stack разработки. Терпеть не могу непрофессионализм.

Опыт работы
Разработка мобильных сервисов и мультиплатформенных мобильных приложений для бизнеса и госсектора
Senior developer
Сентябрь 2019 — По настоящее время (1 год и 2 месяца)
  • обработка событий
  • построение аналитической модели средствами SQL
  • предоставление результатов анализа для табличного и графического отображения на UI
  • тестирование и доставка
ИМЦ
Самара
Руководитель разработки
Март 2013 — Сентябрь 2019 (6 лет и 7 месяцев)
  1. За первые полгода в рамках наработок и каркаса существующих модулей в одной известной больнице была автоматизирована работа врачей-офтальмологов по формированию выписки пациенту на основании введенной информации от разных узких специалистов(Swing/EJB3/Hibernate/Jasper Reports). При этом информация по пациентам попадала в накопительную базу посредством двусторонней синхронизации (PL/SQL процедура) со сторонней отчетно-учетной системой.
    • разработана гибкая модель данных (EAV-CR) и API к ней
    • сформирован набор компонент для развития текущего функционала и перевода устаревшей отчетно-учетной системы
    Формально проект не получил развития, так как требования и условия по переводу устаревшей системы постоянно менялись. Однако, по прошествию 2 лет при попытке модификации данного функционала другим человеком с переводом на более современную платформу UI (JavaFX) возникли проблемы в удобстве работы. Хотя за время функционирования предыдущей версии нареканий не возникало.
  2. Второй крупный проект начался в конце 2014г. и продолжается по сей день. После обсуждения текущих проблем в разработке с руководством для формирования новой технологической платформы мне было предложено возглавить разработку нового продукта "А.. С..", первоначальная задача которого заключалась в переводе отдельно стоящего модуля по вводу данных ОМС счетов и формированию различных отчетов. Второстепенной его целью являлась формирование "кирпичиков" для построения более крупных систем. Проект оказался на столько недооцененным, что основная фаза его разработки затянулась примерно на год при участии 5 человек. Так как был старый продукт, на новый переходить ни у кого не было желания. Но сфера ОМС такова, что постоянно происходят изменения в формате обмена данными. По сути между субъектами информационного обмена передаются XML-пакеты, которые складываются в накопительную БД для последующего анализа.
    Рассказывать можно очень долго... Подмечу только техническую составляющую:
    • JavaFX/WebSocket/EJB 3.1/CDI/JAXB/Dozer/JPA/Hibernate4/JasperReports
    • разработана библиотека интеграции java-клиента c java-server-ом по WebSocket, являющаяся основой desktop-продуктов. Подробнее делился здесь: https://habr.com/post/422073/
    • разработан механизм связывания формы на клиенте с БД
    • построен процесс непрерывной доставки с использование CI сервера, maven и кастомного установщика конечному пользователю
    • внедрены инструменты Youtrack, Teamcity, инженерные практики Code Review и TDD
    • на базе библиотеки интеграции клиента и сервера реализована поддержка лицензии с ограничением на количество одновременных подключений
    • реализована библиотека перезагрузки клиентской формы аналогично поведению браузера по нажатию F5
    • получен опыт в написании переносимых SQL (Oracle, MySQL, PostgreSQL) запросов
    Проект успешно внедрен у ~ 80 частных и государственных медицинских учреждений с ~ 240 количеством рабочих мест.
  3. Параллельно с ранее упомянутым проектом реализовал личный кабинет для скачивания результатов анализов клиники по репродуктивным технологиям. (JSF - RichFaces/EJB 3.1)
  4. Также ~ в 2016г. на базе полученных наработок на том же стеке технологий в составе 7 человек стартовал проект по переводу устаревшей отчетно-учетной системы автоматизирующей процессы приема пациента в рамках системы ОМС. Требования и цели этого проекта постоянно пересматривались. После остановки на решении задачи учета больничных коек, как стартового, модуля проект приобрел цель. Это был еще один недооцененный проект, который был успешно завершен к середине 2017г., но проект заморозили, так как были сомнения в намеченном пути desktop-продуктов. Возникли кадровые проблемы, и руководство начало задумываться о переходе к UI на Web, и, как следствие, формированию очередной новой платформы. Из нового:
    • Проектирование UX с использованием персонажей, пользовательских историй и макетов
    • Изучение и применение на практике принципов Agile, Lean, XP
    • Оптимизация кода UI-платформы JavaFX посредством java-agent
    • работа с инструментами профилирования VisualVM, Memory Analyzer, Misson Control, Flight Recorder по выявлению причин падения производительности
    • написание макро-benchmark-ов на API платформы
  5. На момент конца 2018г. я внедряю унаследованный продукт по обработке межтерриториальных ОМС счетов. Хотя проект и стартовал в конце 2016г. и предполагал регламент в 1 год, окончательно цель проекта была достигнута только в конце 2018г.
    • благодаря готовой платформе и отработанному стеку технологий начал уделять огромное внимание проектированию кода по DDD
Мировой лидер в области создания и внедрения решений по управлению телекоммуникационными операциями
Software Engineer
Сентябрь 2012 — Февраль 2013 (6 месяцев)

В течение года ( 2011 - 2012 гг. ) обучался на курсах NetCracker и успешно их закончил. В рамках курсов были реализованы тестовые проекты с применением JEE технологий, освоены базовые знания при работе с JavaScript, XML, HTML, SQL. 

На протяжении 6 месяцев работал в компании NetCracker в должности Software Engineer (Java Developer). В обязанности входила поддержка и доработка уже имеющегося функционала, имплементация новых Use Case и объектной модели на базе Фреймворка компании. Анализ технических возможностей Фреймворка для реализации определенного функционала. Расширение функционала Фреймворка под необходимые задачи. Получил общие представления о паттернах проектирования, использующихся на разных уровнях модели JEE. Некоторые из них приходилось реализовывать. 

Благодаря специфики проекта, который изначально был реализован в основе своей не на Фреймворке, получил хорошее знания языка PL/SQL, опыт оптимизации SQL запросов и опыт работы с Системой контроля версий Subversion (Tortoise SVN).

Высшее образование
Самарский национальный исследовательский университет имени академика С.П. Королёва
Самара
Факультет: Информатики; 6
Сентябрь 2008—Июнь 2013 (4 года и 9 месяцев)