/it_interview_plan

Document created for interviewing backend developers

it_interview_plan

Document created for interviewing backend developers (RUSSIAN LANGUAGE)

Документ для проведения собеседований бекенд разработчиков (НА РУССКОМ ЯЗЫКЕ)

Общее

  • Расскажи в целом о своем опыте
  • Расскажи о достижениях
  • Расскажи о факапах твоих или которые ты видел. Ты их решал? Как?

В целом про веб

  • я нажал кнопку в браузере. Что происходит дальше?
  • На стороне сервера?
  • на стороне клиента?
  • в интернете?
  • сети? Протоколы? В чем разница udp/tcp?
  • Что из себя представляет HTTP?
  • Какие знаешь методы и когда они используются?

Computer science

  • Какие знаешь структуры данных? массивы, стэки, очереди, связанные списки, деревья, хэш таблицы
  • Что такое алгоритмическая сложность?

Дизайн кода

  • rails приложение - как организовывается код?
  • Какие знаешь паттерны?
  • Что такое SOLID? Примеры?
  • Как боролись со сложностью?
  • Query object? service object и тд? Колбэки?
  • Dry stack? Monads?
  • Что такое REST?

Тесты

  • Как относишься к тестам? Пишите ли на текущем месте тесты? Какие тесты пишешь ты? Rspec?

Code

https://www.toptal.com/ruby-on-rails/interview-questions

Настройка приложения

  • Приходилось настраивать сервак - application server, sidekiq, выбирать количество нод и тд?
  • Пользовался newrelic, prometheus, appsignal? Как-то мониторил производительность, собирал собирал ошибки?
  • Что такое GIL? Работал ли с потоками на рубях? Юзал ли мутексы?
  • event machine?

Базы данных SQL

  • СУБД sql - с какими работал?
  • Приходилось писать SQL вне active record?
  • Приходилось работать с другими либами ORM? SQL:
  • left vs inner join?
  • having? Агрегаты?
  • Что такое нормализация? Знаешь нормальные формы?
  • Приходилось писать подзапросы? Зачем?
  • знаешь что такое CTE?
  • Что такое индекс? Преимущества и недостатки индексов, когда следует юзать?
  • Какие знаешь типы индексов?
  • Что такое и как работает многоколоночный индекс?
  • Подводный камень построения индекса на огромную таблицу?

Базы данных SQL highload

  • Вот у тебя есть веб приложение, там развернут rails application, puma, бд например psql. Приложение тормозит и тебя попросили посмотреть в чем дело и предложить варианты. Что бы ты сделал? (Правильного ответа нет)
  • вообще какой был самый большой хайлоад?
  • Как приходилось оптимизировать?
  • Оптимизация запросов? explain?
  • Что такое реплики?
  • Что такое шардинг? Партиции?
  • Что такое блокировки?
  • Какие бывают виды блокировок?
  • Какие знаешь стратегии блокировок?
  • Что такое дедлок?
  • Что такое multiversion concurrency control (MVCC)?
  • Какие бывают уровни изоляции?

Базы данных nosql

  • Nosql? с какими работал?
  • Зачем?
  • Какие юзал кеши? Что хранил там и зачем?
  • Как инвалидировал?
  • Подготавливал/прогревал кэш?

Message brokers

  • Rabbitmq?
  • Kafka?

Devops

  • devops - приходилось ли работать? Что делал?
  • Docker?
  • CI?
  • Линукс в целом?