1) горутины, потоки И все что около них: — чем отличаются — может ли поток выделить себе память в течение работы? — почему горутины легковесные — можно ли ограничить кол-во потоков? — как думаешь, по каким критериям нужно ставить gomaxprocs? (этот вопрос вытекает из предыдущего) — сколько одновременно может быть запущено горутин? — а что если у меня одно ядро и я запустил 100 горутин? (этот вопрос вытекает из предыдущего) — сталкивался ли с дедлоками? — гошка может определять дедлоки? — какая есть тулза для диагностики дедлоков? (я так понимаю он имел в виду goleak от uber)
2) live-coding — задача на написание своей реализации кэша из задачника — у нас стала нагрузка на чтение и запись 50/50, что делать будем? (написать решение с партициями) — как бы тут сделал инвалидацию кэша? (ttl) — стоит ли кэшировать запросы которых нет в базе и в кэше? (404 ответы) (тут нужно порассуждать просто)
— задача на lru cache, порассуждать, как бы реализовал (эта задача есть в задачнике)
— задача на урлы, пробежаться по ним (есть в задачнике) — пробежаться асинхронно — как отменить выполнение всех горутин? (контекст) — какие бы тут тесты написал? (найти корнер кейсы) — есть ли какая нибудь проблема со стандартным http.Get?
— sql задача пользователь чат сообщение (есть в задачнике) — выбрать все чаты пользователя вася в формате chatid, chatname — что будет если left join сделать? (вопрос вытекает из предыдущего) — какой бы индекс повесил бы на этот запрос? (на васю) — у нас распухла база, что делать будем? нужно определить какая из таблиц первая распухнет и как её шардировать — что такое references? можем без вреда удалить первичный ключ чтобы все ссылающиеся не заругались? (нет)
— задача про сервис аналитики, типо теряем заказы, что делать будем? — здесь либо outbox либо kafka (но он мне сказал что кафку у нас аналитика не читает) — что делать если два outbox воркера захватили одни и те же данные? (как вариант решения select for update) — как здесь сделать observability? (прометей логи трейсинг рассказать про это)