Ваша зона ответственности:
Участие в команде проектирования, разработка ПО, нагрузочное тестирование разработанного ПО.
Необходимые навыки:
- Участие в полном цикле создания продукта: от проектирования до поддержки.
- Владение шаблонами, STL, RAII, умными указателями, move-семантикой.
- Опыт работы с многопоточностью (std thread, mutex, atomic), асинхронным программированием.
- Понимание ассемблера x86-64.
- Знание ОС (Linux/Windows), системных вызовов, IPC, сетевых протоколов.
- Опыт с системами сборки (CMake, Make), CI/CD (Jenkins, GitLab CI).
- Владение отладчиками (gdb, lldb), профилировщиками (Valgrind, perf).
- Знание Git, code review, статических анализаторов (Clang-Tidy и пр).
- Опыт пользования санитайзерами (AddressSanitizer, ThreadSanitizer).
- Оркестрация (Helm, Kubernetes, Docker)
- Мониторинг (Prometheus, Grafana)
- Понимание принципов репликации данных, шардинга, распределенных транзакций (2PC, 3PC).
- Понимание структур хранения данных (B-tree, LSM-tree, фильтр Блума).
- Опыт с оптимизацией запросов, планировщиками, системами восстановления (WAL).
- Опыт работы с распределенными базами данных (Cassandra, Google Spanner, Tarantool, Picodata, Apache Ignite и т.п.)
- Работа с согласованностью данных (eventual, strong, causal consistency).
- Работа с протоколами: TCP/IP, HTTP/2, gRPC.
- Тестирование на устойчивость (Jepsen, Chaos Monkey).