Как всё устроено
Этапы
Цикл собеседований состоит из HR-скрининга, технических и финальных секций. Процесс адаптируется под ваш опыт, технологический стек и рассматриваемую должность.
Обратная связь
Стараемся приходить с промежуточным и финальным фидбэком как можно быстрее — в течение 2-3 дней после встречи.
Секция с кодом
Рекомендуем повторить следующие темы:
- работа со строками, преобразование строк (`substr`, `instr`);
- работа с числами, вычисления (`ceil`, `round`, `trunc`, `floor`, `mod` и пр.);
- работа с группировками (`group by`, `having`, `listagg`, `rollup`);
- работа с датами (форматирование дат, вычитание дат и временных отрезков, определение дня недели и т. п.);
- аналитические оконные функции (`lag`, `lead`, `row_number`, `dense_rank`);
- работа с иерархическими и рекурсивными запросами (соответствующие функции: `connect_by_isleaf`, `sys_connect_by_path`);
- виды `JOIN`, объединения запросов (`UNION`, `INTERSECT`, `MINUS` и другие).
Будет полезно порешать задачи на stratascratch.com в отдельном разделе по SQL.
Секция на знание теории
Рекомендуем повторить следующие темы:
- исключения и способы их обработки
- псевдостолбцы и их использование в запросах;
- диагностика и отладка запросов в Oracle;
- трассировка и профилирование хранимых процедур;
- права доступа и привилегии;
- виды блокировок и их использование в условиях конкурентного доступа к данным;
- особенности работы с транзакциями;
- работа с курсорами, коллекциями и их использование для выборки и модификации данных;
- особенности передачи параметров в функциях;
- виды соединений таблиц и объединения запросов;
- нюансы работы с `null`-значениями.
Проверка базовых технических навыков
Рекомендуем повторить следующие темы:
- базовые алгоритмические конструкции PL/SQL;
- перебор элементов в строке, использование коллекций;
- техники работы с указателями, «скользящим окном»;
- понимание алгоритмической сложности — `O(1)`, `O(n)`, `O(n^2)`.
Задана строка `s` из малых латинских букв. Требуется узнать длину наибольшей подстроки, в которой все буквы одинаковы.
допустим s = , тогда длина искомой подстроки () = 0
допустим s = «a», тогда длина искомой подстроки («a») = 1
допустим s = «abbc», тогда длина искомой подстроки («bb») = 2
допустим s = «adddaabaa», тогда длина искомой подстроки («ddd») = 3
На вход подаётся строка s. Надо определить, что она является палиндромом. То есть после преобразования всех прописных букв в строчные и удаления всех неалфавитно-цифровых символов (букв и цифр) она читается одинаково как в прямом, так и в обратном направлении. Решение должно быть выполнено за O(1) по памяти, то есть нельзя создавать сущности, которые зависят от длины входящей строки. Например, убирать неалфавитные символы регулярным выражением, которое на выходе даёт строку того же порядка, что и s.
допустим s = «шалаш», тогда результат = true
допустим s = «А лис, он умен —крыса сыр к нему носила», тогда результат = true
допустим s = «754−45−7», тогда результат = true
допустим s = «race a car», тогда результат = false
Архитектурная секция
Проверим ваше умение проектировать сервисы, сделаем акцент на проектировании БД. Попросим сформулировать требования к системе, спроектировать высокоуровневую архитектуру и, возможно, детально описать один из компонентов.
Кроме этого, нам будут интересны ваши мысли о таких инженерно-проектных аспектах, как:
- выбор дизайна/решений на основе анализа сценариев, требований и ограничений;
- разбиение на стадии;
- нормализация и денормализация баз данных;
- способы интеграции систем;
- надёжность и производительность;
- метрики и мониторинги.
Финальное интервью
Финал займет 1 час.
Мы проверим на практике, как ваш опыт мэтчится с нашими целями, а вы сможете понять, подходит ли вам команда.
Познакомитесь с командой и руководителем, обсудите продукт, процессы, стек и будущие задачи. Будьте готовым рассказать о своих прошлых проектах и кейсах — описать свои действия в различных ситуациях и ответить на вопросы.
По результатам встречи обменяемся фидбэком и решим, готовы ли работать вместе.