Я тут наткнулся на старую почту с приглашением на собеседование. С пожелтевшими гифками в подписи и просроченным сургучом сертификатов. Дело давнее, пандемийное, так что, думаю, можно рассказать. Я один не смотрю на сроки NDA, когда подписываю? На всякий случай стоит обезличить и переделать. Тем более, что бонуса за продвижения бренда нет, а наказание всегда найдётся. Так что у нас тут анонимный клуб найма лиц похожих на архитекторов.

Вася Ложкин и его анонимный клуб.

Я, как всегда, токсично, поделюсь личным опытом и впечатлениями. «Правильных» ответов не будет. Будут мои. Если вы считаете, что есть правильная архитектура, то вам сюда пока рано. Я предупреждал про токсичность? Мой комплекс Наполеона подпитан положительным результатом интервью, ростом и треуголкой. Здесь могла бы быть ссылка на курсы. Или терапию. Или ставок на спорт, так как предложение я не принял, и глядя сейчас на новости и падающий курс их акций – я вижу будущее! На самом деле я видел более лучшее предложение другой компании, но это уже другая история.

Собеседование… Собеседование не меняется.

Для начала разберёмся с процессом. Начало стандартное – прикорм от рекрутера. Телефонный звонок с общим описанием компании и роли: в команду из 4-х Д'артаньянов требуется замена. Известная и стабильная компания, успешный В2В продукт, который еще не покрылся паутиной, но стал сыпаться и пыль оседает на прибыль. А ещё он не секси и его не хотят. Энтерпрайз – мир стариков (или правильно говорить альтернативно молодых?), а они все заглядываются на тех, что помоложе. Поэтому полным ходом идёт разработка некстгена, и видимо мушкетёров, раз один уже не выдержал. Так как в моём послужном списке уже есть пара насечек с переработкой легаси и миграцией в новый дивный мир, то можно примерить и службу королю. Тем более на старом месте мне порядком поднадоел серый кардинал.  Потом стандартное собеседование с нанимающим менеджером. Нет, про GOF не спрашивают. На подобные вопросы отвечает мое резюме, усы лапы и хвост. Говорили в основном про мой прошлый опыт: какие проблемы со мной сталкивались; когда последний раз я был на В2В рынке; технологии и процессы, которых я не знаю и, конечно, про мои ценности в неденежном эквиваленте. Все компании уникальны, но все хотят в фанги-манги. Если у вас это первый раз, то оденьтесь во всё чистое и подготовьтесь заранее. Выдумывать битвы с единорогами – не по моей части. Что знал, то и выдал. Знатоки советуют приукрашивать, но я не знаток. Мне потом там ещё может и работать придётся. Да и опыт подсказывает, что тот, кто не смог стать архитектором у стейкхолдеров,  может стать фулстеком у архитекторов, за тот же самый высокий прайс.

Внимание, черный ящик!

И вот основной этап – Panel Interview. Да, это когда вас выводят на панель и вам надо выделиться, чтоб из всех представленных работников отрасли выбрали именно вас. Это почти стандартная практика. В этой компании, однако довольно суровые обычаи. Происходило всё по зуму в 2 этапа. Начало утром. Комиссия – все те 4 архитектора, менеджер и HR. Все рассказывают пару слов о себе, о проекте и всякие мелочи. Собственно, своего рода culture fit тест. Вы видите тех, с кем непосредственно, может быть, будете работать, а они видят того, от кого ещё легко отделаться на данном этапе. А затем озвучивают задание: «Через несколько минут вам на ящик свалиться документик с диаграммкой старой архитектуры и инвайт на следующий зум через 4 часа.»

Задачи:

  1. Проанализировать текущую архитектуру и выявить основные бизнес-требования (дословно было: задачи, которые она решает).

  2. Расскажите о минусах и проблемах этого решения. Дайте оценку системы (assessment).

  3. Предложите свое решение, которое могло бы поддерживать новые требования (какие – никто не озвучивал, видимо они ищут очень умного человека).

  4. Сделайте презентацию (не более получаса) для комиссии.

  5. Будьте готовы защитить свое решение и ответить на дополнительные вопросы.

