commit 812eb62dae3b6fba2bb665182189a345796424fd Author: Andrey Tkachenko Date: Fri Aug 26 15:41:27 2022 +0400 Initial diff --git a/README.md b/README.md new file mode 100644 index 0000000..b2f5ff7 --- /dev/null +++ b/README.md @@ -0,0 +1,152 @@ +# Общие сведения + + + +### Ткаченко Андрей Александрович +- **Дата рождения:** 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 (код доступен по ) затем был разработан +улучшенный подход в предсказании учитывающий движение автомобилей по +кривой (квадратичной параболе) - [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) так как элементы словаря были ортогональны +по природе - это [кватернионы]() и их декомпозиция сильно упростилась). + +Наработки в рамках данного исследования не публиковал и не планирую. + +### Опыт разработки + +##### Индексированный поиск по изображениям и сематический поиск по тексту +Использование векторных БД типа [Milvus]() и [QDrant](). +Развитие [SDK]() для [Milvus](). +Разработка UI на языке [ReScript]() + 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 + +# Хобби + +Сноубординг, Кайтсерфинг, Кайтбординг, Велопоходы, Конные походы, Скалолазание \ No newline at end of file diff --git a/me.jpg b/me.jpg new file mode 100644 index 0000000..d8d141a Binary files /dev/null and b/me.jpg differ