Backend Senior — техническое интервью
75 минут, senior. Распределённые системы, производительность, надёжность, SQL. Стек-агностично.
- Questions
- 15
- Live coding
- 2
Разогрев: опыт и контекст
Масштаб систем
С каким масштабом работали: RPS, объём данных, число сервисов? Где был bottleneck и как решали?
Scoring rubric (0–10)
3–5: «Высокая нагрузка» без цифр. 6–8: Порядок величин; конкретный bottleneck; своё участие. 9–10: Метрики до/после; cost/latency trade-off; что бы сделали при 10× росте. Красный флаг: не может описать ни одной production-проблемы на senior.
Interviewer notes
5 минут.
Распределённые системы
Идемпотентность
Как обеспечиваете идемпотентность API и consumer'ов при retry и at-least-once delivery?
Scoring rubric (0–10)
3–5: «Retry безопасен» без механизма. 6–8: Idempotency key; dedup store; unique constraints; outbox pattern basics. 9–10: TTL keys; race on concurrent retries; idempotent consumer design end-to-end. Красный флаг: double charge на payment без стратегии.
Interviewer notes
5 минут.
Saga vs 2PC
Нужно атомарно обновить заказ и списать баланс в двух сервисах. Какой подход выберете?
Scoring rubric (0–10)
3–5: «Distributed transaction 2PC» без контекста. 6–8: Saga orchestration/choreography; compensating transactions; eventual consistency. 9–10: Outbox + inbox; poison message handling; observability per step. Красный флаг: синхронный 2PC между 20 микросервисами «по умолчанию».
Interviewer notes
5 минут.
Инвалидация кэша
Cache-aside для read-heavy каталога. Как инвалидируете при обновлении товара?
Scoring rubric (0–10)
3–5: «Удаляем ключ при update» без race handling. 6–8: TTL + explicit delete; versioned keys; write-through/invalidate on write path. 9–10: Stampede protection; regional cache; consistency window acceptable to business. Красный флаг: бесконечный TTL «пока не упадёт Redis».
Interviewer notes
4 минуты.
Observability
Production incident: latency вырос в 3 раза. Как локализуете проблему?
Scoring rubric (0–10)
3–5: «Смотрим логи» без структуры. 6–8: Metrics → traces → logs; compare canary/baseline; dependency map. 9–10: SLO burn rate; profiling; correlation IDs; runbook и escalation. Красный флаг: restart-all pods как единственная тактика.
Interviewer notes
5 минут.
Эволюция API
Как версионируете публичное API и выводите из эксплуатации старые контракты?
Scoring rubric (0–10)
3–5: «v2 в URL» без migration path. 6–8: Deprecation headers; sunset dates; dual-write/read period; consumer tracking. 9–10: Contract tests; breaking change policy; feature flags for rollout. Красный флаг: breaking change без notice «клиентов мало».
Interviewer notes
4 минуты.
Практика: живой код
LRU Cache
Реализуйте LRU cache с get/put за O(1). capacity задаётся при создании.
Scoring rubric (0–10)
3–5: Map без порядка или O(n) eviction. 6–8: HashMap + doubly linked list / OrderedDict; корректный eviction. 9–10: Thread-safety обсуждает; edge cases; тесты; memory bounds. Красный флаг: не может объяснить структуру данных после решения.
Interviewer notes
20 минут.
Sliding window rate limiter
Реализуйте isAllowed(userId, limit, windowMs): не более limit запросов за последние windowMs.
Scoring rubric (0–10)
3–5: Counter без окна или fixed window с burst на границе. 6–8: Sliding window log или counter buckets; cleanup старых меток. 9–10: Memory per user bounds; distributed variant (Redis) обсуждает. Красный флаг: global counter без userId.
Interviewer notes
15 минут.
Данные и SQL
Медленный запрос
SELECT по таблице 100M строк стал медленным после роста данных. Ваш план диагностики и фикса?
Scoring rubric (0–10)
3–5: «Добавить индекс» без EXPLAIN. 6–8: EXPLAIN ANALYZE; selective index; pagination; archive cold data. 9–10: Partial index; covering index; read replica; query rewrite; partition strategy. Красный флаг: SELECT * на prod без limit «для простоты».
Interviewer notes
5 минут.
Миграция без даунтайма
Нужно добавить NOT NULL колонку и backfill на live таблице. Как выкатите?
Scoring rubric (0–10)
3–5: ALTER TABLE в peak hours. 6–8: Add nullable → backfill batch → set default → NOT NULL constraint; lock awareness. 9–10: Online schema tools; dual-write period; rollback plan; feature flag read path. Красный флаг: «остановим сервис на час» как норма.
Interviewer notes
5 минут.
Инженерная культура и вопросы
Run an interview with this template
Sign up free: copy the template to your org, schedule an interview, and run it in a room with live coding.
Get started in FlashTalk