- Это не твоя архитектура. Это даже не моя архитектура. Это их архитектура.
- Это не твоя архитектура. Это даже не моя архитектура. Это их архитектура.

Описание к заданию:

Система получает записанный поток аудио/видео данных от оператора, который так же добавляет разные мета данные. Запись и данные сохраняются в неком репозитории (оранжевый блок), куда с небольшой периодичностью заглядывает процесс обработки (желтый блок). Это процесс поднимает разные обработчики (синенькие), которые анализируют данные и добавляют свои результаты к мете той же записи. Обработчик может работать несколько минут для генерации результата. Другой процесс – категоризация (зеленый блок), с меньшей частотой (но не реже чем раз в полчаса), заглядывает в репозиторий и применяет к мета-данным новой записи всякие правила. Запись может соответствовать (удовлетворять правила) нескольким категориям. При совпадении делается вызов на законфигурированный API.

 Диаграмма:

Legacy session processing: input stream->repository->processing engines->categorization->callout
Legacy session processing: input stream->repository->processing engines->categorization->callout

Ограничения:

Два блока остаются неизменными навечно – чёрный квадрат (рекордер) и конфигуратор Категоризаций. Один скорее всего завязан на железе, а другой, видимо, какой-то No-Code UI, который пользователь знает и любит. Так что эти два могильных камня – наша точка отсчёта. Во славу энтропии и второго закона термодинамики, конечно же!

То, что я помню из напутственной беседы, но отсутствует в файле задания: обработчики заканчивают в разное время и не всегда возвращают результат. Категоризация записи может происходить несколько раз, но последующий вызов апишки не должен дублироваться. То есть если на категорию А мы сделали вызов, а позже выяснилось, что у записи категория А и В, то надо дополнительно вызвать только В и, если есть, АВ. Всеми любимый exactly once.

Анализы.

Про компанию я, конечно, заранее почитал, но там только маркетинговые материалы. В общем было понятно, что предоставляют некие услуги по обработке сессий с операторами. Теперь стало понятно, что это не онлайн, а обработка записи после завершения потока. Что-то похоже на:

  • взять запись лекции об IT

  • прогнать её через анализаторы (активность участия, вовлечённость, продолжительность)

  • полученный анализ собрать в группы (IT, интересное, дистанционное обучение)

  • разослать по подпискам (интересное в IT)

Только совсем другое и не так.

Видимо много кастомизаций и расширений под клиента, что собственно стандарт в В2В. Есть платформа и набор инструментов (те самые обработчики). Есть BRMS (категоризатор) и точки интеграции (вызываемые API). Приложенная диаграмма была ещё хуже того, что я тут нарисовал (просто 5 блоков с подписями трёх этапов обработки). Скорее всего сильно не заморачивались и сделали набросок для интервью. Хотя, может у них просто всё плохо со старой документацией. Что добавляет тревоги. Потому что мой опыт чётко показывает, что клиенты не захотят переходить в новую систему, если там не будет всех старых функций. А значит пилить легаси придётся на живую и вслепую.

Деталей работы практически нет, так же, как и каких-то упоминаний технологий. Даже не понятно, что это за репозиторий. Это важно по двум причинам:

  • Любое допущение и предположение (assumptions) надо задокументировать. А так как вводные почти пустые, то додумывать надо много. Это будет обоснованием решений и поможет с дополнительными вопросами во время защиты проекта. Часть вопросов можно изначально отсечь, поставив свое дополнительное условие. Допустим, что исходные записи нельзя хранить больше 6 месяцев, а значит не надо задумываться о политиках сохранности данных, ретроактивном анализе, всяких графиках и репортах на годы назад. Тут вас обязательно спросят: «А почему именно 6 месяцев?». И значит, что? Необходимо предотвратить этот вопрос другим предположением: источник записи анонимен (нет возможности реализации «права быть забытым»), а мы ведь хотим работать в зоне GDPR. При анонимности любая запись становиться сразу же не активной (стандарт inactive user – 6 месяцев отсутствия активности). Чтоб хранить данные дольше (от года до двух), уже нужно предупреждать клиентов и обосновать необходимость перед регулятором. Тонкости переплетения законодательства и технологий – это как анекдот у своих (что-то вызывающее древние эмоции у Гарольда).

