Собеседуем Go-разработчика вместе с Go Senior в adjoe

#Shortcat #СобеседованиеGo #TransactionalOutbox Пройди МОК-интервью с опытным разработчиком и получи готовую стратегию выхода на следующий грейд (1 на 1, без зрителей): https://t.me/shortcut_go_bot?start=youtube_video_live_Golang_02_07_2026 Наш сайт: https://shortcut.education/?utm_source=youtube&utm_content=webinar_02_07_2026&utm_campaign=go 🎯 Цель этого стрима: показать, как выглядит реальное продвинутое собеседование на позицию Senior/Lead Backend-разработчика в международный FinTech. Это не теория, а живой разбор кода с принятием архитектурных решений. Интервьюер: Маруф Караев - Go Senior в adjoe, ex-Яндекс, Uzum Таймкоды: 0:00 — Знакомство с интервьюером и кандидатом 1:53 — Строки и руны в Go | len() vs количество символов, UTF-8, кириллица — 2 байта 2:55 — Конвертация строки в руны | []rune(s) — как посчитать символы без библиотеки 5:11 — Разбор: []rune(s) | правильный способ подсчёта символов, utf8.RuneCountInString 5:48 — Слайс в Go | копирование слайса, append в функции, аллокация нового массива 7:09 — Массив vs слайс в Go | len, cap, реаллокация при превышении capacity (x2) 8:18 — Map в Go | чтение несуществующего ключа, zero value, comma-ok идиома 9:25 — Map под капотом | хэш-таблица, бакеты, map load factor, эвакуация 10:36 — Адрес элемента map | почему нельзя взять &map[key], реаллокация и перемещение значений 11:27 — Итерация по map | отсутствие гарантии порядка ключей, рандомизация 12:00 — Defer в Go | LIFO-порядок, замыкание (closure) в цикле, версии Go (1.22+) 13:08 — Recover и горутины | паника в одной горутине — recover не ловит из другой 14:30 — Struct и Interface в Go | утиная типизация (duck typing), неявная имплементация, pointer receiver vs value receiver 15:21 — Pointer Receiver vs Value Receiver | *Dog vs Dog, что имплементирует интерфейс 17:02 — Решение: &Dog удовлетворяет интерфейсу | Dog* реализует, Dog — нет 18:10errors.Is vs errors.As | проверка типа ошибки vs разворачивание wrapped-ошибок 20:47 — Разбор: errors.Is vs == | почему нельзя сравнивать через ==, fmt.Errorf и вложенные ошибки 21:57 — Задача: реализовать sync.Once без sync.Once | мьютекс + флаг, буферизованный канал 24:30 — Реализация sync.Once через Mutex | структура с done-флагом, Lock/Unlock, атомарная проверка 29:30 — Корнер-кейс: паника в Do() | defer + recover, флаг после успешного выполнения 31:00 — Реализация sync.Once через каналы | буферизованный канал (1), закрытие после выполнения 33:38 — Select + default в канальной реализации | первая горутина читает → исполняет → закрывает канал 37:51 — Аксиомы каналов в Go | чтение/запись в nil-канал → deadlock, запись в закрытый → panic 39:37 — Чтение из закрытого канала | zero value + ok=false, двойное закрытие → panic 40:54 — Context в Go | отмена цепочки запросов, таймауты, передача метаданных 42:06 — context.Done() | канал, сигнализирующий о завершении контекста, отмена горутин 43:20 — SQL JOIN | INNER JOIN (пересечение) vs OUTER JOIN (объединение), LEFT JOIN vs RIGHT JOIN 44:15 — Задача SQL: сумма заказов за месяц | SELECT, GROUP BY, HAVING, SUM(), фильтрация по дате 49:30 — Индексы в PostgreSQL | B-tree, ускорение чтения — замедление записи, пересчёт при INSERT 50:30 — Cемантики доставки сообщений | брокер, publisher, consumer, очередь сообщений 51:23 — At Most Once | «отправил и забыл» — простая отправка без гарантий доставки 53:29 — At Least Once | ретраи, retry, паттерн Transactional Outbox — таблица исходящих сообщений 56:03 — Exactly Once | идемпотентность, idempotency key, дедупликация на стороне consumer'а 57:47 — Где нужен Exactly Once | финансовые операции, списание средств — нельзя дважды 58:55 - презентация Шорткат 1:09:23 — Фидбэк от Маруфа | Junior+ подтверждён, силён в Go-базе и горутинах, углубить каналы и архитектуру 1:10:57 — Обратная связь от Василия | МОК-интервью как срез знаний, новые точки роста 1:13:09 — Грейд Василия | Junior Plus, зарплатная вилка Go-разработчика: 150-180 тыс. руб. 1:15:40 — Закрытие эфира 🚀 Кому это будет полезно: • Senior-разработчикам на Go, готовящимся к собеседованиям в FAANG, крупный IT или FinTech. • Тимлидам, которые хотят понять, как проводить глубокий code review. • Всем бэкендерам, кто хочет вывести свои навыки код-ревью и проектирования систем на новый уровень. 📈 После просмотра ты: • Увидишь типичные ошибки даже опытных разработчиков. • Поймешь, как мыслят инженеры уровня Head of Engineering. • Получишь готовую структуру для анализа любого микросервиса. • Узнаешь, какие non-technical skills критичны на высоком уровне. ‼️ Важно: Это не постановка. Кандидат и интервьюер видели код впервые. Максимум реальности. #СобеседованиеGo #GoMiddle #MockInterview #СтрокиGo #Руны #СлайсGo #MapGolang #DeferGo #ИнтерфейсыGo #PointerReceiver #ErrorsIs #SyncOnce #КаналыGo #ContextGolang #SQLJOIN #ИндексыPostgreSQL #OutboxPattern #AtLeastOnce #ExactlyOnce #TransactionalOutbox #JuniorPlus #Шорткат #МокИнтервью

