«Тинькофф Банк» широко известен на территории России и Беларуси как один из самых технологичных банков, специализирующихся на онлайн-обслуживании. Основанный в 2006 году предпринимателем Олегом Тиньковым, на сегодняшний день банк занимает 3 место по уровню востребованности среди населения и даже числится в перечне значимых кредитных организаций Центрального Банка РФ несмотря на то, что организация была основана частным лицом.
Растущая клиентская база оправдывает потребность банка в увеличении количества сотрудников и расширении штаба. И хотя у «Тинькофф» нет розничных отделений для обслуживания клиентов, банк предлагает множество вакансий в сфере IT, бизнес-процессов, а также консультирования и курьерской службы.
Преимуществом трудоустройства в «Тинькофф Банк» является возможность работать в любом городе страны в удаленном формате, так как большинство процессов банка проходят онлайн. Для специалистов, занимающихся разработкой web-продуктов для банка, менеджеров внутренних процессов, бухгалтеров и менеджеров B2B есть возможность работать в современных центрах разработки, которые открыты в 19 городах России и в Беларуси.
На сегодняшний день в Тинькофф Банке трудоустроено около 26 тысяч постоянных сотрудников, и по прогнозам сайтов-агрегаторов актуальных вакансий, их количество продолжит расти, так как банк находится в регулярном поиске работников. Выше мы уже отметили, что у банка нет филиалов и центров обслуживания на местах – соответственно, нет привычных для банков вакансий консультантов и кассиров. Откуда же такая потребность в новых кадрах? Все дело в том, что представители банка неоднократно объясняли, что все операции проходят в онлайн-формате, посредством мобильного приложения Тинькофф Банка, которое по сути заменяет центры обслуживания. Таким образом, каждый соискатель должен обладать навыками владения интернет-технологиями и коммуникации посредством мессенджеров/звонков, стрессоустойчивостью и высоким уровнем обучаемости – новые технологии внедряются каждый день, и за ними нужно успевать.
Однако как именно устроен процесс трудоустройства в Тинькофф Банк и каким образом проверяют профпригодность сотрудника? Для этого HR-департамент банка разработал отдельные программы для каждого типа вакансий. Мы не будем подробно останавливаться на IT-вакансиях, так как это – совершенно другой уровень сложности, подразумевающий несколько этапов собеседований, включая общее и многочасовое техническое. Однако для соискателей, заинтересованных в сфере бизнес-процессов, предусмотрено несколько этапов, один из которых – обязательное тестирование.
Трудоустройство в «Тинькофф»: как оно проходит?
До начала пандемии COVID-19, процесс трудоустройства выглядел следующим образом. После отклика на вакансию потенциальных кандидатов – необязательно все из них претендуют на одну и ту же должность – приглашают на синхронное собеседование в одно время и в одном офисе (обычно около 20 человек за раз). В присутствии руководителей отделов и психологов, кандидатам сначала предлагается решить тесты: это могут быть как логические вопросы в духе теста Айзенка на уровень интеллекта, либо вербальные и числовые задачи, затрагивающие вопросы из области психологии, геометрии и даже алгебры. Подготовиться к такому тестированию было сложно по нескольким причинам:
-
Готовые варианты тестов почти невозможно найти в интернете, и они постоянно совершенствуются и меняются;
-
Нельзя предугадать, какой именно вариант попадется именно вам: с преобладанием вопросов на логику и определение уровня интеллекта, либо математические задачи;
-
Тест приходится сдавать вместе с остальными кандидатами, в присутствии руководителей и психологов, которые наблюдают за поведением соискателя в стрессовых условиях и делают соответствующие заметки;
-
На тест дается мало времени.
После тестирования соискатели переходили ко второму этапу. Всех кандидатов разбирали на пары и проверяли их способность дискутировать друг с другом – такой своеобразный вербальный тест. В окончание дебатов наблюдатели-психологи оглашают, кто прошел тестирование и будет приглашен на дальнейший разговор с руководителями.
Все это может прозвучать крайне удручающе, но с наступлением пандемии и перехода вакансий в удаленный формат, процесс тестирования изменился – в лучшую сторону для кандидатов. Сегодня тестирование можно пройти онлайн: оно проводится на специальном портале банка под наблюдением потенциального руководителя – «наставника», который будет отслеживать процесс обучения и контролировать сотрудника.
Тесты «Тинькофф»
Основная сложность подготовки к тестам Тинькофф Банка заключается в том, что их невозможно найти в интернете: банк не пользуется услугами таких разработчиков оценочных тестов, как SHL и TalentQ, но использует свои отработанные ресурсы. Одна это не повод отчаиваться: тесты Тинькофф следуют базовым принципам составления модулей вопросников для приема на работу и включают в себя привычные нам модули – это числовые, вербальные и логические тесты.
Это важно! Обратите внимание на то, что на поисковый запрос «тесты в Тинькофф» вам могут предложить тесты для инвесторов банка. Эти тесты никаким образом не связаны с трудоустройством в банк: они предназначены для частных лиц – клиентов банка, — которые планируют вкладывать в ценные бумаги при посредничестве банка.
Итак, возвращаясь к числовым, вербальным и логическим тестам. Самый лучший способ подготовиться к ним заранее – это использовать онлайн-тренажеры, предоставляющие заинтересованным лицам «отработать» нужные типы тестов, лучше ознакомиться с типовыми вопросами и научиться отвечать на них в условиях ограниченного времени. На нашем сайте Testlearn мы собрали для вас самые актуальные вопросники в удобном формате: доступны как бесплатные варианты для ознакомления, так и платные модули, содержащие большое количество вербальных, числовых и логических вариантов тестов.
Теперь кратко перейдем к характеристике каждого вопросника по отдельности.
Числовые тесты
Чаще всего – математические задачи, проверяющие способность кандидата работать с массивами числовых данных. Затрагивают темы из школьной программы по алгебре, геометрии, в случае некоторых вакансий – высшей математики. Если вы претендуете на должность оператора call-центра, то этот блок вопросов не будет превалирующем в тесте, однако лучше всего повторить базовые операции: вычисление процентов, перевод десятичных дробей в обыкновенные, поиск неизвестной в уравнении и т.д.
Вербальные тесты
Если вы не проходите групповое собеседование, то ваш вербальный онлайн-тест будет направлен на оценку ваших способностей понимать и интерпретировать текстовые данные. Оценивается то, как глубоко и тщательно кандидат изучил учебные материалы Тинькофф Банка в личном кабинете, так как все вопросы будут составлены на основе этих пособий.
Логические тесты
Оценивают способность соискателя выстраивать причинно-следственные связи, пользоваться методами индуктивного и дедуктивного мышления. Вопросы могут напомнить вам модули из теста Айзенка EPQ-R на определение уровня интеллекта: в качестве задач кандидату предложат изучить различные фигуры, символы или шаблоны.
Заключение
Формат тестирования Тинькофф Банка поменялся, но при этом у потенциальных соискателей, рассматривающих банк в качестве места работы, появилось возможностей для подготовки – речь идет об удобных онлайн-тренажерах, которые позволяют отработать навык решения тестов до автоматизма. Ежедневно практикуйтесь и развивайте свои навыки – и тогда у вас есть хороший шанс пополнить ряды сотрудников Тинькофф.
IT-собеседование в Тинькофф
Рассказываем, как подготовиться к собеседованию на IT-вакансию: https://www.tinkoff.ru/career/it/
Этапы собеседования
- Предварительное собеседование.
- Техническое собеседование.
- Знакомство с командой.
- Приглашение на работу.
Этап 1: предварительное собеседование
Вы откликнулись на вакансию и отправили резюме — через некоторое время с Вами свяжется рекрутер и проведет предварительное собеседование.
На предварительном собеседовании знакомимся друг с другом. Беседа займет полчаса: рекрутер спросит Вас об интересах, опыте и мотивации, а затем расскажет о работе и вакансиях в Тинькофф. Не стесняйтесь задавать вопросы.
Рекрутер запомнит направление и проекты, над которыми хотите работать. В течение двух дней он свяжется с Вами и согласует время для технического собеседования.
Этап 2: техническое собеседование
Техническое собеседование состоит из нескольких отдельных тем — секций. Созвон по каждой секции длится 1-1.5 часа и проходит в Zoom с отдельным интервьюером. Вы можете пройти все секции сразу или в течение нескольких дней — скажите рекрутеру, как удобнее.
Как проходить секции:
- Подготовьте рабочее место: проверьте компьютер и интернет, подготовьте веб-камеру, возьмите пару листков бумаги и ручку. Рекомендуем выспаться и захватить бутылку воды.
- Не используйте для созвона телефон: Вы будете много кодить в онлайн-IDE, рисовать схемы и общаться с интервьюером.
- Задавайте вопросы и предлагайте разные решения, даже если они кажутся неправильными: интервьюер проверяет не только знания, но и как Вы подходите к решению задач.
Обычно нужно пройти 2—4 секции — это зависит от направления и Вашего опыта. Точное количество Вам скажет рекрутер.
Направления и секции в Тинькофф
Backend-разработка
- Секция по платформе или языку
- Секция программирования
- Системный дизайн
Frontend-разработка
- Секция по Web платформе и фреймворкам
- Секция программирования
- Архитектурная секция (для кандидатов уровня middle+ и выше)
SRE
- Проверка общих инженерных компетенций
- Выявление и устранение проблем
- Базовое программирование
Для позиций с фокусом на разработку возможно проведение дополнительных секций:
- Системный дизайн
- Секция программирования
Машинное обучение
- Секция программирования
- Секция по ML
- Дизайн ML-систем
Quality Assurance (QA Fullstack)
- Профильная секция тестирования (backend, mobile, web)
- Теория и практика QA
- Программирование для QA
Тестирование производительности
В секции программирования, по направлению тестирования производительности, используются задачи по кодированию уровня easy (leetcode), нацеленные на умение использовать простые структуры данных, а не на эффективную реализацию алгоритмов.
- Программирование для QA
- Секция по дизайну проектов тестирования производительности
Этап 3: знакомство с командой
После технической секции рекрутер подберет подходящие проекты и согласует созвон с командами. Обычно созвон длится полчаса: ребята рассказывают про текущие проекты, отвечают на вопросы и спрашивают о Вашем опыте, любимых задачах, увлечениях. Таких созвонов будет не более трёх.
После созвона с Вами свяжется рекрутер: скажите ему, в какой команде Вы хотели бы работать.
Этап 4: приглашение на работу
В течение нескольких дней мы вернемся с оффером. Если Вам понравятся условия и команда, останется согласовать дату первого рабочего дня.
Дополнение:
- Рекрутер отвечает между этапами в течение трех дней, на финальное решение уходит чуть больше времени. Рекрутер на связи: Вы можете связаться с ним, если нужно что-то уточнить.
- В беседе с интервьюерами задавайте вопросы и предлагайте разные решения. Интервьюер проверяет не только знания, но и как Вы подходите к решению задач.
- Бывает так, что на каком-то этапе интервью мы отказываем кандидату. Отказ не влияет на отношение к кандидату: он может попробовать подать заявку через полгода, а если откроется подходящая вакансия, мы предложим варианты.
- Если есть пожелания или что-то не понравилось, напишите нам: interview_issues@tinkoff.ru.
Содержание
- 1 Каким образом проходят собеседования
- 2 Очные групповые собеседования
- 2.1 Презентация и анкетирование
- 2.2 Испытания и ролевые игры
- 3 Проверка данных соискателя службой безопасности
- 4 Обучение в Тинькофф
- 5 Собеседования для удаленной работы
Тинькофф Банк известен не только своими кредитными картами, но и особенным подходом к работе: у банка нет отделений, кроме главного офиса в Москве. Учитывая информацию об открытых вакансиях в разных городах, закономерен вопрос соискателей о том, как проходят собеседования в Тинькофф Банке. Мы расскажем о методах отбора кандидатов и формате собеседований в Тинькофф.
Каким образом проходят собеседования
В банке «Тинькофф» сотрудники работают и в центральном офисе и удаленно, в режиме домашних колл-центров.
В стационарном офисе банка работают менеджеры, бухгалтеры, юристы, специалисты IT. Также, в центральном офисе располагается внутренний колл-центр, где трудятся специалисты по обработке заявок и коллекторы.
На удаленную работу принимаются операторы по продаже банковских услуг и специалисты отдела работы с должниками.
Для каждой вакансии у банка разработаны методы подбора кандидатов и проведения интервью. Сразу отметим, что приглашение на очное собеседование в Тинькофф Банк могут получить жители Москвы и области.
Менеджеры и профильные специалисты проходят индивидуальное очное интервью. Для вакансий, предполагающих контакты с клиентами, практикуются групповые многоэтапные собеседования.
Кандидатам, приславшим отклик на вакансию, поступает приглашение явиться в офис в определенное время. Обычно просят взять с собой паспорт, страховой номер индивидуального лицевого счёта (СНИЛС) и трудовую книжку.
Очные групповые собеседования
Многочисленные отзывы дают представление о том, как проходят собеседования в Тинькофф Банке. К назначенному времени на групповой встрече может оказаться от 20 и более человек. Все кандидаты имеют различный опыт работы, не обязательно связанный с банковскими услугами.
Презентация и анкетирование
Специалист службы персонала банка «Тинькофф» предложит соискателям заполнить анкеты. В бланках указан перечень должностей, и нужно отметить те из них, на которые кандидат претендует. Кроме этого, потребуется пометить должности, на которых соискатель не хотел бы работать и вакансии, возможные для рассмотрения.
Анкеты можно заполнять в ходе презентации, которую проводить специалист Тинькофф Банка. Обычно рассказывается об истории банка, условиях приема на работу, требованиях к кандидатам, возможностях заработка и карьерного роста.
После презентации нужно сдать заполненные анкеты и приступить ко второму этапу собеседования. Если в ходе презентации соискатель примет решение не продолжать участие в дальнейшем собеседовании, он может покинуть группу.
Испытания и ролевые игры
На втором этапе кандидатам придется проявить весь свой творческий потенциал: специалисты по подбору персонала банка придумывают разноплановые тесты и испытания.
Наиболее часто этот этап начинается знакомством. Каждый участник должен кратко рассказать о себе. Казалось бы, простое задание, но кандидат должен показать навыки презентации. Здесь специалисты оценивают не столько рабочий опыт соискателя, сколько его умение излагать информацию. Немаловажное значение имеет грамотная речь и хорошая дикция.
Часто практикуются задания в группах. Например, кандидату могут предложить диалог с оппонентом, в котором он должен аргументированно доказать важность обсуждаемой темы. Здесь оценивается способность работы с возражениями и умение вести сложные переговоры.
И, конечно, кандидатам предлагают логические и математические задачи. Темы кейсов могут быть различные: посчитать сумму кредита к выплате, найти лишние знаки или цифры в документе и т.д.
После завершения этого этапа, эксперты и наблюдатели от банка принимают решение: чьи результаты были лучшими, и кто из кандидатов сможет эффективно работать в Тинькофф. Но отобранным кандидатам пока рано радоваться: процесс отбора предполагает еще одну процедуру.
Проверка данных соискателя службой безопасности
Подавая заявку на открытую вакансию, потенциальный сотрудник должен представить личную информацию: данные паспорта, место регистрации, номера телефонов и адреса почты. Кроме этого, требуются сведения об образовании, открытых кредитах, наличии судебных исков и прочее.
Службу безопасности интересует достоверность данных и благонадежность кандидата. Отказ получат следующие граждане:
- Имеющие судимость;
- Стоящие на учете у нарколога;
- Кндитаты с плохой кредитной историей;
- Имеющих задолженность по алиментам или ЖКХ.
Мы перечислили здесь причины наиболее частых отказов. Но могут быть и другие, при этом, кандидату отказывают без всяких объяснений.
Поэтому, ответ на вопрос как пройти собеседование в Тинькофф зависит не только от оценки профессиональных качеств кандидата. Если же, ваша анкета безупречна, и все этапы успешно пройдены, то можно приступать к обучению и стажировке.
Обучение в Тинькофф
Методы обучения в Тинькофф разработаны с учетом специфики банка и конкретных должностей. Офисные сотрудники проходят обучение, напоминающее знакомство с правилами и внутренним распорядком, и приступают к испытательному сроку в своих отделах: бухгалтерии, юридическом или IT-cлужбе. Новички отделов продаж и работы с задолженностью проходят более глубокое обучение, позволяющее приобрести необходимые навыки для работы в банке.
Как правило, каждый новый сотрудник получает доступ в личный кабинет сайта банка. Там размещается информация о задачах на период испытательного срока, который длится 3 месяца.
За этот период, кандидат должен показать положительные результаты работы. Оценивается умение общаться с клиентами банка по правилам и внутренним стандартам. Результатом работы является выполнение плана продаж.
Не справившихся с задачами сотрудников увольняют, выплачивая положенные по трудовому договору суммы. Такой подход отвечает интересам двух сторон: сотрудник может реально оценить характер работы и принять взвешенное решение о поиске новой должности, а наниматель не тратит средства на содержание неэффективных работников. Кстати, в период испытательного срока, можно уволиться по собственному желанию, предупредив работодателя за 3 дня до даты ухода.
Что касается мотивации сотрудников, принятых в штат банка, то их отзывы отмечают положительные моменты:
- Зарплата выплачивается без задержек, дважды в месяц;
- Сотруднику выдается карта с бесплатным обслуживанием;
- Банк предоставляет персоналу полисы ДМС.
Собеседования для удаленной работы
Отбор кандидатов для удаленной работы производится другими методами, и соискателям не приходится проходить групповые испытания. Но это не значит, что требования банка к потенциальным сотрудникам менее строгие.
На работу принимаются совершеннолетние граждане РФ, опытные пользователи ПК, имеющие условия для работы в режиме домашнего колл-центра. Кандидату понадобится компьютер с гарнитурой и выходом в интернет. Работодатель оплатит расходы на связь и результаты работы, но взамен от сотрудника потребуется выполнение плана и соблюдение стандартов банка.
Чтобы пройти собеседование в Тинькофф Банк для удаленной работы, нужно оставить заявку на сайте банка и пройти регистрацию в системе. После этого будет открыт доступ в личный кабинет, где и ведется обучение и контроль над результатами.
Пример анкеты для заполнения:
Каждый новичок получает консультацию наставника и проходит с ним короткое интервью. Целью беседы будет выяснение основных навыков кандидата и его желания работать по заявленной должности. Затем необходимо пройти обучение: все материалы размещены в личном кабинете, в электронном виде. После обучения сдается тест, и, в случае успеха, предстоит еще одно собеседование с наставником, на котором оценивается полученная база знаний и умение вести диалог с потенциальным клиентом банка.
На начальном этапе самостоятельной работы, сотрудники получают возможность сделать тестовые звонки по реальной клиентской базе. Если результат будет удовлетворительным, то последует заключение трудового договора.
Подводя итог, можно отметить, что основной целью команды Тинькофф является подбор успешных кандидатов. Эта работа может стать хорошим стартом для начинающих специалистов по продажам, а опытным профессионалам принесет неплохой заработок.
Загрузка…
История, настоящая :), как наш читатель пытался начать работать в банке Тинькофф, не имея финансового образования.
Зачем многие стремятся работать в банке? Вероятно, стремление иметь больше денег равнозначно /для некоторых претендентов/ ситуации, когда ты просто поближе к деньгам находишься, держа в руках /на работе/ не свои, но серьезные суммы. Поэтому в стремлении попытать «счастья» люди стремятся любой ценой устроиться работать в банковский сектор, типа и вознаграждение, и премии выше в среднем (!) на рынке труда. И не важно, что должного образования порой нет.
Так вот, вакансии для не имеющих финансового образования, открываются часто в банке Тинькофф, для работы в колл-центре — на сайтах рекрутинговых агентств также достаточно много таких вакансий:
- от традиционной работы в региональном /головном офисе, до
- работы в полусвободном графике как оператор домашнего call центра,
- в регионах с растущей клиентской базой банк открывает частенько вакансии по набору сотрудников для выезда к клиенту для оформления продуктов банка.
И, дальше бы я начал рассказывать каким образом проходил обучение и начал работать, однако, на этапе собеседования понял, за какой объем работы в виде звонков незнакомым, потенциальным заемщикам, выполняемый ежедневно, ежемесячное вознаграждение примерно составляет 20 тыс рублей. Да и по времени, свои 4-6 часов ежедневно на переговоры с бросающими трубку заемщиками стало жалко. Поняв и взрогнув, Я решил (!!!) …эээ, каким-то образом вежливо отказаться от дальнейшего сотрудничества. Причем, очень мило прозвучал мой отказ — ниже подскажу как поступить. Сначала все же скромный совет для решивших пройти испытание / обучение с последующим заключением договора.
Как успешно сдать экзамены и устроиться работать в Тинькофф банк
Коротко схема: пишите письмо на мыло hcc (собачка) tinkoff.ru с указанием в теме электронного письма «Старт». В ответ, при наличии вакансии, получаете учетные данные с паролем в обучающий кабинет и начинаете запоминать информация. Советую сразу записывать ответ на вопрос, если боитесь что-то забыть из онлайн-учебника / назовем это так, потому что «подсмотреть» правильный ответ при сдаче онлайн-теста уже не получится. А еще лучше — делать сканы с экрана, типа таких:
- Разберитесь как действует льготный период и до какой даты должен поступить платеж на счет.
- Научитесь пользоваться калькулятором, вот прямо поиграйтесь им, и оставьте файл у себя — уверен, пригодится при любом раскладе — получится начать работать, или нет.
Набрав баллы, наберитесь терпения и будьте внимательны — предстоит разговор с наставником. А для начала вас добавят в скайпе в группу таких же кандидатов, т.е. скайп должен быть заранее установлен. К разговору прикупите требуемое оборудование, т.к. хороший микрофон имеет значение. Оно и понятно — в предстоящем общении с наставником и клиентами нужны идеальные «тишина в эфире» и слышимость. Вот как-то так.
Если на одном из этапов обучения вы поняли: ну вот не моё енто дело, то прекращайте немедленно обучение. Хотя. у меня была цель дойти-таки до оформления. И вот что поразило, это «читаемая» радость в голосе наставника с первых секунд его /ее рассказа о карьерном росте и возможностях в ТКС. Эта радость меня и «добила»… Люди, не готов я был признаться, что мечтой всей моей жизни является карьерное продвижение в банке, каюсь. Поэтому прямо сказал об этом. Мгновенно разговор был закончен, так неожиданно, прям и не попрощались, доступ был ко всем ресурсам ограничен, т. е. запрещен, а я, довольный, что мое трудоустройство в банк Тинькофф все ж таки сорвалось, пошел радовать супругу, уже заранее расстроенную моей занятостью.
Евгений, МО
Время на прочтение
9 мин
Количество просмотров 118K
Предисловие
Около года назад я задался целью получить оффер от FAANG. Как следствие, постоянной частью моей жизни стали тематические форумы, площадки и вся сопутствующая атрибутика. Спустя какое-то время я попробовал себя на собеседованиях в околоFAANGoвые компании: Lyft, Spotify, Booking и т. д, где-то успешно, где-то не очень. В это же время мне порекомендовали попробовать пройти собеседование в Тинькофф банк, который внедрил схожий процесс.
После стандартного общения с HR менеджером была получена ссылка на описание процесса собеседования. “Хм, почти что FAANG + тех. интервью по Primary Skill”, — подумал я и сказал, что готов приступать. В тот же час было назначено 2 интервью: техническое и coding, а вот 3 этап, system design, нужно было заслужить успешным прохождением первых двух. Почему именно эти 2 части являлись основополагающими, осталось неясным.
Акт первый, технический
В назначенный час я встретился со своим интервьюером. Собеседование выглядело “добротным” и стандартным в заданной проф. области, оттого местами скучным. Было много задач на ревью кода и обсуждения специфики языка, в частности:
-
Ревью кода. Разнообразные задачи от Spring до concurrency.
-
Spring до concurrency. Вопросы по Spring оказались весьма тривиальными, входящими в подборку “ТОП-25 вопросов по Spring” (скоупы бинов, виды прокси и т. д.). Можно ли такими вопросами действительно проверить понимание и опыт использования Spring? Сомнительно.
-
Транзакции. ACID. Уровни изоляций. Как устроена работа в Spring? Несомненно, данный топик поражает своей новизной. Почему бы не отойти от заученной статьи с Википедии (которая читается 5 минут) и стандартных вопросов как будто бы про транзакцию (а на самом деле про прокси в Спринге), не мучить Senior+ кандидата выученными статьями, а поговорить о необходимости транзакций, архитектурных подходах и сопутствующих темах? Тем более вы рекомендуете к прочтению книгу “Высоконагруженные приложения. Программирование, масштабирование, поддержка / Мартин Клеппман”, где тема БД, транзакций и прочего раскрыта очень хорошо.
-
Concurrency. И снова стандартные вопросы про “deadlock, synchronized, reentrantLock”, принцип “happens before” и “volatile” (хотя это JMM, знатоки, не кидайтесь тапками), как-то по верхам цепляем java.util.concurrent. Зачем-то пересказываем друг другу то, что миллион раз слышали, а на практике почти никогда не применяли. В голове крутится “зачем, почему, ведь мы можем обсудить столько всего”. “Столько всего” — это:
-
Базовая теория потоков (какими потоками оперирует Java, почему, есть ли альтернативы в Java или других JVM-based языках, их плюсы и минусы).
-
Методы поиска deadlock и livelock с различными UI тулами или без них (только терминал, только хардкор). Для кандидатов уровня ниже можно просто дать на ревью thread dump.
-
Если уж дошли до java.util.concurrent, то вместо вопроса, что за зверь ConcurrentHashMap, давайте посмотрим на изменение подхода к ее реализации в разных версиях JVM и поразмышляем о причинах. Также можно обсудить “диковинные” коллекции в виде зоопарка очередей и, к примеру, skip lists (заодно проверив теорию алгоритмов).
-
Думаю, для “бесплатного” списка тем достаточно)
-
-
JMM и т. д. Вот тут прозвучал вопрос, на котором я, признаюсь завис. “Что знаешь о JMM?” Максимально высокоуровневый вопрос, на который мозг начинает генерировать: “Что от меня хотят услышать? Стандартное определение правил из спецификации типа happens before, reordering? А может, типы мониторов, их схему переходов, цикл парковки потоков? А может, еще глубже о работе с ОС?” В общем, не смог я вспомнить, с чего начинаются статьи “JMM, топ 10 вопросов”. “Кое-что знаю, но гораздо меньше, чем Шипилев” — отшучиваюсь и решаю брать инициативу в свои руки. Быстро выдаю всё, что помню про hb, и рассказываю о том, какие проблемы решал за последние несколько лет, тем самым решив перескочить на тему Java Memory. Сразу оговариваюсь, что про heap говорить не будем, так как здесь всё уже сказано и описано, а обсудим лучше NonHeap. Рассказываю о том, почему Spring Boot application не сможет долго жить на 256 Mб оперативы и при чем здесь non-heap (на самом деле, очень советую добавить вопросы про это в интервью, так как приложений, запускающихся не в контейнерах, почти не осталось). Плавно перехожу на коварную Cassandra (как пример сервиса на Java) и ее работу с offheap, заканчиваю тем, что в великолепном докладе Андрея Паньгина всё есть и он мне очень помог. Складывается впечатление, что такого мой собеседующий не ожидал. Возникает неловкая пауза, которую я решаю прервать вопросом “Обсудим gc? Недавно подбирал оптимальные настройки для нашей конфигурации Кассандры, могу рассказать”. То ли из-за ограничений по времени, то ли не выдержав пытку Кассандрой, собеседующий завершает данный блок.
-
Вопрос со звездочкой. Так как перед собеседованием я прочитал подборки “Топ-50 вопросов по Java, Spring и т. д”, получаю вопрос повышенной сложности со следующими входными данными: Есть сервис, работающий с Third-party сервисом. Также данный сервис работает с реляционной базой, в частности Postgres. В какой-то момент сервис начинает тормозить. Каков алгоритм моих действий? Последовательность моих рассуждений:
-
Полагаю, что в моем распоряжение есть все необходимые метрики системы и окружения. Поэтому первым делом предлагаю проверить наличие пиков в графиках latency: запрос в БД, запросы к third-party сервисам, сетевые задержки. Если проблема в БД — то смотрим на количество локов и потребление CPU (потребление memory нам ничего не даст, так как в БД встроен механизм кэширования). Есть проблемы — тюним БД или оптимизируем запросы.
-
Интервьюер отвечает, что с латенси все в порядке, поэтому я предлагаю проверить метрики JVM, в том числе GC (могли увеличиться паузы на stop-the-world).
-
Переходим к вопросам о том, что же делать, если проблема в медленных ответах third-party системы. Предлагаю следующий алгоритм решения:
-
Письмо ответственным за систему с подробным описанием проблемы
-
Ограничение кол-ва запросов к данной системе с помощью rate-limiter (предлагаю отправить письмо с данной просьбой, пока поведение системы не будет исправлено). Предполагаю, что на нашей стороне будет реализована корректная обработка отклоненных запросов.
-
Использование сircuit-breaker на нашей стороне, дабы ограничить кол-во запросов к данной системе.
-
К сожалению, я не сказал того, что хотел услышать интервьюер. Как именно следует решать такие проблемы с точки зрения Тинькофф, для меня осталось загадкой. На этой грустной ноте начался второй этап собеседования.
-
Акт второй, coding
При подготовке к собеседованию я внимательно изучил описание процесса и выделил два важных для себя момента:
-
Не используйте для созвона телефон: Вы будете много кодить в онлайн-IDE, рисовать схемы и общаться с интервьюером.
-
В данном случае в алгоритмической секции используются облегчённые задачи по кодированию, нацеленные на умение использовать простые структуры данных, а не на эффективную реализацию алгоритмов.
Из этого я сделал вывод, что решать задачи потребуется в онлайн-IDE вроде Coderpad, а по сложности они будут ближе к easy (возможно, middle) на leetcode. Но, как говорится, мои ожидания — это мои ожидания.
В начале собеседования интервьюер сообщил, что меня ждут 2 задачи, и время я должен рассчитывать сам.
После этого мне было предложено пошарить мой монитор, чтобы решать задачу в удобной для себя IDE. К такому повороту я готов не был, поэтому, сославшись на их регламент, попросил предоставить ссылку на online-IDE. К такому повороту, как оказалось, готов не был уже интервьюер, и ему пришлось достаточно долго настраивать редактор.
Первой оказалась задача на поиск одинаковых элементов в 3 отсортированных массивах с использованием O(1) памяти. Решения я не знал, но рассуждал вслух, предлагая оптимальные по времени, но не по памяти, решения. В процессе раздумий появилось решение на основе 3 указателей, оптимальное с точки зрения времени и памяти. Решение было реализовано, код запустился (как оказалось, выбранный редактор очень медленно запускает код) и в целом задача была решена.
Вторая задача оказалась уровнем выше. Я сразу определил, что решаться она должна методом DP, и тем самым словил диссонанс с ожиданиями: “облегчённые задачи по кодированию, нацеленные на умение использовать простые структуры данных”. Не считаю, что DP задачи, требующие двумерного массива (в простом для понимания решении), можно назвать “облегчёнными”. Объяснив, как в принципе решаются такие задачи, я взял несколько минут на раздумье, но не смог составить рекуррентную формулу, честно об этом сказав. Затем мы вывели формулу вместе с интервьюером — на этом этапе я откровенно не блистал. После этого интервьюер сообщил мне, что данный этап собеседования завершен, и мы попрощались. (Сделанные выводы: стоит подтянуть задачи на DP.)
Честно говоря, мне как собеседуемому, хотелось бы видеть более стандартизированный процесс интервью без вводящих в заблуждение оценочных фраз.
Акт третий, мой любимый. System design
Приглашение на System design секцию стало для меня сюрпризом, поэтому я допустил две ошибки: выбрал не совсем удачное для себя время интервью и не уточнил, какой редактор для проектирования будет использоваться (казалось, что на первой встрече был упомянут Google Draw).
На интервью было предложено спроектировать Messenger (стандартный дизайн для FAANG собеседований). Решать задачу я собирался по удобной для себя схеме:
-
Сбор требований
-
Расчет объема данных и ожидаемой нагрузки
-
HLD (High Level Design)
-
Обсуждение технологий
-
Возможно, обсуждение API, схемы БД
-
Обсуждение недостатков и компромиссов
Первые 2 пункта мы проскочили достаточно быстро. Я как мог боролся с неведомым прежде SketchTool и рисовал HLD. Сразу оговорил, что в мессенджерах используется WebSocket протокол, и объяснил, почему. При отправке сообщения оно должно было попадать в очередь, я предложил Kafka (предупредив, что мы будем относится с осторожностью к созданию большого количества топиков из-за ограничений на файловые дескрипторы). Оттуда сообщение направляется в Cassandra и, при необходимости, на Message Server.
В какой-то момент мы с собеседующим, казалось, полностью перестали понимать друг друга. Он настойчиво требовал изобразить на схеме, уже полной компонентов, flow с потоками данных (что для меня в скетчбуке оказалось просто невыполнимой задачей). По API я обратил внимание, что сообщения мы пересылаем по websocket, и роутиться запросы будут на основе посылаемого Payload, однако мы продолжили описывать API. По схеме данных я заострял внимание на partitionKey и важность их выбора, однако собеседующий не понимал, почему работать с большим партишеном плохо, и вообще закрадывалось подозрение, что он не хотел видеть в данном System Design BASE-системы, хотя расчеты говорили о другом.
Со своей стороны могу сказать, что прохождение данного этапа было далеко от идеала, ввиду путаницы по подключениям и генерации messageId, себя я бы оценил на 6 из 10.В конце собеседования я получил фидбэк, что мой System Design плох по perfomance и latency, так как содержит очень много компонентов и медленных сервисов вроде Kafka. Занавес. “Надо было рисовать 3 квадратика”, — подумал я, — “один клиент, другой — чат-сервис монолит, третий — vendor-specific db, вроде Oracle”.
Уже после этого интервью мне понадобилось зайти в чат приложения Тинькофф, и он сразу напомнил мне о заключительном этапе. Почему? Потому что чат постоянно терял связь с сервером по причине его недоступности. Здесь я понял, что был прав и от меня действительно требовался монолит в 3-х квадратах…
Заключение
Так почему же получилось “как всегда”? Конкретно на этапах, характерных для FAANGa, я выделил для себя несколько причин:
-
Собеседующие не были готовы вести такие собеседования. Они перебивали, не давали закончить мысль, вводили где-то в заблуждение.
-
Ни на одном этапе не был соблюден тайминг. Все этапы длились на 10-15 минут больше запланированного. (хотя на встрече с hr, было предложено ставить этапы друг за другом, но для себя я просил получасовой перерыв)
-
Во время интервью не было никакого сопровождения от HR, кроме начальной ссылки и назначения собеседований (к этому, конечно, тоже были вопросы, но это отдельная тема).
-
Не было знакомства с инструментами, которые использовались во время интервью
Хочется верить, что описание моих впечатлений окажется полезным и, возможно, поможет что-то улучшить. Мои предложения:
-
Заранее определиться с редактором для кодинга (если это будет online редактор, то высылать кандидату ссылку заранее, чтобы он мог поработать с редактором и настроить его под себя).
-
Не давать субъективных оценок уровню алгоритмических задач — слово “облегченные” может восприниматься разными кандидатами очень по-разному.
-
Предупреждать о том, какой именно редактор будет использоваться для System design, чтобы кандидат мог потренироваться. Все редакторы очень разные, и на своем опыте могу сказать, что привыкнув к популярным googleDraw и excilaryDraw, мгновенно переключиться на Sketch Tool было весьма тяжело.
-
Если вы стремитесь к распределенной архитектуре (судя по рекомендации книги “Высоконагруженные приложения. Программирование, масштабирование, поддержка / Мартин Клеппман”, это именно так), то стоит придерживаться её принципов и на System Design секции. Кроме того, в рекомендации можно добавить ссылку на книгу System Design Interview – An insider’s guide (часто идёт в паре с рекомендованной вами).
-
Записывать этапы интервью для прояснения спорных ситуаций и получения второго мнения (если, конечно, вы не исходите из того, что собеседуемый заведомо неправ).
-
Если процесс интервью и вопросы являются тайной, то ввести NDA для собеседующихся.
Также отмечу, что вышеизложенный текст предназначался в первую очередь для самой компании Тинькофф, и после всех этапов я обратился к уже упомянутой инструкции и отправил данный текст на указанную там почту. На момент публикации статьи прошло примерно 2 недели — ответа пока нет.
Надеюсь, что эта статья будет полезна тем, кто собирается пройти собеседование в Тинькофф, а также компаниям, которые собираются внедрять похожие практики проведения интервью.