Обо мне

Мои навыки - это техническое мастерство и умение обучать. Нравится разрабатывать тесты, балдею, когда они выявляют проблемы боевого кода.

Имею опыт работы Team Lead'ом.

Начинал программировать ещё в школе, купив зелёный учебник Немнюгина "Turbo Pascal".

Профессиональные навыки
Опыт работы
Старший системный проектировщик
Январь 2017 — Апрель 2019 (2 года и 4 месяца)

В Управлении по развитию Платформы.

Работа на первой линии поддержки фокус-групп, участвующих в бета-тестировании CFT Platform IDE, работа с обратной связью (Confluence).

Обучаю пользователей из фокус-групп работе в CFT Platform IDE.

В своей работе применяю Java Multithreading/Concurrency API и Java Stream API.

Опыт работы с Lucene API, а именно создал сервис автообновления индекса для поиска по исходному коду объектов БД и индекса для отображения модели объектов БД. 

Опыт работы с Apache Commons SCXML (Finite State Machine Implementation).

Самая интересная запомнившаяся задача с БД Oracle, которой я занимался в этот период времени - в серверной части ТЯ реализовать возможность переноса LOB-данных из одного табличного пространства в другое. Это нужно было сделать быстро, чтобы ЦФТ смог выполнить свои обязательства перед Банком и Банк, в новогодние каникулы смог проапргрейдить свои хранилища данных.

+ Всё то, чем занимался ранее.

Ведущий инженер-программист
Декабрь 2014 — Декабрь 2016 (2 года и 1 месяц)

В Управлении по развитию Платформы.

Добавление поддержки Oracle Partitioning в серверной части ТЯ, а так же в АРМ-е Admin. К этому моменту у старушки-платформы уже существовал собственный механизм разделения (секционирования) таблиц – режим архивирования. Oracle Partitioning мы поддержали. В процессе разработки писались тесты на языке PL/SQL.

Начало работы над новым продуктом - CFT Platform IDE на основе Eclipse IDE:

  • Java, Eclipse Plugin Development.
  • JUnit & JUnit Plugin tests (Mockito + PowerMock). SWTBot tests.
  • Разработка грамматики языка PL+ на базе Xtext (Language Engineering), EMF (Eclipse Modeling Framework). Поддержка Code Assist, линкинга и гиперлинкинга в коде, проверки кода «на лету», рефакторинг кода и др.
  • Использование Java Persistence API и JDBC.

Исходный код прикладных объектов должен стать первичным (язык PL+), чтобы его можно было хранить в репозиториях систем контроля версий (Git, Subversion) вместо того, чтобы хранить и поставлять данные прикладных объектов в табличном формате в виде хранилищ MDB (Pick).

  • Участие в кросс-командных Code Review.
  • Прокачка собственных Soft Skills.  Активная работа с Томской командой разработки.
  • Планирование и выполнение работ по решению технического долга (боевой код и тесты) - Code Guard / Archi.
  • Всё то, чем занимался ранее.
Старший инженер-программист
Сентябрь 2012 — Декабрь 2014 (2 года и 4 месяца)

В Управлении по развитию Платформы.

Исправление ошибок и улучшение в административных АРМах:

  • «Администратор доступа» (UAdmin)
  • «Администратор проекта» (Pick)
  • «Администратор словаря данных» (Admin)
  • «Администратор дистрибутива» (PjAdmin)

Разработка серверной части технологического ядра (ТЯ): Oracle PL/SQL.

Автоматизация тестирования при помощи TestComplete.

Поддержка сборочной машины MS Build, Bamboo.

Работа на второй линии поддержки, общение с сотрудниками сопровождения Банков.

