-
Фаза 1. С чего начать
Зачем этот курс и кому он подойдёт: какую проблему решает программа, как устроены фазы, опросы, тесты и тренажёры, и как проходить её так, чтобы дошло до конца.
- Зачем этот курс: Продукт-инженер · Go обязательно
-
Фаза 2. Основы языка: Go · 75 вопросов
Синтаксис, структуры и методы, интерфейсы, срезы и map, ошибки, горутины и каналы, указатели, инструменты — фундамент языка до backend-обвязки.
- Go с нуля: установка и первый запуск обязательно
- Синтаксис и типы Go: первое знакомство обязательно
- Указатели в Go: & и *, значения и ссылки обязательно
- Функции в Go: параметры, возвраты и замыкания обязательно
- Структуры и методы в Go: данные, поведение и композиция обязательно что пощупать
- Интерфейсы Go: маленькие, неявные, по делу обязательно
- Срезы и map в Go: как устроены и где грабли обязательно
- Строки в Go: руны, байты и пакет strings обязательно
- Ошибки в Go: error как значение обязательно что пощупать
- Горутины и каналы в Go: основы конкурентности обязательно что пощупать
- Инструменты Go: модули, сборка, форматирование обязательно
- Компьютер для backend-разработчика: процессы, потоки, память и диск обязательно
- Рантайм Go: горутины на потоках, стек и куча, сборка мусора обязательно
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 3. Алгоритмы и структуры данных · 118 вопросов
Массивы и O-нотация, сортировки, стеки и очереди, списки, рекурсия, деревья, хеш-таблицы, кучи и графы, а затем приёмы решения задач — два указателя, окно, префиксные суммы, динамическое программирование.
- Зачем нужны структуры данных и алгоритмы
- Математика для O-нотации: логарифмы, степени и скорость роста обязательно
- Массивы, двоичный поиск и O-нотация обязательно
- Простая сортировка: пузырёк, выбор, вставка
- Стеки и очереди
- Связанные списки
- Рекурсия обязательно
- Нетривиальная сортировка: Шелла, быстрая, поразрядная
- Двоичные деревья обязательно
- Красно-чёрные деревья
- Деревья 2-3-4 и B-деревья
- Хеш-таблицы обязательно
- Пирамиды (кучи)
- Графы
- Взвешенные графы: минимальный остов и кратчайший путь
- Два указателя и скользящее окно обязательно
- Префиксные суммы
- Двоичный поиск по ответу
- Монотонный стек
- Динамическое программирование
- Перебор с отсечением
- Как выбрать структуру данных обязательно
- Хвостовая латентность: почему средняя обманывает
- Горячий путь: микросекунды решают
- Order book: структура данных биржи
- Маркет-дата: мультикаст, снапшоты и conflation
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 4. Git и модели ветвления · 51 вопросов
Снимки и коммиты, ветки и слияние, push/pull, pull request и код-ревью, rebase и reflog, модели ветвления от Git Flow до trunk-based.
- Что такое Git и зачем он каждому обязательно
- Коммиты и история: add, commit, log и .gitignore
- Ветки и слияние: merge и конфликты обязательно
- Удалённые репозитории: push, pull и fetch обязательно
- Pull request и код-ревью обязательно
- Rebase и cherry-pick: переписывание истории
- Отмена и спасение: reset, revert, reflog
- Модели ветвления: Git Flow, GitHub Flow, GitLab Flow, trunk-based
- Тест фазы в кабинете
-
Фаза 5. Go как фундамент · 61 вопросов
Ядро Go-стека: структура и проводка, chi и net/http, JSON, валидация, middleware, context, ошибки, sqlc+pgx, конкурентность.
- Структура проекта и проводка зависимостей в Go обязательно что пощупать
- Роутинг в Go: net/http и chi обязательно что пощупать
- Fiber и fasthttp в Go: когда скорость стоит несовместимости
- Обработчики и JSON в Go обязательно что пощупать
- Валидация в Go что пощупать
- Middleware
- Context и отмена в Go обязательно что пощупать
- Ошибки в Go и перевод в HTTP обязательно что пощупать
- Персистентность в Go: sqlc и pgx обязательно что пощупать
- qtc и шаблоны SQL: кодогенерация запросов в Go
- Конкурентность и graceful shutdown в Go обязательно что пощупать
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 6. SQL с нуля · 68 вопросов
Язык запросов до особенностей конкретной базы: таблицы и ключи, SELECT и WHERE, соединения, агрегаты, NULL, подзапросы, оконные функции, даты и строки, изменение данных, создание таблиц и почему запрос вдруг стал медленным.
- Что такое база данных и таблицы
- SELECT: выбрать, отфильтровать, отсортировать обязательно
- JOIN: собрать данные из нескольких таблиц обязательно
- Агрегаты: COUNT, GROUP BY и HAVING обязательно
- NULL и типы данных: где все спотыкаются обязательно
- Подзапросы и CTE: запрос внутри запроса обязательно
- Оконные функции: считать, не схлопывая строки обязательно
- Даты и время в SQL: отрезки, группировка по дням и арифметика
- Строки в SQL: склейка, поиск и приведение к одному виду
- INSERT, UPDATE, DELETE и транзакции
- Схема базы данных: таблицы, ключи и представления обязательно
- Почему запрос медленный: индексы на пальцах обязательно
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 7. PostgreSQL: модель и запросы · 100 вопросов
Транзакции и изоляция, блокировки, типы данных, индексы и EXPLAIN.
- ACID и уровни изоляции транзакций в PostgreSQL обязательно что пощупать
- Уровни изоляции транзакций в PostgreSQL обязательно
- Блокировки в PostgreSQL: SELECT FOR UPDATE, SKIP LOCKED и advisory locks обязательно что пощупать
- Именование объектов в PostgreSQL — snake_case, единственное число, префиксы
- Числа в PostgreSQL: bigint, numeric, boolean и как не потерять деньги
- Строковые типы в PostgreSQL: text, varchar и char
- Время и таймзоны в PostgreSQL — почему timestamptz и как с ним работать
- UUID в PostgreSQL: тип uuid, v7 против v4, bigint vs UUID
- Перечисления в PostgreSQL: ENUM, справочник или CHECK
- JSONB в PostgreSQL — что это, как работает и когда применять
- Массивы и range-типы в PostgreSQL: теги, бронирования, EXCLUDE
- Типы индексов в PostgreSQL — B-tree, GIN, GiST, BRIN обязательно что пощупать
- Составные индексы PostgreSQL и правило левого префикса обязательно
- Covering Index в PostgreSQL: зачем нужен INCLUDE обязательно
- Как выбрать индекс и считать селективность в PostgreSQL обязательно
- Веса в полнотекстовом поиске PostgreSQL (FTS)
- EXPLAIN ANALYZE — как читать план запроса PostgreSQL обязательно
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 8. PostgreSQL: эксплуатация и масштаб · 98 вопросов
Миграции, пул, vacuum/WAL, репликация, бэкап, партиционирование, FTS и гео.
- Миграции PostgreSQL без остановки сервиса обязательно
- Connection pooling в PostgreSQL — HikariCP, PgBouncer и размер пула обязательно
- VACUUM, autovacuum и bloat в PostgreSQL обязательно
- WAL в PostgreSQL: что это и как влиять на объём журнала обязательно
- Репликация PostgreSQL: read-replica и маршрутизация запросов обязательно
- Резервные копии PostgreSQL: pg_dump, pg_basebackup и PITR
- Партиционирование в PostgreSQL: когда нужно и как устроено обязательно
- Партиционирование и шардирование в PostgreSQL
- Multi-tenancy в PostgreSQL: row, schema, db per tenant
- Materialized views в PostgreSQL: как работают и когда использовать
- Триггеры и хранимые процедуры PostgreSQL
- Расширения PostgreSQL: pg_trgm, pgcrypto, pg_stat_statements и другие
- Полнотекстовый поиск в PostgreSQL — tsvector, GIN, russian
- PostGIS: геоданные в PostgreSQL — точки, полигоны, поиск в радиусе
- Анонимизация дампа PostgreSQL для разработчика
- Частые ошибки при выборе типов в PostgreSQL
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 9. Другие хранилища: документы, поиск, файлы, аналитика · 209 вопросов
Сначала фундамент: как хранилища устроены внутри — движки, репликация, шардинг, потоки. Затем сами хранилища: MongoDB, Elasticsearch, object storage (S3) и ClickHouse для специализированных нагрузок. Плюс развилки выбора базы данных и графовая СУБД Neo4j.
- B-деревья и LSM-деревья простыми словами: как база данных хранит данные обязательно
- OLTP и OLAP простыми словами: два разных мира работы с данными обязательно
- Эволюция схем простыми словами: менять формат данных, ничего не ломая
- Модели репликации простыми словами: почему реплика отстаёт, multi-leader и кворумы обязательно
- Секционирование (шардинг) простыми словами: как разрезать данные по узлам без горячей точки обязательно
- Система записи и производные данные простыми словами: почему кеш, индекс и read-модель — одно и то же
- Потоковая обработка простыми словами: перехват изменений (CDC) и время в потоках
- ACID, read и write concerns, транзакции в MongoDB на Go обязательно
- Репликация и шардинг в MongoDB
- Моделирование документов в MongoDB: embed vs reference, индексы
- Elasticsearch: как устроен поисковый движок обязательно
- Как работают запросы в Elasticsearch и почему документы сортируются именно так
- Elasticsearch из Go: go-elasticsearch, индексация и поиск
- Как работает Elasticsearch в production: ILM, snapshots, sizing, мониторинг
- Что такое object storage: bucket, объект, ключ, классы хранения и presigned URL что пощупать
- S3 из Go: aws-sdk-go-v2, MinIO и Yandex Object Storage
- S3 в production: резервные копии, репликация, стоимость и мониторинг
- Что такое Redis: in-memory хранилище для backend-разработчика обязательно
- Структуры данных Redis: String, Hash, List, Set, Sorted Set и другие обязательно
- Паттерны кэширования в Redis обязательно что пощупать
- Redis не только для кэша: блокировки, ограничение запросов, очереди и Pub/Sub обязательно
- Redis из Go-сервиса: go-redis, кэш, блокировки и сессии
- Эксплуатация Redis: персистентность, память, репликация обязательно
- Как устроен ClickHouse: колоночное хранение, MergeTree и OLAP
- ClickHouse: моделирование схемы, запросы, materialized views
- ClickHouse из Go: clickhouse-go, пакетная запись и чтение аналитики
- ClickHouse в проде: репликация, TTL, бэкапы и мониторинг
- Архитектура Cassandra: кольцо без главного узла
- Модель данных Cassandra: partition key и clustering columns
- Согласованность и репликация в Cassandra
- Как устроен Neo4j: property graph, узлы, рёбра и обход без индексов
- Cypher: язык запросов к графу простыми словами
- Neo4j: моделирование графа, индексы и эксплуатация
- PostgreSQL или MongoDB: как выбрать базу данных
- Oracle или PostgreSQL: отличия и миграция
- Cassandra, PostgreSQL или MongoDB: когда брать колоночную NoSQL
- Графовые данные простыми словами: рекурсивный SQL или графовая СУБД
- Neo4j: где применяют графовую СУБД — от рекомендаций до GraphRAG
- PostgreSQL или ClickHouse: когда добавлять вторую базу
- Поиск: PostgreSQL FTS или Elasticsearch
- Файлы: в базе данных или в object storage
- Как выбрать хранилище данных: таблица и алгоритм выбора
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 10. Принципы и паттерны проектирования · 36 вопросов
SOLID, GoF, GRASP и принципы DRY/KISS/YAGNI на примерах.
- SOLID: пять принципов проектирования на Go обязательно
- Паттерны GoF: все 23 простыми словами на Go обязательно
- GRASP: назначение ответственностей на Go
- DRY, KISS, YAGNI и другие инженерные принципы на Go обязательно
- Clean Code: имена, функции, комментарии
- Low level design: как решать задачи на проектирование в коде
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 11. Сетевой фундамент · 81 вопросов
Модели OSI и TCP/IP, IP и порты, TCP/UDP, DNS, HTTP и HTTPS, версии HTTP, соединения и надёжность.
- Как устроена сеть: модели OSI и TCP/IP обязательно
- IP-адреса, порты и NAT
- TCP и UDP: надёжность против скорости обязательно
- DNS: как доменное имя превращается в адрес обязательно
- HTTP: методы, статусы, заголовки обязательно
- HTTPS и TLS: шифрование и рукопожатие обязательно
- HTTP/1.1, HTTP/2 и HTTP/3: что поменялось
- Соединения: keep-alive, пулы и таймауты
- Два пула: к базе и по HTTP — чем отличаются и как топят друг друга
- Балансировщики и обратные прокси обязательно
- Сеть и надёжность: таймауты, ретраи, идемпотентность
- Сетевая диагностика с хоста: что смотреть, когда сервис не отвечает
- Linux для бэкенд-разработчика: процессы, сигналы, файлы и память
- WebSocket, SSE и long polling обязательно
- Масштабирование WebSocket в Kubernetes через Kafka
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 12. API: REST и контракты · 95 вопросов
REST-контракты на Go: URL и ресурсы, параметры, ответы, ошибки, версионирование, OpenAPI.
- URL и ресурсы в Go REST API — kebab-case, вложенность, chi обязательно
- Query-параметры — фильтрация, пагинация, сортировка в Go что пощупать
- JSON и формат ответов — структуры, omitempty, коллекции в Go
- Ошибки REST API в Go — RFC 9457, ProblemDetails, валидация обязательно что пощупать
- Заголовки — Idempotency-Key, traceparent, кастомные в Go обязательно что пощупать
- Версионирование REST API в Go: /api/v1 и breaking changes обязательно
- Alias и Action-эндпоинты в Go — me, latest и доменные команды
- API-first и contract-first в Go: контракт раньше кода обязательно
- OpenAPI-метаданные и сводка антипаттернов — Go
- Rate limiting, файлы, deprecation в Go
- Batch, async, локализация — partial success, 202 polling, Accept-Language (Go)
- gRPC: быстрые вызовы между сервисами обязательно
- GraphQL: клиент запрашивает ровно нужное обязательно
- HATEOAS: зрелость REST и гиперссылки
- Где валидировать данные обязательно что пощупать
- Свои правила валидации и сообщения об ошибках в Go
- Модель ошибок приложения обязательно что пощупать
- Единый обработчик ошибок в Go
- Типичные ошибки в обработке ошибок в Go
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 13. Безопасность и авторизация · 168 вопросов
Auth на Go и паттерны авторизации: где стоит проверка, JWT, RBAC/ABAC, секреты и аудит.
- Аутентификация и авторизация в Go
- Паттерны аутентификации и авторизации
- Где какая проверка — Gateway, BFF и Domain Service (Go) обязательно
- JWT validation в Go: golang-jwt и JWKS
- RBAC в Go: роли из JWT и проверка в chi-middleware
- ABAC и владение ресурсом в Go что пощупать
- Хранение токенов на клиенте — HttpOnly cookie и refresh rotation (Go)
- Service-to-service аутентификация на Go — mTLS и Client Credentials
- PII и секреты в Go — что нельзя в slog, error и Kafka обязательно
- Журнал действий администратора в Go что пощупать
- PCI DSS для разработчика
- GDPR для разработчика
- Уязвимости бэкенда
- Инъекции: SQL, NoSQL, команды ОС и шаблоны
- SSRF: сервер ходит туда, куда ему сказал клиент
- IDOR и BOLA: чужой заказ по номеру
- Массовое присваивание и лишние данные в ответах
- Обход пути и загрузка файлов
- XXE и небезопасная десериализация
- Подбор паролей, перебор учёток и лимиты запросов
- Открытый редирект, CSRF для API и ошибки CORS
- Гонки: двойное списание, TOCTOU и идемпотентность
- Ошибки с JWT: alg none, kid, aud и подмена ключа
- Как искать уязвимости: модель угроз, тесты, SAST и DAST
- Что такое Keycloak и зачем он нужен
- OAuth2 и OIDC простыми словами обязательно
- Realm, client, роли и пользователи в Keycloak
- Роли и доступ: RBAC и ABAC с Keycloak в Go обязательно
- Authorization Code Flow и PKCE по шагам обязательно
- Три токена Keycloak: access, id, refresh — куда какой обязательно
- Kerberos и LDAP: корпоративная аутентификация
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 14. Брокеры и распределённые системы · 42 вопросов
AMQP/RabbitMQ, Kafka и распределённые паттерны: saga, outbox, идемпотентность.
- Протокол AMQP: exchange, queue, binding, ack обязательно
- RabbitMQ в production: кластеризация, типы очередей и мониторинг
- Паттерны обмена сообщениями через AMQP на Go
- NATS: обмен сообщениями по темам
- NATS vs RabbitMQ vs Kafka: какой брокер выбрать
- Apache Kafka: топики, партиции, порядок и гарантии на Go обязательно что пощупать
- Kafka в production на Go: kafka-go, DLQ, Schema Registry, тюнинг, безопасность обязательно что пощупать
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 15. Микросервисы: архитектура и проблемы · 49 вопросов
Нужны ли микросервисы, как устроен сервис и как они общаются; что ломается в распределённой системе и как это лечить — saga, outbox, идемпотентность, устойчивость.
- Выбор начальной архитектуры: монолит, модульный монолит, микросервисы обязательно что пощупать
- Структурные паттерны микросервисов на Go обязательно что пощупать
- Что Kubernetes берёт на себя у Go-сервиса, а что остаётся в коде
- Между сервисами: синхронный вызов или события обязательно
- Проблемы распределённых систем простыми словами: частичные отказы, ненадёжные часы, истина по кворуму обязательно
- Согласованность и консенсус простыми словами: линеаризуемость, CAP и одна общая задача обязательно
- Корректность в распределённой системе простыми словами: сквозной аргумент, exactly-once, целостность против своевременности обязательно
- Распределённые паттерны: согласованность данных между сервисами на Go обязательно что пощупать
- Паттерны отказоустойчивости: Retry, Circuit Breaker, Bulkhead, DLQ на Go обязательно что пощупать
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 16. Контейнеры: Docker · 60 вопросов
Контейнеры и образы, Dockerfile для сервиса на Go, multi-stage сборка, запуск контейнеров, тома и данные, сети, Docker Compose, рантайм Go в контейнере, безопасные образы и реестры.
- Что такое Docker и контейнеры обязательно
- Образы, слои и Dockerfile: как Docker упаковывает приложение обязательно
- Dockerfile для сервиса на Go: статический бинарник и distroless обязательно что пощупать
- Multi-stage сборка и кэш слоёв Docker обязательно
- Запуск контейнеров: docker run и жизненный цикл
- Тома и данные в Docker: как не потерять базу при перезапуске контейнера
- Сети Docker: как контейнеры общаются между собой
- Docker Compose: поднять всё окружение одной командой обязательно
- Go в контейнере: GOMAXPROCS, GOMEMLIMIT и сигналы обязательно
- Маленькие и безопасные образы Docker
- Реестры образов и сборка в CI
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 17. Kubernetes и graceful shutdown · 88 вопросов
Кластер, сеть, деплой и эксплуатация в Kubernetes плюс корректное завершение работы сервиса.
- Kubernetes: pod, deployment, service — с чего начать обязательно
- Сеть в Kubernetes: Service, DNS, Ingress, NetworkPolicy обязательно
- Деплой в Kubernetes: манифесты, Helm, rolling update, GitOps обязательно
- Конфигурация на лету в Go-сервисе: ConfigMap, перечитывание файла и перезапуск
- Kubernetes на практике: отладка подов и kubectl-команды обязательно
- OpenShift: чем отличается от чистого Kubernetes
- Helm: пакетный менеджер Kubernetes
- Argo CD: GitOps-доставка в Kubernetes
- Go: конфигурация сервера и readiness при graceful shutdown
- HTTP drain в Go — как правильно остановить HTTP-сервер обязательно
- БД и persistence при graceful shutdown Go-сервиса
- Фоновые горутины и outbox-relay при graceful shutdown в Go что пощупать
- Kafka shutdown в Go: останавливаем потребитель и продюсер без потери сообщений
- Идемпотентность незавершённых операций в Go
- Kubernetes и graceful shutdown в Go: terminationGracePeriodSeconds, probes, rolling update обязательно
- Бюджеты shutdown и наблюдаемость в Go
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 18. Облака · 281 вопросов
Общие принципы облаков и три провайдера — AWS, Azure и GCP: сеть, IAM, compute, масштабирование, serverless, данные, хранилища и IaC. Модель одна, знания переносимы между облаками.
- Что такое облако и зачем оно нужно обязательно
- Регионы и зоны доступности: где физически живёт ваш сервис
- Учётные записи и права в облаке: пользователи, сервисные аккаунты, роли
- Сеть в облаке: частная сеть, подсети, файрвол и выход наружу
- Три уровня вычислений: машины, контейнеры, функции обязательно
- Управляемые данные: базы, кэш, очереди и объектное хранилище обязательно
- Наблюдаемость и секреты в облаке
- Деньги в облаке: за что платят и как не переплатить
- Отказоустойчивость и восстановление: зоны, копии, RPO и RTO
- Основы AWS: аккаунты, IAM, регионы и VPC
- Сеть в AWS: VPC, подсети, NAT и security groups
- IAM в AWS: пользователи, роли и политики
- Где запускать сервис в AWS: EC2, ECS, EKS или Lambda
- Масштабирование и доступность в AWS
- Serverless в AWS: Lambda, события, cold start, API Gateway
- Управляемые данные в AWS: RDS, ElastiCache, SQS, MSK
- DynamoDB: ключи, индексы и когда брать вместо SQL
- Безопасность и наблюдаемость в AWS: Secrets Manager, SSM, KMS, CloudWatch
- Оптимизация затрат в AWS: с чего начать
- Отказоустойчивость и аварийное восстановление в AWS
- AWS Well-Architected Framework: шесть столпов и как ими пользоваться
- Infrastructure as Code: основы
- Terraform: HCL, провайдеры, состояние и модули
- CloudFormation: шаблоны и стеки
- AWS CDK: инфраструктура как программа
- IaC на практике: state, секреты, доставка
- Основы Azure: подписки, группы ресурсов, Entra ID, сеть
- Сеть в Azure: Virtual Network, подсети, NSG, NAT
- Entra ID и RBAC в Azure: удостоверения, роли, managed identity
- Где запускать сервис в Azure: Virtual Machines, AKS, Container Apps, Functions
- Масштабирование и доступность в Azure
- Serverless в Azure: Azure Functions, триггеры, API Management
- Управляемые данные в Azure: PostgreSQL, Redis, Service Bus, Event Hubs
- Cosmos DB: глобально распределённая база данных Azure
- Blob Storage в Azure: объектное хранилище и уровни доступа
- Azure из приложения: доступ к сервисам из кода
- Безопасность и наблюдаемость в Azure: Key Vault, Azure Monitor, Application Insights
- Оптимизация затрат в Azure: с чего начать
- Отказоустойчивость и аварийное восстановление в Azure
- Инфраструктура как код в Azure: Bicep, ARM, Terraform
- Основы GCP: проекты, Cloud IAM, регионы, сеть
- Сеть в GCP: VPC, подсети, правила файрвола, Cloud NAT
- Cloud IAM в GCP: сервисные аккаунты, роли, привязки
- Где запускать сервис в GCP: Compute Engine, GKE, Cloud Run, Cloud Functions
- Масштабирование и доступность в GCP
- Serverless в GCP: Cloud Run, Cloud Functions, Eventarc
- Управляемые данные в GCP: Cloud SQL, Memorystore, Pub/Sub
- Firestore и другие NoSQL в GCP: Bigtable, Spanner
- Cloud Storage в GCP: объектное хранилище и классы хранения
- GCP из приложения: доступ к сервисам из кода
- Безопасность и наблюдаемость в GCP: Secret Manager, Cloud Logging, Cloud Monitoring
- Оптимизация затрат в GCP: с чего начать
- Отказоустойчивость и аварийное восстановление в GCP
- Terraform в GCP: инфраструктура как код
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 19. CI/CD: конвейер доставки · 25 вопросов
Принципы конвейера, стратегии релиза, ветвление и выпуски.
-
Фаза 20. Качество: стратегия тестов · 29 вопросов
Пирамида тестов, слайсы и интеграционные тесты, моки и внешние сервисы, нагрузочное тестирование.
- Тестирование в Go обязательно что пощупать
- Интеграционные тесты на Go: PostgreSQL в контейнере обязательно
- Моки и внешние системы в тестах на Go обязательно
- Нагрузочное тестирование: k6, Gatling, JMeter
- Пирамида тестов: что и где обязательно
- Тест фазы в кабинете
-
Фаза 21. Наблюдаемость и диагностика · 74 вопросов
Как понять, что происходит с работающей системой: журналы, метрики, трассировка, проброс контекста, health-проверки, SLO и алерты — плюс диагностика базы и разбор аварий после.
- Наблюдаемость Go-сервиса: логи, трейсы, метрики, health-checks
- Логирование в Go: slog, JSON и context.Context обязательно
- slog, zerolog и zap: какую библиотеку логирования брать в Go
- Метрики в Go: prometheus/client_golang, RED, USE и бизнес-счётчики обязательно что пощупать
- Distributed tracing в Go: OpenTelemetry с нуля обязательно
- Context propagation в Go — context.Context, middleware и горутины
- Health checks в Go: liveness, readiness и /info что пощупать
- SLO и алерты в Go: error budget и multi-window burn rate
- Конфигурация observability в Go: management-порт, логи и метрики
- Профилирование и утечки памяти в Go: когда метрик уже мало обязательно
- От алерта до строки лога на Go: как связать три сигнала обязательно
- Постмортем и дежурства: разбор аварий без поиска виноватых обязательно
- Мониторинг PostgreSQL: slow queries, активность и ключевые метрики обязательно
- Отчёт нагрузки PostgreSQL: как читать и ставить диагноз
- Отчёт нагрузки своими руками: запросы по каждому разделу
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 22. Работа с AI-агентами · 94 вопросов
Как работает языковая модель и как продуктивно писать код с AI-агентом: токены и галлюцинации, контекст, вызов инструментов, агенты, базовый цикл работы, ревью и приёмка AI-кода.
- Как работают модели ИИ: предсказание следующего токена
- Галлюцинации ИИ: почему модель уверенно выдумывает
- Токены и стоимость: за что вы платите в работе с ИИ
- Контекст: что модель держит в голове за один раз
- Вызов инструментов: как модель выходит за пределы текста что пощупать
- Агенты: модель в цикле с инструментами и целью что пощупать
- Работа с агентами: базовый цикл продуктивной сессии
- Claude Code: команды, которыми пользуешься каждый день
- Spec-driven development: сначала спецификация, потом код
- Ревью и тестирование кода с агентом
- Приёмка результата AI: критерии и тесты из спеки
- AI как рычаг продукт-инженера
- Как настроить агента под свой проект: правила, память, инструменты
- AI PDLC: полный цикл продукта с агентом и MCP
- Какой язык программирования выбрать для AI-кодинга
- Ежедневная работа с агентом: разобраться, сделать, починить
- Как ревьюить код, который написал агент
- Исполняемые правила агента vs SonarQube vs ESLint vs ревью тимлидом
- Тест фазы в кабинете
-
Фаза 23. Создание LLM-приложений · 66 вопросов
Как встраивать AI в backend-продукт: из чего состоит LLM-фича, оркестрация через LangChain, RAG и эмбеддинги, векторные базы и агентные приложения.
- Из чего состоит LLM-фича что пощупать
- LangChain: оркестрация LLM-приложений
- RAG и эмбеддинги: как дать модели ваши данные что пощупать
- Векторные базы данных что пощупать
- Агентные приложения: инструменты и автономные циклы что пощупать
- Мультиагентные системы: шесть паттернов оркестрации агентов
- Оценка AI-агентов: тест траектории, рубрика и регрессия
- Память AI-агента: сессия, долгая память и что в неё класть
- Безопасность AI-агентов: права, идентичность и уровни доверия
- Инъекция в промпт: прямая и косвенная
- Вывод модели как недоверенный ввод: SQL, HTML, markdown и аргументы инструментов
- Безопасность RAG: чужие документы и отравленная база
- Утечки через модель: данные, секреты и системный промпт
- Неограниченное потребление и лишние полномочия модели
- Агент в продакшене: протоколы MCP и A2A, деплой и трассировка
- Тест фазы в кабинете
-
Фаза 24. Системный дизайн и архитектурный выбор · 50 вопросов
Метод дизайна, строительные блоки и развилки выбора хранилищ, синхронности и нотаций.
- Надёжность, масштабируемость, сопровождаемость — простыми словами обязательно
- Метод системного дизайна: от требований к архитектуре обязательно
- Строительные блоки системного дизайна обязательно
- Как устроена система уведомлений: архитектура с нуля
- Как оформить и защитить дизайн системы: design doc, C4, ревью
- ADR: как фиксировать архитектурные решения обязательно
- Роль архитектора в команде разработки
- Модель C4
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 25. Domain-Driven Design · 45 вопросов
Стратегические и тактические паттерны, интеграция и принципы проектирования домена.
- Что такое DDD и зачем он нужен обязательно что пощупать
- Стратегические паттерны DDD на Go обязательно
- Тактические паттерны DDD на Go обязательно
- Интеграционные паттерны DDD на Go обязательно
- Принципы проектирования в DDD на Go
- Онтология и доменная модель: система понятий до агрегатов
- Event Storming: добываем модель домена у бизнеса
- Тест фазы в кабинете
-
Фаза 26. Архитектурные паттерны сервиса · 117 вопросов
Структура сервиса, Onion и Hexagonal, CQRS, отказоустойчивость и пакетная обработка (на Go).
- Луковая архитектура (Onion Architecture) обязательно
- CQRS
- Когда применять CQRS в Go-сервисе обязательно
- Command side в CQRS на Go обязательно
- Query side в CQRS на Go: как читать данные правильно
- Read-model в CQRS (Go): где хранить и как обновлять проекцию
- Синхронизация read-model через события в Go
- Уровень и эволюция CQRS в Go
- Гексагональная архитектура что пощупать
- Когда применять Hexagonal Architecture в Go-сервисе обязательно
- Core слой в Go: Hexagonal Architecture обязательно что пощупать
- Ports в Hexagonal Architecture — как ядро общается с внешним миром (Go) обязательно
- Входные адаптеры в гексагональной архитектуре на Go
- Out-адаптеры в Hexagonal Architecture на Go
- Структура пакетов Hexagonal Architecture на Go
- Bootstrap и Composition Root в гексагональной архитектуре (Go)
- Архитектурные тесты Hexagonal в Go что пощупать
- Пакетная обработка данных: как не сломать фоновый обработчик на Go
- Event Sourcing: хранить события, а не состояние
- Конечные автоматы и стейт-машины: что это и когда нужны что пощупать
- Как реализовать стейт-машину в Go что пощупать
- BPM и оркестрация процессов: Camunda и аналоги
- Мок-интервью в кабинете
- Тест фазы в кабинете
-
Фаза 27. Методологии и процесс разработки · 41 вопросов
Waterfall, Agile, Scrum, Kanban, XP, оценка и масштабирование — как команда организует работу от идеи до релиза.
- Модели разработки: от Waterfall к Agile
- Scrum: роли, события и артефакты обязательно
- Kanban: поток, WIP-лимиты и вытягивание обязательно
- Extreme Programming: инженерные практики Agile
- Оценка и планирование: story points и velocity
- Масштабирование Agile: SAFe и LeSS
- Методология для AI: Use Case Pattern и другие способы
- Тест фазы в кабинете
-
Фаза 28. Продукт-инженер: роль и практика · 49 вопросов
Роль целиком: начать с проблемы пользователя, метрики результата и владение результатом, модель домена и путь от среза к контракту.
- Кто такой продукт-инженер: роль и цикл работы
- Проблема, а не решение
- Контакт с пользователем
- Бизнес-метрика, а не метрика выпуска
- Приоритизация: наименьший ценный срез
- Владение от идеи до пользователя
- Релиз и петля метрик в одиночку что пощупать
- Язык домена: понятия, словарь и граф знаний
- От модели понятий к контракту, который исполняет агент
- Тест фазы в кабинете
-
Фаза 29. Use Case Pattern и сквозной кейс · 66 вопросов
Кульминация: методология Use Case Pattern — проектирование сервиса от бизнес-задачи, спецификация Use Case, уровни зрелости 0–3 — и сквозной кейс маркетплейса, собирающий весь пройденный путь воедино.
- Use Case Pattern
- Use Case Pattern: как применять пошагово
- Use Case спецификация: формат
- Уровень зрелости 0: снимок существующего кода
- Уровень зрелости 1: Слоёный
- Уровень зрелости 2: UseCase + Handler что пощупать
- Уровень зрелости 3: DDD + Hexagonal
- Кейс: маркетплейс — как я понял задачу
- Как разбить систему на сервисы: карта маркетплейса
- AI пишет код. Зачем тогда методология?
- AI-native компания: маленькая команда + агенты, и почему ей всё равно нужна методология
- Executable standard: исполняемые правила как ESLint для архитектуры
- Тест фазы в кабинете
-
Фаза 30. Продвинутая конкурентность · 10 вопросов
Модель памяти, атомики, мьютексы, каналы, errgroup, singleflight, worker pools и диагностика deadlock и утечек горутин.
- Модель памяти Go: happens-before и почему флаг виден не всем
- Атомики и CAS в Go: счётчики, флаги и составные инварианты
- Мьютексы и condition variables в Go: ждать без цикла
- Каналы в Go: владение, select и завершение без утечек
- errgroup и singleflight: отмена группы и один запрос вместо ста
- sync.Map, Once и Pool в Go: ленивая инициализация и повторное использование
- Worker pools и backpressure в Go: лимит без очереди роста
- Deadlock и утечки горутин в Go: как найти и проверить
- Тест фазы в кабинете
-
Фаза 31. Производительность Go · 8 вопросов
Методика измерения, бенчмарки и benchstat, аллокации, CPU и memory profiles, GC и нагрузочное тестирование до и после.
- Оптимизация Go начинается с измерения: гипотеза и методика
- Бенчмарки Go: testing.B, benchmem и benchstat
- Аллокации в Go: escape analysis и лишние копии
- Профилирование CPU в Go: от пламени до строки
- Память и GC в Go: аллокации, пила и GOMEMLIMIT
- Нагрузочное тестирование Go: доказать, что оптимизация работает
- Тест фазы в кабинете
-
Фаза 32. gRPC в Go · 11 вопросов
Protobuf, кодогенерация через buf, унарные вызовы, ошибки, дедлайны, metadata, стриминг, interceptors, ретраи, совместимость и продакшен.
- Protobuf в Go: контракт сообщений и номера полей
- Кодогенерация gRPC в Go: buf и protoc
- Унарный gRPC в Go: сервер и клиент
- Ошибки gRPC в Go: status, codes и details
- Дедлайны и metadata в gRPC: отмена и контекст
- Стриминг gRPC в Go: серверный, клиентский и двунаправленный
- Interceptors и аутентификация gRPC в Go
- Надёжность gRPC: ретраи, идемпотентность и backpressure
- Совместимость protobuf: добавлять, не ломая
- gRPC в продакшене: TLS, метрики и graceful shutdown
- Тест фазы в кабинете
-
Фаза 33. JavaScript
Основы языка и рантайма: значения и ссылки, область видимости, замыкания, прототипы, промисы, async/await и event loop.
- Основы JavaScript обязательно
- Асинхронность и event loop в JavaScript обязательно что пощупать
- Типы в JavaScript: примитивы, объекты и typeof обязательно
- Приведение типов: ==, === и truthy/falsy обязательно
- Область видимости: var, let, const и поднятие обязательно
- Замыкания: как работают и зачем нужны обязательно
- Прототипы: делегирование и классы как сахар обязательно
- Объекты: ссылки, копирование и неизменяемость обязательно
- Промисы изнутри: цепочки, ошибки и async/await обязательно
- Итераторы и генераторы
- Мок-интервью в кабинете
-
Фаза 34. TypeScript
Типы и сужение, дженерики, классы и декораторы, модули, npm и инструменты TypeScript.
- Базовые типы TypeScript: аннотации, вывод, union и any обязательно
- Сужение типов и guards в TypeScript обязательно
- Дженерики в TypeScript: переиспользуемый типобезопасный код обязательно
- Классы и декораторы в TypeScript обязательно что пощупать
- Модули и npm: как код собирается из частей
- Инструменты TypeScript и Node: с чего начать
- Мок-интервью в кабинете
-
Фаза 35. Браузер и практический CSS
Платформа и стили: this, event loop, DOM, безопасность, критический рендеринг, ошибки, анимации, сборка и практический CSS.
- this: контекст вызова обязательно
- Event loop: как работает и где стреляет обязательно
- События DOM: всплытие, погружение, делегирование обязательно
- Браузер и сеть: откуда берётся страница, CORS, cookie и хранилища, XSS и CSRF обязательно
- Критический путь рендера обязательно
- Обработка ошибок в JavaScript и браузере
- Анимации: CSS и оптимизации
- Сборка фронтенда: бандлеры и подходы
- Основы CSS: синтаксис, подключение и первые свойства
- Каскад, специфичность и наследование обязательно
- Селекторы: комбинаторы, псевдоклассы и псевдоэлементы обязательно
- Блочная модель: размеры, box-sizing и схлопывание отступов обязательно
- Поток документа: display, visibility и наследие float обязательно
- Позиционирование: от static до sticky и z-index обязательно
- Flexbox: оси, выравнивание и распределение места обязательно
- Grid: двумерная вёрстка обязательно
- Единицы и адаптивность: rem, проценты, vw и clamp обязательно
- Оформление: градиенты, тени, фильтры и трансформации
- Мок-интервью в кабинете
-
Фаза 36. React
Компоненты, типизация, модель рендеринга и хуки.
-
Фаза 37. Архитектура frontend
Структура проекта и критерии выбора: feature-based и layer-based, FSD, границы модулей, Atomic Design и микрофронтенды.
-
Фаза 38. Данные и состояние
Состояние, загрузка данных, ошибки, формы.
- Состояние: локальное и серверное обязательно
- MobX и Redux Toolkit: менеджеры состояния в React
- Загрузка данных в React: TanStack Query обязательно
- Клиент из OpenAPI: генерация типов, хуков и моков
- Обработка ошибок и Suspense обязательно
- Формы: react-hook-form и zod обязательно
- Состояние в адресной строке: фильтры, страницы и ссылки
- Мок-интервью в кабинете
-
Фаза 39. Роутинг и доставка
Роутинг, стилизация и выбор доставки страницы: SPA, SSR и SSG.
-
Фаза 40. Качество и производительность
Доступность, производительность, тесты.
- Доступность (a11y) обязательно
- Производительность рендеринга обязательно
- Тестирование frontend: Vitest и Testing Library обязательно
- Окружение и секреты во фронтенде
- Мок-интервью в кабинете
-
Фаза 41. Мобильное приложение из веба
Web-first вместо натива: PWA и Capacitor, нативные API через мост, специфика iOS (WKWebView) и Android (TWA), push и офлайн — и граница, за которой нужен натив.
- Мобильная разработка: web-first, гибрид или натив обязательно
- PWA: устанавливаемое веб-приложение обязательно
- Capacitor: веб-приложение в нативной обёртке
- Доступ к нативным возможностям: мост и плагины
- iOS: WKWebView, App Store и ограничения
- Android: TWA, Play Store и WebView
- Push-уведомления в мобильном вебе
- Офлайн и хранение данных на устройстве
- Когда web-first не хватает: предел и натив
-
Фаза 42. Что такое тестирование
Зачем тестируют ПО, роль QA, ручное против автоматизированного, жизненный цикл ПО и тестирования.
- Что такое тестирование и зачем оно нужно обязательно
- Кто такой тестировщик и его роль в команде
- Мифы о тестировании и что реально нужно для старта
- Ручное и автоматизированное тестирование: в чём разница обязательно
- Жизненный цикл ПО и место тестирования (SDLC и STLC) обязательно
- Модели разработки ПО: waterfall, V-модель и итерации
-
Фаза 43. Виды и уровни
Уровни тестирования, функциональное и нефункциональное, чёрный/белый ящик, smoke и регресс.
- Уровни тестирования: модульное, интеграционное, системное, приёмочное обязательно
- Виды тестирования: функциональное и нефункциональное обязательно
- Нефункциональные виды тестирования на практике обязательно
- Чёрный, белый и серый ящик: три режима видимости обязательно
- Исследовательское тестирование и степень формализации обязательно
- Локализационное тестирование
-
Фаза 44. Дизайн тест-кейсов
Как писать тест-кейсы, тест-план и сьюты, отчётность и метрики, оценка трудозатрат, техники тест-дизайна, таблицы решений, чек-листы и данные.
- Как писать тест-кейс: шаги и ожидаемый результат обязательно
- Качество тест-кейса: балансы, показательность и типичные ошибки
- Тест-план и тест-сьюты: как организовать проверки обязательно
- Отчёт о результатах тестирования и метрики обязательно
- Оценка трудозатрат в тестировании
- Техники тест-дизайна: классы эквивалентности и граничные значения обязательно
- Таблицы решений и попарное тестирование обязательно
- Чек-листы и тестовые данные обязательно
- Пользовательские сценарии, персонажи и наборы кейсов
-
Фаза 45. Баги
Что такое баг, severity и priority, как писать баг-репорт и делать его качественным, жизненный цикл бага и трекеры.
-
Фаза 46. Инструменты и практика
Тест-менеджмент, основы веба (HTML/CSS/JS), клиент-сервер и HTTP, DevTools, API в Postman, SQL, кроссбраузерное тестирование и команды Linux.
- Тест-менеджмент: TestRail, Qase, Zephyr
- Основы веб-технологий: HTML, CSS, JavaScript и DOM
- Клиент-сервер и HTTP: как страница общается с сервером обязательно
- DevTools браузера для тестировщика обязательно
- Основы API-тестирования в Postman обязательно
- Какие бывают API: REST, SOAP и GraphQL обязательно
- Основы сетей: как запрос находит сервер обязательно
- Вход в систему: аутентификация, авторизация и токены обязательно
- SQL для тестировщика обязательно
- Кроссбраузерное и мобильное тестирование
- Тестирование мобильных приложений
- Команды Linux и терминал для тестировщика
- Логи и наблюдение за системой обязательно
- Форматы данных: JSON, XML, YAML и CSV обязательно
- Микросервисы, брокеры и очереди глазами тестировщика обязательно
-
Фаза 47. Python для автотестов
Python с нуля до автотестов: переменные и строки, условия, списки и словари, циклы, функции, assert, разбор данных, pytest и автотесты API. Каждая статья — с задачами в тренажёре.
- Зачем тестировщику Python и как запустить первую строку
- Переменные, строки и числа обязательно
- Сравнения и условия: как программа принимает решение
- Списки и словари: JSON — это словарь обязательно
- Циклы: пройти по всем и ничего не пропустить обязательно
- Функции: собрать проверку в одном месте обязательно
- assert и ошибки: как проверка сообщает о поломке
- Разбор данных: посчитать, сверить, найти расхождение
- pytest: первый настоящий тест обязательно
- Автотесты API на Python: собрать всё вместе обязательно
- Мок-интервью в кабинете
-
Фаза 48. Автотесты интерфейса
Playwright: когда сквозной тест оправдан, настройка, структура тестов и page objects, устойчивые локаторы, ожидание вместо пауз, данные и вход без формы, перехват сети, нестабильность и запуск в CI.
- Когда нужен e2e обязательно
- Настройка Playwright
- Структура тестов: fixtures и page objects обязательно
- Локаторы в Playwright: как находить элементы на странице обязательно
- Утверждения и ожидание в Playwright обязательно
- Тестовые данные и аутентификация в Playwright
- Сеть: перехват и мок запросов в Playwright
- Нестабильные тесты: почему e2e падают без причины обязательно
- E2E-тесты в CI: запуск, ускорение и разбор падений обязательно
-
Фаза 49. В команде и дальше
QA в Agile и Scrum, тестирование по требованиям, основы автоматизации и куда расти дальше.
- QA в Agile и Scrum: роль в спринте обязательно
- Тестирование по требованиям обязательно
- Уровни и свойства хороших требований
- Ревью требований: техники и хорошие вопросы
- Как устроена автоматизация: подходы и экономика обязательно
- Git для тестировщика: ветки, коммиты и слияния обязательно
- CI/CD: конвейер, тесты и артефакты
- Куда расти дальше в тестировании
-
Фаза 50. Роль и вход в неё
Что меняется после повышения и как войти в команду.
- Из инженера в лида: что меняется в работе обязательно
- Как принять команду: первые 90 дней тимлида обязательно
-
Фаза 51. Команда: структура, владение, люди
Владение системами, делегирование, рост инженеров, трудные разговоры и управление несколькими командами.
- Структура команды и владение системами обязательно
- Делегирование, встречи один на один и рост инженеров обязательно
- Трудные разговоры: не тянет, конфликт, расставание обязательно
- Почему уходят инженеры и что видно заранее обязательно
- Руководство направлением: как управлять 50-100 инженерами обязательно
-
Фаза 52. Найм и ввод в работу
Портрет до отбора, этапы проверки и первые тридцать дней нового человека.
-
Фаза 53. Обязательства: сроки, поток, стейкхолдеры
Оценка и обязательство, поток запросов и выбор инициатив портфеля по деньгам.
- Почему оценки не сбываются и что с этим делать обязательно
- Стейкхолдеры: как управлять ожиданиями обязательно
- Портфель проектов: приоритизация, ROI и портфельный комитет обязательно
-
Фаза 54. Инженерные нормы и качество
Нормы ревью, технический долг, требования, безопасность и регуляторика.
-
Фаза 55. Надёжность и эксплуатация
SLO, алерты и наблюдаемость работающей системы.
-
Фаза 56. Решения и их запись
Архитектурный комитет, выбор по критериям, технологии глазами менеджера и вендоры.
-
Фаза 57. Измерение и разговор с бизнесом
Метрики команды, бюджет ИТ и технические риски на языке денег.
Программа обучения v14.1.0
Продукт-инженер · Go
Полная программа продукт-инженера на Go: технический фундамент Go-стека, backend, frontend и QA, работа с AI-агентами и LLM-приложениями, затем полный продуктовый цикл от проблемы до бизнес-метрики и управленческий контур - команда, найм, обязательства, качество, надёжность, решения и разговор с бизнесом.
Всего в программе 2365 вопросов для самопроверки.