Яндекс Практикум
Разработчик C++ (обучение)
Приобретенные в ходе обучения навыки: Git, отладка, TDD, многопоточность, RAII, подключение внешних и разработка собственных библиотек, protobuf, разработка компилятора упрощенной версии Python.
Собственная реализация JSON, SVG, BMP и разработка приложений с их использованием: городской маршрутизатор, фильтры для графических изображений.
Реализованные проекты:
Mython interpretator
Реализация на C++ мини версии Python. Поддержка основных арифметических операций, классов, методов и наследования.
Используемые технологии: ООП, шаблоны, абстрактное синтаксическое дерево, паттерны программирования, стандартные алгоритмы
https://github.com/kudryashovda/mython
Spreadsheet
Бэкенд реализация электронной таблицы на С++. В ячейках поддерживаются строки и основные арифметические операции, а также ссылки на другие ячейки с проверкой на циклические зависимости
Используемые технологии: ООП, абстрактное синтаксическое дерево, шаблоны, лямбда функции, стандартные алгоритмы
https://github.com/kudryashovda/spreadsheet
Transport router
Бэкенд реализация транспортного маршрутизатора на С++. Включает справочник по остановкам, а также модуль расчета кратчайшего маршрута (с учетом пересадок) между двумя остановками и выводом статистической информации.
Используемые технологии: ООП, графы, JSON, SVG, шаблоны, паттерны программирования, method chaining, стандартные алгоритмы
https://github.com/kudryashovda/transport_router
Search server
Бэкенд реализация поисковой системы, учитывающая стоп-слова, минус-слова и свойства документа. Алгоритм поиска основан на TF-IDF статистике. Реализована многопоточность. Для удобства вывода поисковой выдачи разработан класс Paginator для разбивки на страницы. Реализована функция поиска и удаления дубликатов документов в индексе.
Используемые технологии: ООП, многопоточность, TDD, шаблоны, лямбда функции, code profiling
https://github.com/kudryashovda/search_server