152 lines
13 KiB
Markdown
152 lines
13 KiB
Markdown
|
# Общие сведения
|
|||
|
|
|||
|
<img title="Me" src="me.jpg" width="224" height="224" align="right"/>
|
|||
|
|
|||
|
### Ткаченко Андрей Александрович
|
|||
|
- **Дата рождения:** 12.12.1988 (33 года)
|
|||
|
- **Телефон для связи:** +7 987 317 99 92
|
|||
|
- **Email:** andrey@aidev.ru
|
|||
|
- **Место проживания:** гор. Саратов, Российская Федерация
|
|||
|
- **Общий стаж в разработке**: более 13 лет
|
|||
|
|
|||
|
|
|||
|
# Ключевые навыки
|
|||
|
- Rust, Python, Rescript, PostgreSQL, Docker, Torch, Onnx, Git, Linux, NLP, Computer Vision, WebAssembly, Speech Recognition, AWS
|
|||
|
|
|||
|
|
|||
|
# История продвижения
|
|||
|
|
|||
|
#### Архитектор ПО
|
|||
|
- Ноябрь 2018 — по настоящее время (3 года 10 месяцев)
|
|||
|
- США, [ShakaCode Ltd.](https://www.shakacode.com) -
|
|||
|
Проектирование и разработка высоконагруженных систем с большим количеством данных на Rust.
|
|||
|
Системы поиска и индексирования. Поиск дублирующихся данных.
|
|||
|
Нейросетевые технологии комьпютерного зрения и NLP.
|
|||
|
|
|||
|
#### Инженер-программист
|
|||
|
- Декабрь 2015 — Сентябрь 2018 (2 года 10 месяцев)
|
|||
|
- США, [TimelineRX Ltd.](http://www.timelinepi.com) -
|
|||
|
разработка существующего продукта (nodejs, postgres sql, AngularJS), разработка
|
|||
|
алгоритмов анализа событийно-временных данных на основе нейронных сетей.
|
|||
|
|
|||
|
#### Инженер-программист
|
|||
|
- Июнь 2015 — Октябрь 2015 (5 месяцев)
|
|||
|
- Ирландия, [Tapastreet Ltd.](https://tapastreet.com) -
|
|||
|
Разработка системы анализа облака хеш тегов из соц. сетей (выделение событий)
|
|||
|
|
|||
|
#### UI Инженер
|
|||
|
- Август 2014 — Июнь 2015 (11 месяцев)
|
|||
|
- Саратов, [Grid Dynamics](https://www.griddynamics.com) -
|
|||
|
Разработка и поддержка проектов на AngularJS для платформы https://www.ringcentral.com/
|
|||
|
|
|||
|
#### Старший инженер программист
|
|||
|
- Март 2011 — Август 2014 (3 года 6 месяцев)
|
|||
|
- Саратов, [OpenSoft](https://www.opensoftdev.ru) -
|
|||
|
Информационные технологии, системная интеграция, интернет
|
|||
|
Системная интеграция, автоматизации технологических и бизнес-процессов предприятия, ИТ-консалтинг
|
|||
|
Разработка и поддержка сайта http://overnightprints.com
|
|||
|
|
|||
|
#### Web-разработчик
|
|||
|
- Июнь 2008 — Сентябрь 2010 (2 года 4 месяца)
|
|||
|
- Саратов, [ООО "АйТи Акцент"](http://itaccent.ru) -
|
|||
|
Информационные технологии, системная интеграция, интернет.
|
|||
|
Разработка программного обеспечения.
|
|||
|
Разработка сайтов на PHP и JavaScript.
|
|||
|
|
|||
|
# Профессиональные навыки
|
|||
|
|
|||
|
### Исследования
|
|||
|
|
|||
|
##### Исследование в области трекинга объектов
|
|||
|
Исследование проводилось в ходе разработки системы детектирования ДТП
|
|||
|
с камер наружного наблюдения в рамках сотрудничества с компанией 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), поиск объектов на кадрах,
|
|||
|
трекинг объектов, детекторы различных событий/ситуаций, хранилище с функцией ротации, связь с внешней системой принятия решения.
|
|||
|
|
|||
|
# Участие в публичных проектах
|
|||
|
- [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
|
|||
|
|
|||
|
# Хобби
|
|||
|
|
|||
|
Сноубординг, Кайтсерфинг, Кайтбординг, Велопоходы, Конные походы, Скалолазание
|