cv/README.md
2022-09-14 14:48:49 +04:00

156 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Общие сведения
<img title="Me" src="./me.jpg" width="250" align="right"/>
### Ткаченко Андрей Александрович
- **Дата рождения:** 12.12.1988 (33 года)
- **Телефон для связи:** +7 987 317 99 92
- **Email:** andrey@aidev.ru
- **Место проживания:** г. Саратов, Российская Федерация
- **Общий стаж в разработке:** более 13 лет
- **Github:** https://github.com/andreytkachenko/
- **Образование:** высшее, специалитет
- **Иностранные языки:** Английский - Upper-Intermediate
# Образование
**Саратовский Государственный Технический Университет им. Ю.А. Гагарина**
Факультет Электронной Техники и Приборостроения
Специальность: Управление и информатика в технических системах
2007-2012гг.
# Ключевые навыки
- Rust, Python, Rescript, PostgreSQL, NLP, Computer Vision, Torch, Onnx, Speech Recognition, AWS, Docker, WebAssembly, Git, Linux
# Исследования и разработки
#### Исследование в области трекинга объектов
Исследование проводилось в ходе разработки системы детектирования ДТП
с камер наружного наблюдения в рамках сотрудничества с компанией http://satellite-soft.ru .
Изначально использовался переписанный мною [deep-sort](https://arxiv.org/abs/1703.07402) на
Rust (код доступен по <https://git.aidev.ru/andrey/deep-sort>) затем был разработан
улучшенный подход в предсказании учитывающий движение автомобилей по
кривой (квадратичной параболе) - [qtrack](https://git.aidev.ru/andrey/qtrack).
Проект завершен.
#### Исследование - дообучение языковой модели (LM) для системы разпознавания речи на базе VOSK
В рамках проекта (по заказу RingDNA) был разработан сервер по переводу речи в текст (STT)
на базе [VOSK](https://github.com/alphacep/vosk-api), а также дообучена языковая модель
по представленному датасету. Была также предпринята попытка дообучения акустической модели.
Проект завершен.
#### Исследование в области применения технологий constraint programming в анализе текста
К сожалению, исследования были начаты в рамках стартапа, который не смог состояться.
Но были проведены весьма интересные изыскания. Был выбран открытый проект и базовой
фунциональностью [puzzle-solver](https://git.aidev.ru/andrey/puzzle-solver) и доработана
поддежка [диапазонных чисел](https://gitlab.com/bit-refined/ranges/), а также начата
разработка по адаптации данного решателя к дереву [FST](https://en.wikipedia.org/wiki/Finite-state_transducer) которое было сгенерированно
по списку из команд для голосового помощника.
Проект не завершен.
#### Исследование - разработка стекового процессора на языке verilog
В рамках курсовой в университете был разработан процессор с минимальным набором инструкций [Forth](https://en.wikipedia.org/wiki/Forth_(programming_language)).
А также компилятор с языка [Forth](https://en.wikipedia.org/wiki/Forth_(programming_language)).
Исходный код планирую опубликовать, пока не доступен.
#### Исследование - разработка системы подавления фонового шума с массива микрофонов
Подавление шума при распознавании команды для голосового помощника методом выбора направления источника ([DOA](https://en.wikipedia.org/wiki/Direction_of_arrival))
и подавления сигналов пришедших из других направлений (с помощью [NMF](https://en.wikipedia.org/wiki/Non-negative_matrix_factorization) и
[Dictionary Learning](https://en.wikipedia.org/wiki/Sparse_dictionary_learning)).
Исходный код планирую опубликовать, пока не доступен.
#### Исследование - эффективное использование алгоритмом кешей процессора
Целью данной работы было исследовать техники оптимизации и проблемы возникающие при оптимизации работы с памятью сложных алгоритмов.
В качестве алгоритма был выбран алгоритм матричного умножения.
Результат - [gemm](https://git.aidev.ru/andrey/gemm)
#### Исследование алгоритмов лежащих в основе технологий нейросетей
Целью данной работы было детально исследовать работу различных типов слоев
нейросетей (свертка, pooling, batch normalization etc.) и их обучение, а также различные типы оптимизаторов.
Результат - [yarnn](https://git.aidev.ru/andrey/yarnn)
#### Исследование - возможность создания иерархической структуры Sparce Coding
Собственная исследовательская работа. Цель - создание алгоритмов разпознавание объектов
на изображении (стереопаре) с высокой точность без 'черного ящика' в виде нейронной сети.
Была проделана огромная исследовательская работа, в качестве начальной точки отсчета был взят
алгоритм [Dictionary Learning](https://en.wikipedia.org/wiki/Sparse_dictionary_learning) и были попытки каскадировать его (аналог слоев с нейросети),
потом была реализация идеи добавления инвариантности к трансформациям (масштаб, поворот),
а также сделан динамический размер словаря и индексированный поиск по нему, потом изменен принцип
обучения (хотя базовый принцип [OMP](https://en.wikipedia.org/wiki/Matching_pursuit) остался прежним,
только отпала в небходимости в [SVD](https://en.wikipedia.org/wiki/Singular_value_decomposition) так как элементы словаря были ортогональны
по природе - это [кватернионы](<https://ru.wikipedia.org/wiki/%D0%9A%D0%B2%D0%B0%D1%82%D0%B5%D1%80%D0%BD%D0%B8%D0%BE%D0%BD>) и их факторизация сильно упростилась).
Наработки в рамках данного исследования не публиковал и не планирую.
#### Индексированный поиск по изображениям и сематический поиск по тексту
Использование векторных БД типа [Milvus](<https://milvus.io/>) и [QDrant](<https://qdrant.tech/>).
Развитие [SDK](<https://github.com/milvus-io/milvus-sdk-rust>) для [Milvus](<https://milvus.io/>).
Разработка UI на языке [ReScript](<https://rescript-lang.org/>) + React.
#### Системная шина высокоэффективного обмена сообщениями
как между компонентами в рамках одной программы так и между приложениями с помощью Redis, RabbitMQ, Kafka или TCP(QUIC).
Библиотека используется на нескольких проектах и эффективно организует большое количество очередей и асинхронных задач.
Код проекта - [MessageBus](https://git.aidev.ru/andrey/messagebus)
#### Сервер транскрипции телефонной речи в текст (STT) на базе [VOSK](https://github.com/alphacep/vosk-api)
Разработан многопоточный сервер на языке Rust, нарезающий текст по паузам с помощью библиотеки [VAD](https://github.com/dpirch/libfvad)
и подающий отрезки на вход [VOSK](https://github.com/alphacep/vosk-api), а также биндинги к библиотекам.
#### Система детектирования ДТП по камерам наружного наблюдения за дорожной обстановкой
Сервер, обрабатывающий много потоков видео (RTSP), поиск объектов на кадрах,
трекинг объектов, детекторы различных событий/ситуаций, хранилище с функцией ротации, связь с внешней системой принятия решения.
# Опыт работы
#### Архитектор ПО
- Ноябрь 2018 — по настоящее время (3 года 10 месяцев)
- США, [ShakaCode LLC](https://www.shakacode.com) -
Проектирование и разработка высоконагруженных систем с большим количеством данных на Rust.
Системы поиска и индексирования. Поиск дублирующихся данных.
Нейросетевые технологии комьпютерного зрения и NLP.
#### Инженер-программист
- Декабрь 2015 — Сентябрь 2018 (2 года 10 месяцев)
- США, [TimelinePI Ltd.](http://www.timelinepi.com) -
разработка существующего продукта (nodejs, postgres sql, AngularJS), разработка
алгоритмов анализа событийно-временных данных на основе нейронных сетей.
#### Инженер-программист
- Июнь 2015 — Октябрь 2015 (5 месяцев)
- Ирландия, [Tapastreet Ltd.](https://tapastreet.com) -
Разработка системы анализа облака хеш тегов из соц. сетей (выделение событий)
#### UI Инженер
- Август 2014 — Июнь 2015 (11 месяцев)
- Саратов, [ООО "Грид Динамикс"](https://www.griddynamics.com) -
Разработка и поддержка проектов на AngularJS для платформы https://www.ringcentral.com/
#### Старший инженер программист
- Март 2011 — Август 2014 (3 года 6 месяцев)
- Саратов, [ООО "Опен Софт"](https://www.opensoftdev.ru) -
Информационные технологии, системная интеграция, автоматизации технологических и бизнес-процессов предприятия, ИТ-консалтинг
Разработка и поддержка сайта http://overnightprints.com
#### Web-разработчик
- Июнь 2008 — Сентябрь 2010 (2 года 4 месяца)
- Саратов, [ООО "АйТи Акцент"](http://itaccent.ru) -
Информационные технологии, системная интеграция, разработка программного обеспечения.
Разработка сайтов на PHP и JavaScript.
# Участие в публичных проектах
- [Helix](https://github.com/helix-editor/helix) - https://github.com/helix-editor/helix/pulls?q=author%3Aandreytkachenko
- [MilvusSDK](https://github.com/milvus-io/milvus-sdk-rust) - https://github.com/milvus-io/milvus-sdk-rust/pulls?q=author%3Aandreytkachenko
# Хобби
Сноубординг, Кайтсерфинг, Кайтбординг, Велопоходы, Конные походы, Скалолазание