Initial commit: interview prep repo (resume, legend, stack cases, Kubernetes course)
This commit is contained in:
1
interview/Alfa-Bank.md
Normal file
1
interview/Alfa-Bank.md
Normal file
File diff suppressed because one or more lines are too long
1
interview/Bank VTB.md
Normal file
1
interview/Bank VTB.md
Normal file
@@ -0,0 +1 @@
|
||||
<div class="text-content clearfix with-meta" dir="auto"><strong data-entity-type="MessageEntityBold">Компания</strong>: Банк ВТБ (он же Иннотех, он же T1)<br><strong data-entity-type="MessageEntityBold">Позиция</strong>: Прикладной администратор (L3), а по факту: Инженер по сопровождению ПО<br><strong data-entity-type="MessageEntityBold">Кто проводит</strong>: Руководитель направления, тимлид, HR + главный инженер <br><strong data-entity-type="MessageEntityBold">Атмосфера</strong>:<br>Хорошая<br>Адекватный рук<br>Адекватный главный<br>HR в фоне тоже ок<br><strong data-entity-type="MessageEntityBold">Трудоустройство</strong>: ТК РФ<br><strong data-entity-type="MessageEntityBold">График</strong>: 5/2 (неделя офиса и неделя дома на постоянной основе)<br><strong data-entity-type="MessageEntityBold">Вакансия</strong>: <a href="https://hh.ru/vacancy/133039720?from=share_ios" title="https://hh.ru/vacancy/133039720?from=share_ios" target="_blank" rel="noopener noreferrer" class="text-entity-link word-break-all" dir="auto" data-entity-type="MessageEntityUrl">https://hh.ru/vacancy/133039720?from=share_ios</a><br><strong data-entity-type="MessageEntityBold">HR</strong>: Надя Смельчук / <a href="https://t.me/NVK23" title="https://t.me/NVK23" target="_blank" rel="noopener noreferrer" class="text-entity-link word-break-all" dir="auto" data-entity-type="MessageEntityUrl">https://t.me/NVK23</a><br><strong data-entity-type="MessageEntityBold">Вилка</strong>: ~250к чистыми <br><strong data-entity-type="MessageEntityBold">Длительность</strong>: 20-30 мин. <br><img src="./img-apple-64/2705.png" class="emoji emoji-small" alt="✅" data-path="./img-apple-64/2705.png" draggable="false"><strong data-entity-type="MessageEntityBold">Статус</strong>: Оффер на 250 тысяч чистыми (287.500 грязными), не включая премию (премия: 1 оклад в год в марте) + индексация 5-10% раз в год от ЗП<br><img src="./img-apple-64/2757.png" class="emoji emoji-small" alt="❗️" data-path="./img-apple-64/2757.png" draggable="false"><strong data-entity-type="MessageEntityBold">Советы</strong>:<br>- Идти можно, атмосфера приятная и дружелюбная на собесе, даже хвалили за профессионализм.<br>- Очень тяжелая анкета безопасности (полные копии всех паспортов, вкл военник, включая список стран, в которых был за последние 5 лет).<br><br><strong data-entity-type="MessageEntityBold">Вопросы</strong> (да, даже так бывает, одна компания занимается техно-дрочью и дурью выше <img src="./img-apple-64/261d.png" class="emoji emoji-small" alt="☝️" data-path="./img-apple-64/261d.png" draggable="false">, а другим нужен специалист с закрытием потребностей здесь и сейчас): <br><br>- Только формальные, даже не буду озвучивать.<br>- Спросили только о себе (ну и так поболтали за жизнь и хобби, сказал, что играю на гитаре, занимаюсь сборкой ПК и пишу pet-проект CI/CD в свободное время). <br>- Взяли сразу без технических вопросов.<br><br><strong data-entity-type="MessageEntityBold">Технические вопросы</strong>:<br>- Отсутствуют.<span class="MessageMeta" dir="ltr" data-ignore-on-paste="true"><span class="message-time">edited 16:21</span></span></div>
|
||||
1
interview/Bi.Zone.md
Normal file
1
interview/Bi.Zone.md
Normal file
@@ -0,0 +1 @@
|
||||
<div class="text-content clearfix with-meta" dir="auto"><strong data-entity-type="MessageEntityBold">Компания</strong>: Bi.Zone <br><strong data-entity-type="MessageEntityBold">Позиция</strong>: полу-DevOps/полу-админ Linux и мониторинга в направление SOC <br><strong data-entity-type="MessageEntityBold">Кто проводит</strong>: Тимлид (Дмитрий) и старший инженер Валера <br><strong data-entity-type="MessageEntityBold">Атмосфера</strong>: Хорошая, у тимлида норм характер, технарь, Валера - универсал во всех вопросах <br><strong data-entity-type="MessageEntityBold">Трудоустройство</strong>: ТК РФ<br><strong data-entity-type="MessageEntityBold">График</strong>: 5/2 (1 день офис еженедельно, 4 дня удаленка на постоянке) <br><strong data-entity-type="MessageEntityBold">Вакансия</strong>: <a href="https://hh.ru/vacancy/133264326?from=share_ios" title="https://hh.ru/vacancy/133264326?from=share_ios" target="_blank" rel="noopener noreferrer" class="text-entity-link" dir="auto" data-entity-type="MessageEntityTextUrl">HH</a><br><strong data-entity-type="MessageEntityBold">HR</strong>: <a class="text-entity-link" dir="auto" data-entity-type="MessageEntityMention">@curlykatarin</a><br><strong data-entity-type="MessageEntityBold">Вилка</strong>: от 250к чистыми <br><strong data-entity-type="MessageEntityBold">Длительность</strong>: 1ч 13мин<br><img src="./img-apple-64/2757.png" class="emoji emoji-small" alt="❗️" data-path="./img-apple-64/2757.png" draggable="false"><strong data-entity-type="MessageEntityBold">Советы</strong>:<br>- Мне не хватило знаний по масштабированию проекта на 300к серверов, а также по K8s (учить базу: балансировка трафика, нагрузка, Helm, Configmap и прочее). <br><br><strong data-entity-type="MessageEntityBold">Вопросы с собеседования</strong>: <br><br>Спросят про опыт работы (моя задача была переспросить встречным вопросом, а кого они ищут и далее подстроить свой ответ, чтобы залезть в шкуру того инженера, которого ищут они) <br><br><strong data-entity-type="MessageEntityBold">Вопросы</strong>:<br><br>- Как будешь менять параметры ядра Linux? <br>- Что такое systemd? <br>- Зачем нужна директория /etc/systemd/system - что там лежит и зачем? <br>- Как будешь проверять доступность порта? <br>- Как в облаке и по какому порту будешь делить две сети DNS? <br>- С какими облаками работал?<br>- Как в Ansible role переписать переменную? <br>- С каким CI/CD работал + пример пайпа? <br>- Что такое AT CI/CD, ET CI/CD (как оказалось, это имеет отношение к пайпу Kafka)? <br>- Работал с какими версиями Kafka и что это такое? <br>- Как будешь деплоить мониторинг 300.000 серверов архитектурно (ответил Grafana + Prometheus + Mimir + Minio и далее подробно развернул, что и как будет работать)<br>- У нас есть 300.000 метрик от кастомных агентов (мы их можем только получать), по какому формату и чем будешь их собирать с учетом того, что они JSON (ответил, что парсинг будет через JQ + кастомный сбор через Node Exporter textfile-collector в случае стандартной pull модели и в случае push модели через Pushgateway) <br>- С кубом работал? Какой опыт с Helm и с разворотом кластеров K8S? <br>- Со стеком ELK работал? Помимо filebeat что еще разворачивал? <br>- Ты разворачивал с нуля стек ELK с агентами? <br>- В чем разница между ELK и OpenSearch? <br>- Ты мониторил стандартными службами мониторинга стек ELK? Если да, то как? <br>- С каким алертингом работал и как он был реализован?<span class="MessageMeta" dir="ltr" data-ignore-on-paste="true"><span class="message-time">edited 15:18</span></span></div>
|
||||
1
interview/Dit Moscow.md
Normal file
1
interview/Dit Moscow.md
Normal file
@@ -0,0 +1 @@
|
||||
<div class="text-content clearfix with-meta" dir="auto"><strong data-entity-type="MessageEntityBold">Компания</strong>: ДИТ Москвы (ГКУ Инфогород)<br><strong data-entity-type="MessageEntityBold">Позиция</strong>: Инженер по мониторингу (зонтичное направление) с элементами DevOps (K8s и Ansible) <br><strong data-entity-type="MessageEntityBold">Кто проводит</strong>: Руководитель направления, тимлид, HR + доп. рук<br><strong data-entity-type="MessageEntityBold">Атмосфера</strong>:<br>- Хорошая<br>- Адекватный тимлид Костиков<br>- HR в фоне тоже очень ок<br><strong data-entity-type="MessageEntityBold">Трудоустройство</strong>: ТК РФ<br><strong data-entity-type="MessageEntityBold">График</strong>: 5/2 без инцидентов и задержек (полная удаленка) <br><strong data-entity-type="MessageEntityBold">Вакансия</strong>:<br><a href="https://hh.ru/vacancy/134159868" title="https://hh.ru/vacancy/134159868" target="_blank" rel="noopener noreferrer" class="text-entity-link word-break-all" dir="auto" data-entity-type="MessageEntityUrl">https://hh.ru/vacancy/134159868</a><br><strong data-entity-type="MessageEntityBold">HR</strong>: Карина <a class="text-entity-link" dir="auto" data-entity-type="MessageEntityMention">@KarinaGerasimovaHR</a><br><strong data-entity-type="MessageEntityBold">Вилка</strong>: 250к чистыми (должна быть годовая премия) <br><strong data-entity-type="MessageEntityBold">Длительность</strong>: 45 мин<br><img src="./img-apple-64/2705.png" class="emoji emoji-small" alt="✅" data-path="./img-apple-64/2705.png" draggable="false"><strong data-entity-type="MessageEntityBold">Статус</strong>: предоффер + осталось согласование в виде собеса с главным директором ДИТ-а <br><br><strong data-entity-type="MessageEntityBold">Вопросы</strong> (в основном они рассказывали о себе и чем предстоит заниматься мне):<br><br>Расскажи о себе? <br>Какой опыт с Linux?<br>Что будешь делать если упал сервер? <br>Если сервер на VmWare, как будешь спасать VM? Какую диагностику будешь делать? <br>С Zabbix работал? Какой опыт? <br>Какой опыт с K8s? <br>Какой у тебя стек? <br>Что такое Monq? Какой опыт работы? <br><br><strong data-entity-type="MessageEntityBold">С чем предстоит тебе работать</strong>:<br>- Зонтичный мониторинг на основе Monq<br>- Писать скрипты на основе Monq для зонтичного мониторинга <br>- Иногда писать на C# <br>- Плотная работа с Zabbix и агентами <br>- В стеке у нас GitLab <br>- Ansible для автоматизации мониторинга <br>- Мы поддерживаем инфру Москвы<span class="MessageMeta" dir="ltr" data-ignore-on-paste="true"><span class="message-time">16:29</span></span></div>
|
||||
4
interview/VK Cloud.md
Normal file
4
interview/VK Cloud.md
Normal file
File diff suppressed because one or more lines are too long
36
interview/checklist.md
Normal file
36
interview/checklist.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Чек-лист подготовки
|
||||
|
||||
Статус проработки по категориям — актуализировать по мере выполнения кейсов. Полная карта — в [../README.md](../README.md). Порядок проработки теперь ведётся по частотности тем в реальных собеседованиях — подробный пошаговый план с обоснованием каждого шага в [study-plan.md](study-plan.md), здесь — только статус.
|
||||
|
||||
## Порядок проработки (см. обоснование в [study-plan.md](study-plan.md))
|
||||
|
||||
1. **[ ] Linux/Bash** ([stack/linux-bash/](../stack/linux-bash/)) — спрашивают почти на каждом собесе, фундамент для Docker/K8s.
|
||||
2. **[ ] Сети** ([stack/networking/](../stack/networking/)) — весь техсобес VK Cloud построен на этом.
|
||||
3. **[ ] Docker** ([stack/docker/](../stack/docker/)) — внутренности (containerd, namespaces/cgroups), фундамент для K8s.
|
||||
4. **[ ] Kubernetes** ([stack/kubernetes/](../stack/kubernetes/)) — главный разрыв, спрашивали в 4 из 6 собесов.
|
||||
5. **[x] Мониторинг** ([stack/monitoring/](../stack/monitoring/)) — база готова; дополнено вопросами про масштаб (300k серверов, jq/textfile collector) — перепройти новые вопросы.
|
||||
6. **[ ] PostgreSQL/БД** ([stack/databases/](../stack/databases/)) — репликация sync/async, join'ы, split brain.
|
||||
7. **[ ] CI/CD** ([stack/ci-cd/](../stack/ci-cd/)) — «нарисовать пайп» спрашивали в 3 из 6 собесов.
|
||||
8. **[ ] ELK** ([stack/elk/](../stack/elk/)) — sizing логов vs метрик.
|
||||
9. **[ ] Kafka** ([stack/kafka/](../stack/kafka/)) — реже, но встречается.
|
||||
10. **[ ] Vault** ([stack/vault/](../stack/vault/)) — реже, но встречается.
|
||||
11. **[x] Ansible** ([stack/ansible/](../stack/ansible/)) — база готова; дополнено вопросами про переменные и разбор CLI-команды из VK Cloud/Bi.Zone — перепройти новые вопросы.
|
||||
12. **[x] Nginx** ([stack/nginx/](../stack/nginx/)) — готово, добавлена секция «Нагрузка и цифры».
|
||||
13. **[ ] Тестирование** ([stack/testing/](../stack/testing/)) — TODO, более старый опыт (ОКБ СУХОЙ), не всплывал в реальных собесах, низкий приоритет.
|
||||
14. **[ ] Языки (Python/SQL/C-C++)** ([stack/languages/](../stack/languages/)) — TODO, вспомогательный блок, низкий приоритет.
|
||||
15. **[ ] Прогон по реальным собесам** — шаг 9 в [study-plan.md](study-plan.md), финальная проверка после закрытия всех категорий выше.
|
||||
|
||||
## Отдельно
|
||||
|
||||
- **[ ] Цифры нагрузки** ([../legend/CAPACITY.md](../legend/CAPACITY.md)) — прогнать замеры на своих стендах (nginx, Prometheus, pgbench, Kafka), при желании — заполнить реальные цифры со своего места работы.
|
||||
- **[ ] Общие вопросы** ([common-questions.md](common-questions.md)) — дозаполнить персональные ответы (причина смены работы, слабые стороны, пример ошибки) перед реальными собеседованиями.
|
||||
- **[ ] Легенда** ([../legend/LEGEND.md](../legend/LEGEND.md)) — перечитать целиком после закрытия всех TODO-категорий, проверить непротиворечивость с финальными кейсами, включая новый блок «Домашняя лаборатория».
|
||||
- **[ ] Резюме** ([../RESUME.md](../RESUME.md)) — финальная шлифовка после того, как легенда и кейсы устоялись.
|
||||
|
||||
## Как считать категорию «готовой»
|
||||
|
||||
Категория готова, когда:
|
||||
1. Стенд из `CASE.md` реально поднят и пройден руками (не только прочитан).
|
||||
2. `QUESTIONS.md` можно закрыть, не подглядывая — ответы звучат как свои слова, а не пересказ документации.
|
||||
3. Нет противоречий с [../legend/LEGEND.md](../legend/LEGEND.md).
|
||||
4. Для pet-категорий (K8s, PostgreSQL, сети, Kafka, Vault) — честно проговаривается граница «это pet-проект, не рабочий опыт» без запинки.
|
||||
83
interview/common-questions.md
Normal file
83
interview/common-questions.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# Базовые вопросы собеседования (не по стеку)
|
||||
|
||||
Опираются на [../RESUME.md](../RESUME.md) и [../legend/LEGEND.md](../legend/LEGEND.md). Ответы — черновые, от первого лица; дорабатывать своими словами перед реальным собеседованием, чтобы не звучало заученно (см. [../AI_GUIDELINES.md](../AI_GUIDELINES.md)).
|
||||
|
||||
### Расскажите о себе
|
||||
|
||||
Начинал с тестирования встроенного ПО в ОКБ СУХОЙ — писал тестовые сценарии, автоматизировал проверки на Selenium, работал на стендах на CentOS. Через полтора года перешёл в АО ТНИИС на позицию инженера по сопровождению — там уже занимался мониторингом (Grafana, Prometheus, Mimir), автоматизацией через Ansible и поддержкой инфраструктуры на Astra Linux. Сопровождаю внутренний контур предприятия — Java-сервисы за балансировкой Nginx на парке VM; предприятие режимное, поэтому детали продукта не раскрываю, но со стороны мониторинга, автоматизации и инцидентов могу рассказать всё в деталях (подробный нарратив — [../legend/STORY.md](../legend/STORY.md)). Сейчас ищу позицию инженера сопровождения или DevOps-инженера, где можно развивать именно эту сторону — автоматизацию и эксплуатацию.
|
||||
|
||||
### Почему решили сменить место работы?
|
||||
|
||||
Иду не «от», а «к»: текущее предприятие режимное, и это по своей природе закрывает ряд направлений, которые интересно развивать дальше — нет облаков, нет Kubernetes в проде, нет удалённого/гибридного формата (доступ к контуру только из офиса). Хочется расти в сторону современной эксплуатации и DevOps — облачная и контейнерная оркестрация, более гибкий формат работы — а это ограничено спецификой текущего места, а не желанием или возможностями команды. Полный разбор — [../legend/STORY.md](../legend/STORY.md) → «Причина ухода».
|
||||
|
||||
*Как не надо:* ругать текущего/бывшего работодателя, жаловаться на коллег или начальника — интервьюер запомнит не причину, а то, что вы негативно отзываетесь о людях за глаза.
|
||||
|
||||
### Почему вам интересна именно эта вакансия?
|
||||
|
||||
[Заполнить под конкретную вакансию перед откликом — что конкретно в описании вакансии пересекается с реальным опытом: мониторинг, Ansible, Docker, Nginx.]
|
||||
|
||||
### Расскажите о сложной задаче, которую вы решали
|
||||
|
||||
Пример на основе легенды (АО ТНИИС): настройка Ansible-ролей с интеграцией тестирования в CI через Molecule и TeamCity — сложность была в том, чтобы роли были одновременно и рабочими, и покрытыми тестами, не ломающими деплой. Разбирался с идемпотентностью ролей и с тем, чтобы тесты в CI реально ловили проблемы до продакшена, а не просто формально проходили. (Проработать детальнее после выполнения кейса [../stack/ansible/CASE.md](../stack/ansible/CASE.md) — рассказывать нужно про то, что реально прогонялось руками.)
|
||||
|
||||
*Как не надо:* выбирать пример, где сложность была не в самой задаче, а в конфликте с человеком, или отвечать абстрактно («было много сложных задач») без конкретики: что именно было сложно, какие варианты рассматривались, почему выбран именно этот.
|
||||
|
||||
### В чём ваши сильные стороны применительно к этой роли?
|
||||
|
||||
Опыт на стыке тестирования и эксплуатации — понимаю, как проверить, что решение реально работает, а не просто «задеплоено». Разбираюсь в мониторинге не только с точки зрения «настроить дашборд», но и с точки зрения «что эта метрика значит и когда она сигнализирует о проблеме».
|
||||
|
||||
### В чём слабые стороны / что развиваете сейчас?
|
||||
|
||||
[Заполнить честно — например, ELK/CI-CD проработаны пока меньше, чем мониторинг и Ansible, сейчас в процессе закрытия этого пробела (см. чек-лист [checklist.md](checklist.md)).]
|
||||
|
||||
*Как не надо:* выдавать замаскированное достоинство за слабость («слишком перфекционист») — это штамп, который интервьюеры слышат постоянно и не воспринимают всерьёз. Лучше называть реальный, но не критичный для роли пробел и прямо говорить, что с ним делаете.
|
||||
|
||||
### Как вы расставляете приоритеты при нескольких инцидентах одновременно?
|
||||
|
||||
Смотрю на импакт: что сейчас реально влияет на пользователей/сервисы, а не на то, что «громче» по ощущениям. Мониторинг (Grafana/Prometheus) — первый источник, чтобы понять масштаб проблемы, логи (ELK) — чтобы найти причину. Сначала стабилизация (например, откат/рестарт), потом уже разбор первопричины.
|
||||
|
||||
### Готовы ли к удалённой работе, гибриду, командировкам?
|
||||
|
||||
Готов к удалённой работе и гибриду (см. [../RESUME.md](../RESUME.md)), к командировкам не готов — это указано в резюме и остаётся так.
|
||||
|
||||
### Расскажите о ситуации, когда вы допустили ошибку
|
||||
|
||||
[Заполнить конкретным честным примером, связанным с одним из проработанных кейсов — например, ошибка в конфиге, которую поймал Molecule/тест до продакшена, и что из этого вынес.]
|
||||
|
||||
*Как не надо:* отрицать, что ошибки вообще были, или перекладывать вину на других — это читается как неспособность к рефлексии. Ценится не факт ошибки, а то, что из неё было сделано (какой вывод, что изменилось в процессе после).
|
||||
|
||||
### С какими облаками работал? Есть опыт с OpenStack?
|
||||
|
||||
Прямого рабочего опыта администрирования облачных платформ (AWS/GCP/Yandex Cloud/OpenStack) у меня нет — рабочий опыт (АО ТНИИС, ОКБ СУХОЙ) строился на собственной инфраструктуре компаний. При этом смежные концепции знакомы через pet-практику: домашний кластер Kubernetes ([../stack/kubernetes/CASE.md](../stack/kubernetes/CASE.md)) даёт понимание оркестрации и абстракций, на которых строятся облачные платформы (в том числе managed Kubernetes-сервисы в облаках). Если конкретно про OpenStack и Ceph — это отдельная область, с которой предметно не работал, и на собеседовании честно обозначил бы это, а не пытался бы изобразить опыт, которого нет.
|
||||
|
||||
### Есть ли у вас вопросы к нам?
|
||||
|
||||
[Подготовить 2-3 вопроса под конкретную вакансию: про стек, про процесс on-call/дежурств, про то, как устроен CI/CD в компании.]
|
||||
|
||||
## Вопросы про отдел и процессы
|
||||
|
||||
Опираются на [../legend/STORY.md](../legend/STORY.md) и [../legend/DEPT_STACK.md](../legend/DEPT_STACK.md) — черновые ответы, доработать своими словами, состав команды и бытовые детали подтвердить/поправить перед реальным собеседованием.
|
||||
|
||||
### Кто ставил задачи? Какой был тасктрекер?
|
||||
|
||||
Задачи ставил начальник отдела на дейлике, часть — приходила от смежных отделов через заявки. Тасктрекер — Jira, спринты в Agile-процессе отдела.
|
||||
|
||||
### Сколько человек в команде и с кем вы работали?
|
||||
|
||||
Небольшой отдел сопровождения и мониторинга — начальник отдела и порядка нескольких инженеров сопровождения/мониторинга плюс Java-разработчики со стороны сопровождаемых сервисов. Плотно взаимодействовал с группой Linux-администраторов (обслуживают парк VM) и с отделом разработки по инцидентам. Подробнее — [../legend/STORY.md](../legend/STORY.md) → «Состав отдела».
|
||||
|
||||
### Где живёт ваша инфраструктура? Кто её обслуживает?
|
||||
|
||||
On-premise: парк VM под Astra Linux, без внешних облаков — режимный контур предприятия. Обслуживает группа Linux-администраторов, я — со стороны мониторинга и автоматизации конфигурирования (Ansible).
|
||||
|
||||
### Как проходило внедрение изменений/релизов?
|
||||
|
||||
Конфиг или роль пишется и тестируется (Ansible + Molecule), пушится в Gitea, задача заводится в Jira с описанием, дальше раскатка через TeamCity — часто совместно с администраторами, если изменение затрагивает их зону ответственности.
|
||||
|
||||
### Куда вы смотрите в Grafana? На какие дашборды?
|
||||
|
||||
Node Exporter (загрузка железа по VM), Nginx (статус балансировщика), Blackbox Exporter (сроки TLS-сертификатов), дашборды под конкретные сопровождаемые сервисы — рестарты, ошибки, задержка ответа.
|
||||
|
||||
### В каком формате выгружали дашборды? Как было устроено версионирование?
|
||||
|
||||
JSON, версионировались в Gitea вместе с остальными конфигами отдела, раскатка — TeamCity. Подробнее — [../legend/STORY.md](../legend/STORY.md) → «Версионирование дашбордов Grafana».
|
||||
64
interview/real-interviews.md
Normal file
64
interview/real-interviews.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# Разбор реальных собеседований
|
||||
|
||||
Шесть собеседований на позиции DevOps-инженер / инженер сопровождения / SRE, вилка везде ~250к+ чистыми. Разборы — сырые заметки в этой же папке: [Реалист банк.md](Реалист%20банк.md), [Bi.Zone.md](Bi.Zone.md), [Alfa-Bank.md](Alfa-Bank.md), [Bank%20VTB.md](Bank%20VTB.md), [Dit%20Moscow.md](Dit%20Moscow.md), [VK%20Cloud.md](VK%20Cloud.md). Этот файл — их анализ: что спрашивают чаще всего, какие темы репозиторий не покрывал, и что из этого значит для плана подготовки ([study-plan.md](study-plan.md)).
|
||||
|
||||
## Матрица тем × компании
|
||||
|
||||
| Тема | Реалист | Bi.Zone | Альфа | ВТБ | ДИТ Москвы | VK Cloud | Итого |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| Kubernetes | ✅ | ✅ | ✅ | — | — | ✅ | 4 |
|
||||
| Linux-внутренности (df/du, inode, cgroups, sysctl...) | — | ✅ | — | — | — | ✅ | 2 |
|
||||
| Сети (OSI, TCP/DNS/TLS, vlan/vxlan) | — | — | — | — | — | ✅ | 1 (но целиком собес) |
|
||||
| Docker внутренности | ✅ | — | — | — | — | ✅ | 2 |
|
||||
| Мониторинг (Prometheus/Grafana/Mimir, масштаб) | ✅ | ✅ | — | — | ✅ (Zabbix/Monq) | — | 3 |
|
||||
| ELK / логи vs метрики | ✅ | ✅ | — | — | — | — | 2 |
|
||||
| PostgreSQL/БД | ✅ | — | ✅ | — | — | ✅ | 3 |
|
||||
| CI/CD (нарисовать пайп) | ✅ | ✅ | ✅ (частично) | — | ✅ (GitLab в стеке) | — | 3 |
|
||||
| Ansible | — | ✅ | ✅ | — | ✅ (в стеке) | ✅ | 4 |
|
||||
| Kafka | — | ✅ | ✅ (упомянут в требованиях) | — | — | — | 2 |
|
||||
| Vault | — | — | ✅ | — | — | — | 1 |
|
||||
| Собеса без техвопросов вообще | — | — | — | ✅ | — | — | 1 |
|
||||
|
||||
**Вывод:** Kubernetes и Ansible — самые частые темы (4 из 6). Мониторинг, PostgreSQL, CI/CD — по 3. Сети и Linux-внутренности встречаются реже по числу компаний, но на VK Cloud составляют почти весь технический собес — то есть если такая тема всплывает, глубина спроса высокая. ВТБ показывает: не везде вообще будут технические вопросы — иногда решает просто адекватное человеческое общение и упоминание pet-проекта.
|
||||
|
||||
## Разрывы с текущим покрытием репозитория (на момент этого разбора)
|
||||
|
||||
- **Kubernetes** — не было ни в резюме, ни в легенде, ни в стеке, при этом 4 из 6 компаний спрашивали (включая «нарисовать 2 ЦОД под K8s», ConfigMap vs Secret, Helm, PostgreSQL на 2 нодах K8s). Закрыто: [../stack/kubernetes/](../stack/kubernetes/).
|
||||
- **PostgreSQL/БД** — не было отдельной категории (SQL был вписан как вспомогательный язык, без кейса по самой СУБД). Закрыто: [../stack/databases/](../stack/databases/).
|
||||
- **Сетевая база** — не было вообще ни как категория, ни в легенде. Закрыто: [../stack/networking/](../stack/networking/).
|
||||
- **Kafka, Vault** — упоминались только как «желательно» в требованиях вакансий, не было категорий. Закрыто: [../stack/kafka/](../stack/kafka/), [../stack/vault/](../stack/vault/).
|
||||
- **Linux/Docker внутренности** — категории существовали как TODO-заготовки без вопросов такого уровня (df vs du с подвохом дескриптора, cgroups/namespaces, containerd, entrypoint vs cmd). Доработаны.
|
||||
- **Вопросы про масштаб/ёмкость** («сколько Гб логов при 15 Гб метрик», «мониторинг 300 000 серверов», «с каким трафиком сталкивался») — не было справочника цифр вообще. Закрыто: [../legend/CAPACITY.md](../legend/CAPACITY.md).
|
||||
|
||||
## Паттерны вопросов, которые стоит знать заранее
|
||||
|
||||
### «Нарисуй архитектуру»
|
||||
|
||||
Реалист: два ЦОД под K8s с балансировщиком, на каких виртуалках что работает, etcd/consul на тех же виртуалках или отдельно. Bi.Zone: как задеплоить мониторинг на 300 000 серверов. Реалист: нарисовать CI/CD пайп от `git push` до продакшена, что в CI и что в CD. Это не вопрос «знаешь ли ты факт», а вопрос «умеешь ли ты рассуждать вслух про архитектуру» — важно проговаривать компоненты и их связи, а не пытаться вспомнить единственно верную схему. Тренировка: в [study-plan.md](study-plan.md) шаг «прогон» включает устное проговаривание архитектур из [../legend/CAPACITY.md](../legend/CAPACITY.md) и кейсов.
|
||||
|
||||
### Живая работа в терминале
|
||||
|
||||
Реалист и VK Cloud спрашивали не «расскажи», а «покажи»: `docker ps`, разница `-a`, `docker logs`, вывести поды и логи в K8s, посмотреть диск/ОЗУ/процессор в терминале, найти pid и порт процесса. Это прямое следствие того, что кейсы репозитория должны быть реально прогнаны руками — если стенд не поднят и команды не набраны вживую, такой вопрос на реальном собесе не пройти.
|
||||
|
||||
### Вопросы на масштаб и цифры
|
||||
|
||||
- Реалист: «сколько Гб логов будет в ELK, если в Prometheus уже 15 Гб метрик» — вопрос не имеет единственного числа-ответа, интервьюер проверяет понимание, что логи объёмнее метрик на порядок и почему (текст vs агрегированные ряды), плюс что в таком случае разумнее — логи или метрики. Разобрано в [../legend/CAPACITY.md](../legend/CAPACITY.md).
|
||||
- Bi.Zone: «как задеплоишь мониторинг на 300 000 серверов архитектурно» — ответ, который был засчитан: Grafana + Prometheus + Mimir + MinIO (объектное хранилище под блоки Mimir) с горизонтальным шардированием. Зафиксировано в [../stack/monitoring/QUESTIONS.md](../stack/monitoring/QUESTIONS.md) и [../legend/CAPACITY.md](../legend/CAPACITY.md).
|
||||
- Bi.Zone: сбор 300 000 JSON-метрик от кастомных агентов — предложенный на собесе ответ: `jq` для парсинга + `node_exporter` textfile collector (pull) либо Pushgateway (push). Тот же паттерн стоит прогнать на своей лабе в меньшем масштабе, чтобы говорить не только теоретически.
|
||||
|
||||
### Поведенческие приёмы, которые сработали
|
||||
|
||||
- **Bi.Zone** — на вопрос «расскажите про опыт» встречный вопрос «а кого вы, собственно, ищете?» и подстройка ответа под профиль — не подмена фактов, а расстановка акцентов на то, что реально релевантно роли.
|
||||
- **ВТБ** — упоминание pet-проекта («пишу pet-проект CI/CD в свободное время») в неформальной части разговора сыграло в плюс и, по всей видимости, было воспринято как признак интереса к профессии сверх рабочих задач. Это прямо подтверждает решение вести K8s/Kafka/Vault/PostgreSQL как честные pet-лабы, а не выдавать их за рабочий опыт — сама рамка «pet-проект» работает в интервью, а не мешает.
|
||||
|
||||
## Сверка покрытия
|
||||
|
||||
Практически все технические вопросы из шести разборов замаплены на конкретные `QUESTIONS.md`: Kubernetes → [../stack/kubernetes/QUESTIONS.md](../stack/kubernetes/QUESTIONS.md), PostgreSQL/БД → [../stack/databases/QUESTIONS.md](../stack/databases/QUESTIONS.md), сети → [../stack/networking/QUESTIONS.md](../stack/networking/QUESTIONS.md), Docker → [../stack/docker/QUESTIONS.md](../stack/docker/QUESTIONS.md), Linux/Bash → [../stack/linux-bash/QUESTIONS.md](../stack/linux-bash/QUESTIONS.md), CI/CD → [../stack/ci-cd/QUESTIONS.md](../stack/ci-cd/QUESTIONS.md), ELK → [../stack/elk/QUESTIONS.md](../stack/elk/QUESTIONS.md), Kafka → [../stack/kafka/QUESTIONS.md](../stack/kafka/QUESTIONS.md), Vault → [../stack/vault/QUESTIONS.md](../stack/vault/QUESTIONS.md), Ansible → [../stack/ansible/QUESTIONS.md](../stack/ansible/QUESTIONS.md), мониторинг/масштаб → [../stack/monitoring/QUESTIONS.md](../stack/monitoring/QUESTIONS.md) + [../legend/CAPACITY.md](../legend/CAPACITY.md).
|
||||
|
||||
**Сознательно не углублено:** вопросы VK Cloud про OpenStack и Ceph («если работал с OpenStack») — у кандидата нет облачного опыта вообще (см. честный ответ в [common-questions.md](common-questions.md)), поэтому вместо того чтобы выдумывать глубину, которой нет, зафиксирован прямой честный ответ «не работал, могу рассуждать только на уровне общих принципов» — это соответствует правилу честности кейсов в [../AI_GUIDELINES.md](../AI_GUIDELINES.md). По той же причине не проработан отдельно один нечёткий вопрос Bi.Zone («как в облаке и по какому порту будешь делить две сети DNS») — формулировка в исходной заметке неоднозначна, и правильная тактика на реальном собеседовании тут — переспросить, что именно имеется в виду, а не гадать.
|
||||
|
||||
## Как использовать эти файлы дальше
|
||||
|
||||
1. Перед конкретным собеседованием — перечитать разбор компании похожего профиля (банк → Альфа/Реалист/ВТБ, облако/инфраструктура → VK Cloud/Bi.Zone, госсектор → ДИТ) и держать в голове её характерные вопросы.
|
||||
2. Не использовать оценочные комментарии из чужих заметок («тухлятина токсичная», имена интервьюеров) как материал для легенды или ответов — это личные впечатления автора заметок о конкретных людях/компаниях, не относящиеся к подготовке контента.
|
||||
3. Полный список вопросов из всех шести собесов замаплен на конкретные ответы в `QUESTIONS.md` соответствующих категорий — см. таблицу покрытия в [study-plan.md](study-plan.md).
|
||||
68
interview/study-plan.md
Normal file
68
interview/study-plan.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# Пошаговый учебный план
|
||||
|
||||
Порядок построен на частотности тем в реальных собеседованиях ([real-interviews.md](real-interviews.md)), а не на порядке категорий в резюме. Каждый шаг — фиксированный цикл: **теория → лаба руками → замер цифр (где применимо) → прогон вопросов → к каким собесам готовит**. Не переходить к следующему шагу, пока текущий не закрыт по критериям готовности из [checklist.md](checklist.md).
|
||||
|
||||
## Шаг 1. Linux — база и внутренности
|
||||
|
||||
- Теория + лаба: [../stack/linux-bash/CASE.md](../stack/linux-bash/CASE.md) — свои bash-скрипты, systemd timer, диагностический сценарий df/du.
|
||||
- Прогон: [../stack/linux-bash/QUESTIONS.md](../stack/linux-bash/QUESTIONS.md).
|
||||
- Готовит к: VK Cloud (почти весь техсобес), Bi.Zone, ДИТ Москвы (диагностика упавшего сервера).
|
||||
- Почему первым: спрашивают практически везде, и это фундамент, на который опираются Docker/K8s/CI-CD вопросы (namespaces/cgroups и т.д.).
|
||||
|
||||
## Шаг 2. Сети
|
||||
|
||||
- Теория + практикум команд: [../stack/networking/CASE.md](../stack/networking/CASE.md) — `dig`, `traceroute`, `curl -v`, `ss`.
|
||||
- Прогон: [../stack/networking/QUESTIONS.md](../stack/networking/QUESTIONS.md).
|
||||
- Готовит к: VK Cloud (сетевая база — весь технический собес).
|
||||
- Почему вторым: не самая частая тема по числу компаний, но если всплывает — спрашивают глубоко; и она нужна как фундамент для понимания трафика в K8s (шаг 4) и балансировки.
|
||||
|
||||
## Шаг 3. Docker изнутри
|
||||
|
||||
- Теория + лаба: [../stack/docker/CASE.md](../stack/docker/CASE.md) — multi-stage build, сети, OOM kill, диагностика.
|
||||
- Прогон: [../stack/docker/QUESTIONS.md](../stack/docker/QUESTIONS.md).
|
||||
- Готовит к: VK Cloud, Реалист банк, Альфа-Банк (базовые команды).
|
||||
- Почему здесь: опирается на понимание namespaces/cgroups из шага 1, и сам является фундаментом для Kubernetes (шаг 4).
|
||||
|
||||
## Шаг 4. Kubernetes — главный разрыв
|
||||
|
||||
- Если K8s не знаком с нуля: пошаговый учебный курс [../stack/kubernetes/LEARNING.md](../stack/kubernetes/LEARNING.md) — 14 модулей от установки инструментов до собственного Helm-чарта, каждый модуль с объяснением «зачем» и практикой руками.
|
||||
- Теория + лаба (конспект для повторения): [../stack/kubernetes/CASE.md](../stack/kubernetes/CASE.md) — pet-кластер на `kind`, Helm-деплой mониторинга, диагностика.
|
||||
- Прогон: [../stack/kubernetes/QUESTIONS.md](../stack/kubernetes/QUESTIONS.md).
|
||||
- Готовит к: Реалист банк, Bi.Zone, Альфа-Банк, VK Cloud — 4 из 6 собесов.
|
||||
- Почему здесь: самый частый пробел в исходном покрытии репозитория; опирается на понимание Docker (шаг 3) и сетей (шаг 2).
|
||||
|
||||
## Шаг 5. Мониторинг — углубление и архитектура масштаба
|
||||
|
||||
- Кейс уже готов: [../stack/monitoring/CASE.md](../stack/monitoring/CASE.md) (переслушать/повторить руками, если давно не прогонялся).
|
||||
- Новое: раздел «Нагрузка и цифры» в CASE.md + вопросы про масштаб 300 000 серверов, jq/textfile collector/Pushgateway, HTTP 400/500 в [../stack/monitoring/QUESTIONS.md](../stack/monitoring/QUESTIONS.md).
|
||||
- Справочник цифр: [../legend/CAPACITY.md](../legend/CAPACITY.md) — заполнить лабные замеры и (по желанию) реальные цифры с работы.
|
||||
- Готовит к: Реалист банк, Bi.Zone, ДИТ Москвы.
|
||||
|
||||
## Шаг 6. PostgreSQL
|
||||
|
||||
- Теория + лаба: [../stack/databases/CASE.md](../stack/databases/CASE.md) — master/replica, sync/async, `pgbench`.
|
||||
- Прогон: [../stack/databases/QUESTIONS.md](../stack/databases/QUESTIONS.md).
|
||||
- Готовит к: Реалист банк, Альфа-Банк, VK Cloud.
|
||||
|
||||
## Шаг 7. CI/CD + ELK
|
||||
|
||||
- CI/CD: [../stack/ci-cd/CASE.md](../stack/ci-cd/CASE.md) — Gitea + пайплайн, прогоняющий `molecule test` из шага Ansible.
|
||||
- ELK: [../stack/elk/CASE.md](../stack/elk/CASE.md) — сбор логов уже готового Nginx-кейса.
|
||||
- Прогон: [../stack/ci-cd/QUESTIONS.md](../stack/ci-cd/QUESTIONS.md), [../stack/elk/QUESTIONS.md](../stack/elk/QUESTIONS.md).
|
||||
- Готовит к: Реалист банк («нарисовать CI/CD пайп»), Bi.Zone (ELK, sizing логов), Альфа-Банк.
|
||||
|
||||
## Шаг 8. Kafka + Vault
|
||||
|
||||
- Kafka: [../stack/kafka/CASE.md](../stack/kafka/CASE.md) — однонодовый брокер, топики, consumer group, замер throughput.
|
||||
- Vault: [../stack/vault/CASE.md](../stack/vault/CASE.md) — dev-режим, KV, политики доступа.
|
||||
- Прогон: [../stack/kafka/QUESTIONS.md](../stack/kafka/QUESTIONS.md), [../stack/vault/QUESTIONS.md](../stack/vault/QUESTIONS.md).
|
||||
- Готовит к: Bi.Zone (Kafka), Альфа-Банк (Kafka в требованиях, Vault).
|
||||
- Почему последними: самые редкие темы по числу компаний (1-2 из 6), и обе — новые, не входящие в рабочий стек pet-технологии.
|
||||
|
||||
## Шаг 9. Прогон: mock-собес по каждому реальному разбору
|
||||
|
||||
Перечитать каждый файл в [../interview/](.) ([Реалист банк.md](Реалист%20банк.md), [Bi.Zone.md](Bi.Zone.md), [Alfa-Bank.md](Alfa-Bank.md), [Bank VTB.md](Bank%20VTB.md), [Dit Moscow.md](Dit%20Moscow.md), [VK Cloud.md](VK%20Cloud.md)) и вслух, без подглядывания в QUESTIONS.md, ответить на все вопросы оттуда — если запинаешься, вернуться к соответствующему QUESTIONS.md, но не переписывать ответ, а сформулировать его заново своими словами. Дополнительно — вслух проговорить обе архитектурные схемы («2 ЦОД под K8s», «мониторинг на 300 000 серверов») с листом бумаги/доской, не подсматривая в текст.
|
||||
|
||||
## Общие вопросы
|
||||
|
||||
[common-questions.md](common-questions.md) — самопрезентация и поведенческие вопросы — прорабатываются параллельно с любым шагом, не завязаны на порядок технического стека.
|
||||
1
interview/Реалист банк.md
Normal file
1
interview/Реалист банк.md
Normal file
@@ -0,0 +1 @@
|
||||
Компания</strong>: Реалист банк <br><strong data-entity-type="MessageEntityBold">Позиция</strong>: DevOps-инженер <br><strong data-entity-type="MessageEntityBold">Кто проводит</strong>: Тимлид платформы (Александр, работал в ОТП банке, на позиции год +-) + директор направления (Иван Ратников, 34 года) <br><strong data-entity-type="MessageEntityBold">Атмосфера</strong>: Очень хорошая, даже смеялись, тимлид добрый и не доёбчивый, директор тоже огонь и легкий на подхват<br><strong data-entity-type="MessageEntityBold">Трудоустройство</strong>: ТК РФ напрямую в штат банка (офис м.Таганка)<br><strong data-entity-type="MessageEntityBold">График</strong>: полная удаленка 5/2 без дежурств и прочей дичи <br><strong data-entity-type="MessageEntityBold">Вилка</strong>: от 250к чистыми <br><img src="./img-apple-64/2705.png" class="emoji emoji-small" alt="✅" data-path="./img-apple-64/2705.png" draggable="false"><strong data-entity-type="MessageEntityBold">Оффер</strong>: 261к чистыми (300к ГРОСС, но договорились, что буду развиваться и они повысят), премий нет, но во втором полугодии 2026 должны быть, если верить Ивану Ратникову, то переговоры проведены на 80%, ДМС оплачивают 50/50<br><img src="./img-apple-64/2757.png" class="emoji emoji-small" alt="❗️" data-path="./img-apple-64/2757.png" draggable="false"><strong data-entity-type="MessageEntityBold">Советы</strong>: Не советую устраиваться, так как сказали одно, а по факту было другое (сказали будет вводная часть и бадди - ничего не было) и мой тимлид начал увольняться в день моего первого выхода (он же мой бадди), но так и не уволился - атмосфера: дичь полная.<br><br><strong data-entity-type="MessageEntityBold">Вопросы с собеседования</strong>:<br><br>- Нарисовать два ЦОД под K8s с балансировщиком и рассказать на каких виртуалках всё это будет работать <br>- etcd или consul будут на одной виртуалке с K8s? Из чего состоит K8s: daemonset и тд<br>- Нарисовать CI/CD и как проливается код через GitLab CI - что будет в процессе CI и что в CD, рассказать с этапа, когда код уже запушен в GitHub, а образы в Nexus<br>- У тебя есть ELK и мониторинг Prometheus - сколько Гб данных логов будет в ELK, если в Prometheus уже 15Гб лежит под ногами. В данном случае, как лучше реализовать мониторинг: через логи или метрики? <br>- Расскажи про синхронный и асинхронный режим работы PostgreSQL - в чем разница? <br>- Как будешь разворачивать PostgreSQL на две ноды K8s? <br>- В терминале пробить данные по диску, ОЗУ, процессору, показать папку, перейти в директорию <br>- В терминале Linux показать docker ps, в чем разница между -a, docker logs, показать images, показать контейнеры - в чем разница между ними? <br>- Выведи логи K8s, выведи поды и тд <br>- К тебе пришел разработчик с HTTP Requests 400/500 - как будешь мониторить: каким способом и почему - логи или метрики и как будешь их собирать? <br><br>Александр: я пошел попить чайку и дальше на встречу <img src="./img-apple-64/1f602.png" class="emoji emoji-small" alt="😂" data-path="./img-apple-64/1f602.png" draggable="false"><span class="MessageMeta" dir="ltr" data-ignore-on-paste="true"><span class="message-time">edited 14:13</span></span></div>
|
||||
Reference in New Issue
Block a user