- Увлекся языком C++ с момента обучения в университете. Мой опыт работы в сфере изысканий помог выявить недостатки существующего программного обеспечения и вдохновил на дальнейшее развитие в области разработки.
Для расширения знаний и закрепления имеющихся навыков я прошёл два курса от Яндекс Практикум, один из которых был посвящён бекэнд-разработке. Эти знания успешно применялись в учебных проектах и проектной деятельности с использованием стандартов C++17 (с элементами C++20).
- Своим ключевым навыком я считаю:
1. Коммуникация:
• Активно взаимодействовал с командой разработчиков, тестировщиками и аналитиками для эффективного решения поставленных задач. Это сотрудничество позволило быстро выявлять и устранять ошибки, а также адаптировать проектные решения в соответствии с требованиями заказчиков.
2. Адаптивность:
• Быстро реагировал на изменения в проекте и предлагал эффективные решения для возникающих проблем. Участвовал в разработке новых функций, требующих изучения дополнительных библиотек.
3. Организация и планирование:
• Для крупных задач грамотно распределил подзадачи среди членов команды, учитывая их сильные стороны. Это способствовало повышению производительности и успешному завершению проекта.
- Моими хобби являются сборка конструкторов Lego, компьютерные игры и игра в большой теннис.
- Разработка бекэнд-решений на языке C++ с использованием стандартов C++17 и C++20.
- Интеграция сторонних библиотек, таких как Prometheus для мониторинга и JWT для авторизации, для расширения функциональности проекта.
- Создание и оптимизация инструментов для работы внутри модулей, обеспечивающих эффективное выполнение задач.
- Разработка и поддержка RESTful API для взаимодействия с внешними системами и сервисами, с использованием Postman для тестирования.
- Обмен данными с другими серверами, включая реализацию протоколов и форматов передачи.
- Работа с базами данных PostgreSQL, включая использование PGAdmin для управления и выполнения запросов.
- Написание юнит-тестов с использованием Google Test для обеспечения качества кода.
- Взаимодействие с аналитиками и тестировщиками для уточнения требований и тестирования разработанных решений.
- Работа как на Linux, так и в контейнерах Docker с CentOS 7.
- Написание и оптимизация bash-скриптов для автоматизации процессов и повышения эффективности разработки.
Использование стандартных библиотек C++ (STL), алгоритмов и структур данных (включая деревья, графы, хэш-таблицы), многопоточность и асинхронное программирование. Применение forwarding reference и современных C++ идиом, включая RAII, move семантику, шаблоны, шаблонные классы и лямбда-функции, а также умных указателей и итераторов для обеспечения безопасности и эффективности кода.
Проектирование и разработка модульного и масштабируемого кода, с применением принципов ООП, таких как наследование, полиморфизм, инкапсуляция и абстракция. Также имею опыт создания и проведения юнит-тестов, профилирования кода, отладки и обработки исключений, а также проведения код-ревью с анализом чужого кода.
В проектах были использованы следующие инструменты и технологии: Google Protobuf (метод сериализации структурированных данных), CMake, Git (технологии сборки и управление кодом).
Проекты:
- Поисковая системы.
В данном проекте была выполнена обработка и хранение получаемых данных, а также оптимизация поисковых запросов (включая поддержку плюс и минус-слов) и обработка результатов. Использовалась многопоточность итераторы и обработка исключений
GitHub:[https://github.com/Hillontrop/cpp-search-server]
- Транспортный справочник.
Проект использует эффективное хранение информации о транспортных маршрутах и алгоритмы поиска маршрутов и остановок. Имеет поддержку ввод-вывод в формате JSON и визуализацию карты маршрутов в формате SVG. Выполняет поиск оптимального маршрута между остановками (используя граф). Для оптимизации вычислений используется сериализация справочной базы с помощью Google Protobuf.
GitHub:[https://github.com/Hillontrop/cpp-transport-catalogue]
Завершенный курс включал в себя более 500 часов теории и практики. В рамках практики было успешно решено 520 задач и выполнено 3 больших проекта. Полученные навыки были применены в учебных проектах с использованием стандарта C++17 (с элементами C++20).