13 KiB
Общие сведения
Ткаченко Андрей Александрович
- Дата рождения: 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
Профессиональные навыки
Исследования
Исследование в области трекинга объектов
Исследование проводилось в ходе разработки системы детектирования ДТП с камер наружного наблюдения в рамках сотрудничества с компанией http://satellite-soft.ru . Изначально использовался переписанный мною deep-sort на Rust (код доступен по https://git.aidev.ru/andrey/deep-sort) затем был разработан улучшенный подход в предсказании учитывающий движение автомобилей по кривой (квадратичной параболе) - qtrack.
Проект завершен.
Исследование - дообучение языковой модели (LM) для системы разпознавания речи на базе VOSK
В рамках проекта (по заказу RingDNA) был разработан сервер по переводу речи в текст (STT) на базе VOSK, а также дообучена языковая модель по представленному датасету. Была также предпринята попытка дообучения акустической модели.
Проект завершен.
Исследование в области применеие технологий constraint programming в анализе текста
К сожаление исследования были начаты в рамках стартапа который не смог состояться. Но были проведены весьма интересные изыскания. Был выбран открытый проект и базовой фунциональностью puzzle-solver и доработана поддежка диапазонных чисел, а также начата разработка по адаптации данного решателя к дереву FST которое было сгенерированно по списку из команд для голосового помощника.
Проект не завершен.
Исследование - разработка стекового процессора на языке verilog
В рамках курсовой в университете был разработан процессор с минимальным набором инструкций Forth. А также компилятор с языка Forth.
Исходный код планирую опубликовать, пока не доступен.
Исследование - разработка системы подавления фонового шума с массива микрофонов
Подавление шума при распознавании команды для голосового помощника методом выбора направления источника (DOA) и подавления сигналов пришедших из других направлений (с помощью NMF и Dictionary Learning).
Исходный код планирую опубликовать, пока не доступен.
Исследование - эффективное использование алгоритмом кешей процессора
Целью данной работы было исследовать техники оптимизации и проблемы возникающие при оптимизации работы с памятью сложных алгоритмов. В качестве алгоритма был выбран алгоритм матричного умножения.
Результат - gemm
Исследование алгоритмов лежащих в основе технологий нейросетей
Целью данной работы было детально исследовать работу различных типов слоев нейросетей (свертка, pooling, batch normalization etc.) и их обучение, а также различные типы оптимизаторов.
Результат - yarnn
Исследование - возможность создания иерархической структуры Sparce Coding
Собственная исследовательская работа. Цель - создание алгоритмов разпознавание объектов на изображении (стереопаре) с высокой точность без 'черного ящика' в виде нейронной сети. Была проделана огромная исследовательская работа, в качестве начальной точки отсчета был взят алгоритм Dictionary Learning и были попытки каскадировать его (аналог слоев с нейросети), потом была реализация идеи добавления инвариантности к трансформациям (масштаб, поворот), а также сделан динамический размер словаря и индексированный поиск по нему, потом изменен принцип обучения (хотя базовый принцип OMP остался прежним, только отпала в небходимости в SVD так как элементы словаря были ортогональны по природе - это кватернионы и их декомпозиция сильно упростилась).
Наработки в рамках данного исследования не публиковал и не планирую.
Опыт разработки
Индексированный поиск по изображениям и сематический поиск по тексту
Использование векторных БД типа Milvus и QDrant. Развитие SDK для Milvus. Разработка UI на языке ReScript + React.
Системная шина высокоэффективного обмена сообщениями
как между компонентами в рамках одной программы так и между приложениями с помощью Redis, RabbitMQ, Kafka или TCP(QUIC). Библиотека используется на нескольких проектах и эффективно организует большое количество очередей и асинхронных задач.
Код проекта - MessageBus
Сервер транскрипции телефонной речи в текст (STT) на базе VOSK
Разработан сам многопоточный сервер на языке Rust, нарезающий текст по паузам с помощью библиотеки VAD и подающий отрезки на вход VOSK, а также биндинги к библиотекам.
Система детектирования ДТП по камерам наружного наблюдения за дорожной обстановкой
Сервер, обрабатывающий много потоков видео (RTSP), поиск объектов на кадрах, трекинг объектов, детекторы различных событий/ситуаций, хранилище с функцией ротации, связь с внешней системой принятия решения.
История продвижения
Архитектор ПО
- Ноябрь 2018 — по настоящее время (3 года 10 месяцев)
- США, ShakaCode Ltd. - Проектирование и разработка высоконагруженных систем с большим количеством данных на Rust. Системы поиска и индексирования. Поиск дублирующихся данных. Нейросетевые технологии комьпютерного зрения и NLP.
Инженер-программист
- Декабрь 2015 — Сентябрь 2018 (2 года 10 месяцев)
- США, TimelineRX Ltd. - разработка существующего продукта (nodejs, postgres sql, AngularJS), разработка алгоритмов анализа событийно-временных данных на основе нейронных сетей.
Инженер-программист
- Июнь 2015 — Октябрь 2015 (5 месяцев)
- Ирландия, Tapastreet Ltd. - Разработка системы анализа облака хеш тегов из соц. сетей (выделение событий)
UI Инженер
- Август 2014 — Июнь 2015 (11 месяцев)
- Саратов, Grid Dynamics - Разработка и поддержка проектов на AngularJS для платформы https://www.ringcentral.com/
Старший инженер программист
- Март 2011 — Август 2014 (3 года 6 месяцев)
- Саратов, OpenSoft - Информационные технологии, системная интеграция, интернет Системная интеграция, автоматизации технологических и бизнес-процессов предприятия, ИТ-консалтинг Разработка и поддержка сайта http://overnightprints.com
Web-разработчик
- Июнь 2008 — Сентябрь 2010 (2 года 4 месяца)
- Саратов, ООО "АйТи Акцент" - Информационные технологии, системная интеграция, интернет. Разработка программного обеспечения. Разработка сайтов на PHP и JavaScript.
Участие в публичных проектах
- Helix - https://github.com/helix-editor/helix/pulls?q=author%3Aandreytkachenko
- MilvusSDK - https://github.com/milvus-io/milvus-sdk-rust/pulls?q=author%3Aandreytkachenko
Хобби
Сноубординг, Кайтсерфинг, Кайтбординг, Велопоходы, Конные походы, Скалолазание