Чеклист для собеседования Общее [] SOLID, расшифровка каждой буквы + примеры из го [] Паттерны из Gang of Four, мочь сказать какие виды + 3-4 запомнить и как их использовать [] Что такое хеш таблица, сет, стек, очередь и для чего нужны [] Что такое TPC/IP, в чем отличия с UDP? [] Как работает http запрос? Коды ошибок, http методы. [] Отличия http и https. Как работает https? [] http/1 и http/2 в чем отличия? [] Что такое идемпотентность в http запросах? Как реализовать? [] Отличия rest и grpc, что когда нужно использовать? Как что работает? [] Чем отличается поток от процесса? [] Назови 10 команд линукс и что делают? [] Что такое git flow? [] Что такое observability? [] Проблемы с многопоточностью - data race, race condition, другие. Мочь пояснить за каждую с примером. Go [] Слайсы, отличие от массива [] Как передаются параметры функции в го? А мапа? [] Как работает append при разных значениях len и cap [] Как работает мапа? [] Как сделать сет из мапы? [] Что такое хеш функция? Как резолвятся и предотвращаются коллизии? [] Интерфейс Error. Как надо работать с ошибками? Работа с ошибками между модулями. [] Что такое каналы, какие виды, для чего. Запись и чтение из закрытых каналов. Аксиомы каналов. [] Мьютексы, вейт группы, рвмьютексы, как создать в коде и как использовать, зачем нужны [] Что такое sync.pool, пример использования? [] sync.map и его использование, в чем отличие от мапы с мьютексом? [] errgroup что такое, как использовать? [] << ОЧЕНЬ ВАЖНО >> Как работает планировщик? [] << ОЧЕНЬ ВАЖНО >> Как работает garbage collector? [] Что такое контекст? Как использовать? [] Как сделать graceful shutdown? [] Что такое padding/alignment в структурах в го? [] Интерфейсы, как реализованы, для чего используются? [] Типизированный nil. [] Какие использовал логгеры? Какие использовал линтеры? [] Lock free структуры данных в го. Базы Данных [] Что такое транзакция? [] Что такое триггеры? [] Какие агрегатные функции знаешь? [] ACID, каждая буква подробно [] CAP theorem, каждый пункт подробно [] Для чего нужны индексы, какие бывают? [] Что такое EXPLAIN и EXPLAIN ANALYZE? [] Что такое миграция? Как делать? [] Что такое jsonb? Какой индекс к нему подходит? Для чего нужно? [] Какие есть виды блокировок в базах данных? Оптимистичные и пессимистичные блокировки. [] Нормализация в базах данных. 4 нормальные формы (1-3 и нормальная форма Бойса-Кодда) Соседние технологии [] Зачем нужен REDIS? Что такое cache hit? Когда использование кеша плохо? [] Зачем нужна kafka? Что такое producer, consumer, topic, partition, consumer group? [] Что такое докер? Отличия от виртуализации. Как писать dockerfile и docker compose? [] Что такое мультистейдж сборка в докере? [] Что такое protobuf и как его использовать? Как поднимать версию и изменять прото контракт? [] Что такое метаданные в grpc? [] Как сделать распределенную транзакцию? [] Что такое stateful и stateless микросервисы? [] Паттерны микросервисов (уметь рассказать хотя бы 3) [] Что такое чистая архитектура? [] Что такое DDD? Основы DDD. [] Что такое сага? [] Как перейти от монолита к микросервисам? [] Что такое OpenAPI? В чем отличие от Swagger? [] Что такое CQRS? Для чего нужен? [] Что такое JWT токен? Зачем нужен? Из чего состоит? Систем дизайн [] Что такое лоад балансер? Зачем нужен?