Мой опыт состоит из:
1. разработка и внедрения банковских ML сервисов скоринга на стеке Python + OpenShift + Jenkins
2. "вытягивание" из заказчиков постановку на разработку/внедрение/переход
3. передача и контроль выполнения задачи разработчикам
4. организация юнит, нагрузочного и интеграционно-функционального тестирования
5. организация работы смежных команд в рамках задачи
6. организация релизного цикла сервисов и перехода на новый стек не Agile команд
7. ревью и консультации коллег в рамках моего функционала
8. анализ поставщиков на рынке гос закупок (обработка данных, поиск выбросов, шкалирование, интерполирование, стат анализ, кластеризация, вербальное описание)
9. разработка ПО на основе CNN семейства YOLO на Keras + TensorFlow или PyTorch
10. разработки многопоточных графических приложений с общими ресурсами на PyQt
11. разработка ПО для аугментации изображений в пространстве HSL
12. разработка FEC для 5G и Wi-Fi на C++ 11
13. разработка REST API
14. разработка скриптов на bash и make
15. организация CI на основе Jenkins pipelines
16. разработка ПО для фильтрации выборок при помощи Pandas
17. разработка бота для игры в Pong Atari с применением RL
18. программирование MSP430 на С и 8086/80386 на Assembler + SSE на современных x86
Непрерывно совершенствуюсь:
- машинное обучение (Константин Воронцов, Семён Козлов, ODS, МФТИ&ВШЭ&Яндекс на Coursera и другие источники);
- разработка ПО (CI, CD, тестирование, версионирование, VCS, гибрид разных языков, системы сборки и другие аспекты);
- организация масштабирования (Jenkins, OpenShift, Ansible);
- управление проектом (Lean, Scrum, Kanban);
- документирование (генераторы документации, UML);
- Wikium, бег, культуризм, торговля ценными бумагами
ПО, которым я пользуюсь:
1. Python 3.6+
- OpenCV, PIL (обработка изображений);
- Pygame, wave (работа со звуком);
- NumPy, math, ScyPy (мат. операции, работа с матрицами);
- Pandas (работа с таблицами, временными рядами);
- TensorFlow, Keras, PyTorch (разработка нейронных сетей);
- Seaborn, Matplotlib, PyQtGraph (визуализация данных);
- PyQt (разработка графических приложений и не только);
- Visual Studio Code (IDE на каждый день);
- Jupyter Notebook (для экспериментов и красивых операционных отчётов);
2. DevOps:
- Jenkins (CI/CD);
- OpenShift/Docker (масштабирование сервисов);
- Git (система контроля версий);
- bash, powershell (автоматизация работы);
- make (сборка проектов);
3. Организация работы:
- Scrum (организация задач разработки во времени);
- Kanban (организация задач поддержки по статусам);
- Lean (организация бизнес и программных пилотов);
- Jira или Trello (task manager);
- Confluence/Wiki, Doxygen и draw.io (оформление документации);
- Ubuntu или Centos
Моя цель - развиваться в управлении проектами и аналитике в сфере машинного обучения
Функциональные обязанности:
- Сбор и проработка бизнес-требований заказчиков
- Подготовка проектной документации (функциональные требования, технические задания и решения, спецификации, инструкции и т.д.), постановка задач на разработку
- Ведение переговоров с заказчиком
- Взаимодействие с командами Data science, ModelOps и тестирования
- Понимание принципов работы внешних систем, с которыми выполняется интеграция, потребителями сервисов ML
- Участие в процессах определения ресурсов и оценки трудозатрат, рисков проекта
- Участие в планировании работ
- Ведение реестра документации
- Проведение пользовательского тестирования сервисов
- Ведение и актуализация спецификаций на сервисы/модели
- Согласование документов
- Консультация пользователей сервисов/обучение/подготовка презентаций
- Участие в приемо-сдаточных испытаниях
1. Разработка и администрирование сервисов скоринга физ лиц (потреб кредиты, кредитные карты, ипотека) на стеке Python (Flask + marshmallow + Gunicorn) + OpenShift + Jenkins
2. Внедрение ML моделей в пром:
2.1. "вытягивание" из заказчиков постановку на разработку/внедрение/переход
2.2. разработка или передача и контроль выполнения задачи разработчикам
2.3. проведение юнит, нагрузочного и интеграционно-функционального тестирования
2.4. организация работы смежных команд в рамках задачи
3. Организация релизного цикла сервисов и перехода на новый стек не Agile команд
4. Ревью и консультации коллег в рамках моего функционала
5. Ведение задач в Jira
Разработка модуля типологического анализа поставщиков на рынке государственных закупок:
1. фильтрация и преобразование данных, поиск выбросов
2. шкалирование и интерполирование показателей
3. корреляционный и информационный анализ
4. кластеризация поставщиков
5. конструирование вербального описания
Forward Error Correction design for Wireless and Fiber optics
На данном месте работы я был занят в отделе разработки тензорного процессора, в команде разработки драйвера и прикладного ПО для TPU. Основной задачей нашей команды было разработать программный стек для демонстрации запуска свёрточных нейронных сетей на прототипе процессора.
В мои обязанности входило:
1. разработка экспериментальных предсказательных моделей для обнаружения образов на изображениях на основе алгоритмов глубокого обучения;
2. внедрение разработанных алгоритмов в виде демонстрационных программ для тестирования разрабатываемого тензорного процессора;
3. разработка прикладного ПО для тестирования прототипов тензорного процессора IVA TPU;
4. документирование результатов;
5. автоматизация непрерывной интеграции кода.
Результаты интеллектуальной деятельности:
1. разработал демо на PyQt + Keras + TensorFlow + NumPy + OpenCV для YOLO и Tiny-YOLO, в качестве датасета использовался COCO и VOC, обучение сети не проводилось;
2. собрал демо в качестве устанавливаемого пакета для pip;
3. разработал документацию с диаграммами на UML и описанием на человеческом языке;
4. автоматизировал сборку, тестирование и развёртывание кода при помощи Jenkins pipelines.
На данном месте работы я был занят в разработке алгоритма автоматизированной проверки видео и постов на предмет наличия логотипов клиентов компании.
В мои обязанности входило:
1. разработка алгоритмов аугментации выборки;
2. внедрение разработанных алгоритмов в виде прикладного ПО;
3. разметка новых логотипов;
4. доработка существующего алгоритма автоматизированной проверки.
Результаты интеллектуальной деятельности:
1. разработал ПО на Python + NumPy + OpenCV для автоматизированной оффлайн аугментации выборки в пространстве HSL;
2. разметил много логотипов в LabelImg;
3. доработал систему автоматизированной проверки на основе YOLO на PyTorch.
Информационные системы и технологии