Developer C++ (CoreTech, Monorepo)
Требования
Местоположение и тип занятости
Компания
Описание вакансии
О компании и команде
CoreTech — это R&D внутри департамента исследований и разработки Лаборатории Касперского. Мы создаем фундамент, на котором строится разработка продуктов и сервисов нашей компании. В нашем отделе есть несколько основных направлений деятельности в которые сейчас открыты вакансии:
Monorepo- это отказоустойчивая, быстрая, распределенная, удобная инфраструктура для разработки в едином репозитории.
Ast- новая система контроля версий для работы с очень большими репозиториями (монорепозиториями).
Основные архитектурные принципы, заложенные в Ast:
- клиент-серверная архитектура с выполнением тяжелых операций на сервере;
- представление среза репозитория у пользователя с помощью виртуальной файловой системы.
Подробнее про Ast и проект Monorepo можно узнать по ссылке: https://kas.pr/mono
Ожидания от кандидата
Что мы ждем от кандидата:
- Отличное знание C++ и современных стандартов (17/20);
- Опыт разработки многопоточных кроссплатформенных приложений (Windows, Linux, macOS);
- Уверенное владение Git;
- Навык проведения код-ревью;
- Быть готовым к погружению в большую кодовую базу, к анализу логов для поиска причины проблемы;
- Желание писать структурированный, понятный код и покрывать его тестами.
Будет плюсом:
- Опыт разработки распределённых систем;
- Опыт работы с системами сборки (CMake и т.п.);
- Опыт разработки тестов с помощью фреймворка GTest;
- Умение работать с отладчиками и анализировать дампы (WinDBG, gdb, т.д.);
- Опыт работы с gRPC и protobuf;
- Опыт работы с docker контейнерами;
- Опыт работы с SQL;
- Опыт использования скриптовых языков (bash, powershell, python).
Условия работы
Чем Вы будете заниматься:
- Участвовать в амбициозной задаче по разработке принципиально новой VCS, с которой уже работают многие разработчики в нашей компании каждый день;
- Разрабатывать распределённые отказоустойчивые и масштабируемые клиент-серверные системы;
- Работать с базами данных (мы используем YDB);
- Разбирать и исправлять баги, анализировать логи и дампы;
- Разрабатывать unit и интеграционные тесты;
- Работать с различными запросами пользователей.