Плотно занимался проектом по обновлению АРМа «Администратор доступа» (UAdmin): работа была направлена на то, чтобы дать legacy-коду спокойно «умереть». Это приложение, написанное с помощью языка Visual Basic 6, обслуживающее подсистему доступа серверной части Технологического Ядра (ТЯ) на схемах БД Oracle. Оно позволяет управлять субъектами доступа – группами и пользователями, а также пользовательскими правами доступа к прикладным объектам системы (экземплярам ТБП, операциям, представлениям на схеме БД Oracle). Именно с этим АРМ-ом были выявлены неудобства пользовательского интерфейса и большое количество дефектов, зарегистрированных Банками (в т.ч. в серверной части ТЯ). Отсутствие регрессионных тестов огорчало, как и в принципе отсутствие каких-либо тестов (с VB6 это было проблематично). Перед нами поставили задачу по переписыванию кода с использованием языка C# и технологии WPF.  Считаю, что нам удалось достигнуть цели: большая часть приложения была переделана на WPF – это та, которая пользовалась большей популярностью и та, по которой были заявлены дефекты. Другая часть осталась на языке VB6 – непопулярные окна приложения и общий код, который использовался в других АРМ-ах компании. Банки получили:
• Улучшенный пользовательский интерфейс: всевозможные поиски и фильтры, древовидное отображение данных там, где его хотелось видеть, упрощенную работу с несколькими субъектами и объектами в подсистеме доступа.
• Отзывчивый пользовательский интерфейс благодаря асинхронному исполнению кода приложения.
• Большое число исправленных дефектов.
Мы получили:
• Меньше дефектов, регистрируемых Банками в будущем, благодаря тестируемому коду. А код мы разрабатывали с помощью Unit-тестов по технике TDD и руководствовались принципами проектирования S.O.L.I.D. Так же, в зоне моей ответственности оказалась разработка UI-тестов TestComplete, начало которым положили наши инженеры-тестировщики.
• Налаженный процесс автоматизированной сборки, тестирования, выпуска очередной версии продукта и документации благодаря интеграции с Bamboo. Потом автоматизированное тестирование и выпуск распространили на Pick (перенос субъектов и объектов на схему БД из хранилищ, сохранение субъектов и объектов в хранилище со схемы БД (ЦФТ-Банк и др. продукты)), т.к. дефекты по нему заявлялись регулярно, а со временем сделали доступным автоматизированную сборку и выпуск других АРМ-ов.

Создание терминалов, вендингового и детского интерактивного оборудования со своим софтом
Ведущий разработчик .NET / Teamlead
Октябрь 2008 — Июль 2012 (3 года и 10 месяцев)

Начинали в бизнес-инкубаторе ТУСУР "Дружба" и через некоторое время продолжили существование как самостоятельная компания.

Разработка приложений для сенсорных информационных киосков:

  1. Настраиваемая модульная платформа со специализированным редактором - основные продукты компании.
  2. Интернет-браузер с виртуальной клавиатурой.

Планирование проектов. Парная разработка. Интервью кандидатов. Наставничество.

Некоторые интересные проекты, которые удалось реализовать:

  1. Программный комплекс записи пациента на прием к врачу для НПО «Вирион». Интеграция с 1С.
  2. Программный комплекс для Томского МФЦ. Взаимодействие с реестром государственных услуг.
  3. Информационная система просмотра уплат и задолженностей по водосчётчикам для биллингово-регистрационного центра г. Стрежевой.

Работа с менеджерами проектов и коллегами из отдела продаж. Участие в разработке технических заданий.

Участие в сборке сенсорных киосков в производственном цеху. Доставка и установка сенсорных киосков по городу, а так же в города: Ленинск-Кузнецкий, Прокопьевск.

Monsoon Multimedia
Томск
Программист-стажёр (C/C++)
Июнь 2008 — Сентябрь 2008 (4 месяца)

Добавление функциональности к DirectShow-фильтру: поддержка RTSP-over-HTTP (HTTP-tunnel).

Elecard
Томск
Программист-стажёр (Java, C)
Март 2008 — Июнь 2008 (4 месяца)

Подразделение IPTV в ELECARD DEVICES.
Дипломный проект. Разработка программного комплекса для определения характеристик качества передачи медиа-данных (MPEG-2 Transport Stream) в IP-сетях. Стек технологий: Java, SWING, C/C++ DLL, WinSock. Было разработано приложение, вещающее в сеть видео, а так же приложение, которое по сети принимало видео и определяло качество сети через такие характеристики как: количество принятых/потерянных пакетов, задержки передачи пакетов, джиттер пакетов т др... Успешно защитил дипломный проект.

Высшее образование
Томский государственный университет систем управления и радиоэлектроники
Томск
Факультет: Электронной техники; ФЭТ
Сентябрь 2003—Сентябрь 2008 (5 лет)

Информационные Технологии в Электронике