Hide the pain Harold meme
Hide the pain Harold meme
  • Несмотря на то, что мы на уровне создания иконостаса, придётся избегать имён своих бывших. Технологий. Тут ведь в чём драма – ищут архитектора в существующую команду на уже идущий проект. Последнее, чего хочет работодатель – нанять человека с не подходящим опытом, которого придётся долго и нудно обучать, вместо быстрой и эффективной эксплуатации. Не угадать технологии в их легаси так же опасно, как и не соответствовать тех. стеку нового проекта. Они не указали ничего в диаграмме, а значит стоит оперировать общими названиями. Типа не MSSQL, а on-prem Relational DB. Стоит подготовить пару примеров на каждую догадку и выбрать подходящий по мере раскрытия карт.

Учитывайте косвенные улики – если первые созвоны были в Teams, то стоит ожидать стек Microsoft. AWS - Chimes, Google – Meet. Cisco Webex используют не софтверные компании: «Астрологи объявляют неделю телекома: +1 к Java, +1 к *nix-ам». Чепуха, я не верю в астрологию! Я верю в рекрутеров. Поиск объявлений интересного нам работодателя сразу покажет вам спектр востребованных конкретно у него конкретных технологий. Сделать это стоит ещё до интервью, чтобы не разочароваться постфактум.

Dogma: scene with Desert Eagle
Dogma: scene with Desert Eagle

Обычно вам дают шаблон презентации, тем самым обозначая что и как хотят услышать. Не в этом случае. Так что презентация от себя, но цветовую гамму и логотипчик стяните с официального сайта компании. Это своего рода одёжка, и хотелось бы чтоб первое впечатление было обманчиво положительным.

Учитывайте время – на саму презентацию мне отвели полчаса. И надо полностью показать и рассказать ответы на все вопросы. Значит не стоит чересчур много вкладывать в детали. Скорее всего, вопросы по легаси не самые важные. Они просто хотят убедиться, что вы понимаете, чего они не хотят увидеть в новом продукте. А значит стоит распланировать время так, что:

Кстати, о времени. 4 часа – это всё что есть на проработку всех пунктов. Так что обмажтесь с ног до головы Agile и начните сразу думать о презентацию или какую-то онлайн-доску. У вас должен быть материал для демонстрации, когда бы часы не остановила нотификация о начале созвона. Детали можно проговорить, но тезисы и диаграмма – это база.

Остальное в следующей серии. Если проявите интерес. Хотя, кого я обманываю - мне самому интересно знать, чем всё закончится. Ну и графоманство.

Комментарии (5)


  1. vasyakrg
    30.06.2024 23:54
    +9

    Прикорм удался )) ждем второй части.


  1. csl
    30.06.2024 23:54
    +7

    Хабр - торт


  1. Iforgot
    30.06.2024 23:54
    +7

    да этож коллцентр )


  1. whoisking
    30.06.2024 23:54
    +1

    Не угадать технологии в их легаси так же опасно, как и не соответствовать тех. стеку нового проекта

    Обычно это находится за пару минут в вакансиях на позиции разработчиков от этой компании. Второй вариант - поискать профили разработчиков из этой компании и посмотреть их стек на линкединах/хабрах и др ресурсах.

    Да, в больших компаниях с этим будет посложнее, надо найти конкретный отдел, но тоже вполне может найтись подробная информация.


    1. XaBoK Автор
      30.06.2024 23:54

      Тут стоит помнить об ошибке выжевшего. Если вас позвали на собеседование, то уже за вас посмотрели и сравнили ваш стэк. Но я просматриваю вакансии, чтоб увидеть тренд. На интервью с архитекторами вам обычно пытаются продать новое-молодёжное. И раскажут про некстген, а не про скелеты в шкафу.

      Не все технологии одинаково приятны. Мне лично. И опыт в них не означает моё желание.

      Плюс тревожным звоночком может быть:

      • Вы единственный эксепрт в какой-то технологии в проекте. Надо будет много делать ревью и детальнее расписывать подход.

      • Компания не нанимает разработчиков, а хочет переучить своих. Менторинг людей, которых насильно переводят - то ещё удоволствие.

      • Слишком большой и широкий набор. Либо большая текучка, либо проблема со сроками.