Иконка канала Всё про Связь
5 подписчиков
12+
2 просмотра
3 дня назад
12+
2 просмотра
3 дня назад

#Shortcat #СобеседованиеGo #TransactionalOutbox Пройди МОК-интервью с опытным разработчиком и получи готовую стратегию выхода на следующий грейд (1 на 1, без зрителей): https://t.me/shortcut_go_bot?start=youtube_video_live_Golang_02_07_2026 Наш сайт: https://shortcut.education/?utm_source=youtube&utm_content=webinar_02_07_2026&utm_campaign=go 🎯 Цель этого стрима: показать, как выглядит реальное продвинутое собеседование на позицию Senior/Lead Backend-разработчика в международный FinTech. Это не теория, а живой разбор кода с принятием архитектурных решений. Интервьюер: Маруф Караев - Go Senior в adjoe, ex-Яндекс, Uzum Таймкоды: 0:00 — Знакомство с интервьюером и кандидатом 1:53 — Строки и руны в Go | len() vs количество символов, UTF-8, кириллица — 2 байта 2:55 — Конвертация строки в руны | []rune(s) — как посчитать символы без библиотеки 5:11 — Разбор: []rune(s) | правильный способ подсчёта символов, utf8.RuneCountInString 5:48 — Слайс в Go | копирование слайса, append в функции, аллокация нового массива 7:09 — Массив vs слайс в Go | len, cap, реаллокация при превышении capacity (x2) 8:18 — Map в Go | чтение несуществующего ключа, zero value, comma-ok идиома 9:25 — Map под капотом | хэш-таблица, бакеты, map load factor, эвакуация 10:36 — Адрес элемента map | почему нельзя взять &map[key], реаллокация и перемещение значений 11:27 — Итерация по map | отсутствие гарантии порядка ключей, рандомизация 12:00 — Defer в Go | LIFO-порядок, замыкание (closure) в цикле, версии Go (1.22+) 13:08 — Recover и горутины | паника в одной горутине — recover не ловит из другой 14:30 — Struct и Interface в Go | утиная типизация (duck typing), неявная имплементация, pointer receiver vs value receiver 15:21 — Pointer Receiver vs Value Receiver | *Dog vs Dog, что имплементирует интерфейс 17:02 — Решение: &Dog удовлетворяет интерфейсу | Dog* реализует, Dog — нет 18:10errors.Is vs errors.As | проверка типа ошибки vs разворачивание wrapped-ошибок 20:47 — Разбор: errors.Is vs == | почему нельзя сравнивать через ==, fmt.Errorf и вложенные ошибки 21:57 — Задача: реализовать sync.Once без sync.Once | мьютекс + флаг, буферизованный канал 24:30 — Реализация sync.Once через Mutex | структура с done-флагом, Lock/Unlock, атомарная проверка 29:30 — Корнер-кейс: паника в Do() | defer + recover, флаг после успешного выполнения 31:00 — Реализация sync.Once через каналы | буферизованный канал (1), закрытие после выполнения 33:38 — Select + default в канальной реализации | первая горутина читает → исполняет → закрывает канал 37:51 — Аксиомы каналов в Go | чтение/запись в nil-канал → deadlock, запись в закрытый → panic 39:37 — Чтение из закрытого канала | zero value + ok=false, двойное закрытие → panic 40:54 — Context в Go | отмена цепочки запросов, таймауты, передача метаданных 42:06 — context.Done() | канал, сигнализирующий о завершении контекста, отмена горутин 43:20 — SQL JOIN | INNER JOIN (пересечение) vs OUTER JOIN (объединение), LEFT JOIN vs RIGHT JOIN 44:15 — Задача SQL: сумма заказов за месяц | SELECT, GROUP BY, HAVING, SUM(), фильтрация по дате 49:30 — Индексы в PostgreSQL | B-tree, ускорение чтения — замедление записи, пересчёт при INSERT 50:30 — Cемантики доставки сообщений | брокер, publisher, consumer, очередь сообщений 51:23 — At Most Once | «отправил и забыл» — простая отправка без гарантий доставки 53:29 — At Least Once | ретраи, retry, паттерн Transactional Outbox — таблица исходящих сообщений 56:03 — Exactly Once | идемпотентность, idempotency key, дедупликация на стороне consumer'а 57:47 — Где нужен Exactly Once | финансовые операции, списание средств — нельзя дважды 58:55 - презентация Шорткат 1:09:23 — Фидбэк от Маруфа | Junior+ подтверждён, силён в Go-базе и горутинах, углубить каналы и архитектуру 1:10:57 — Обратная связь от Василия | МОК-интервью как срез знаний, новые точки роста 1:13:09 — Грейд Василия | Junior Plus, зарплатная вилка Go-разработчика: 150-180 тыс. руб. 1:15:40 — Закрытие эфира 🚀 Кому это будет полезно: • Senior-разработчикам на Go, готовящимся к собеседованиям в FAANG, крупный IT или FinTech. • Тимлидам, которые хотят понять, как проводить глубокий code review. • Всем бэкендерам, кто хочет вывести свои навыки код-ревью и проектирования систем на новый уровень. 📈 После просмотра ты: • Увидишь типичные ошибки даже опытных разработчиков. • Поймешь, как мыслят инженеры уровня Head of Engineering. • Получишь готовую структуру для анализа любого микросервиса. • Узнаешь, какие non-technical skills критичны на высоком уровне. ‼️ Важно: Это не постановка. Кандидат и интервьюер видели код впервые. Максимум реальности. #СобеседованиеGo #GoMiddle #MockInterview #СтрокиGo #Руны #СлайсGo #MapGolang #DeferGo #ИнтерфейсыGo #PointerReceiver #ErrorsIs #SyncOnce #КаналыGo #ContextGolang #SQLJOIN #ИндексыPostgreSQL #OutboxPattern #AtLeastOnce #ExactlyOnce #TransactionalOutbox #JuniorPlus #Шорткат #МокИнтервью

, чтобы оставлять комментарии