Пробы на роль Архитектора: вступление

Я тут наткнулся на старую почту с приглашением на собеседование. С пожелтевшими гифками в подписи и просроченным сургучом сертификатов. Дело давнее, пандемийное, так что, думаю, можно рассказать. Я один не смотрю на сроки 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» /></p>

<p>Legacy session processing: input stream→repository→processing engines→categorization→callout</p>

<p>Ограничения: </p>

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

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

<p><strong>Анализы. </strong> </p>

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

<ul><li><p> взять запись лекции об IT</p></li><li><p>прогнать её через анализаторы (активность участия, вовлечённость, продолжительность)</p></li><li><p> полученный анализ собрать в группы (IT, интересное, дистанционное обучение)</p></li><li><p> разослать по подпискам (интересное в IT)</p></li></ul>

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

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

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

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

<p><img src=

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 и начните сразу думать о презентацию или какую-то онлайн-доску. У вас должен быть материал для демонстрации, когда бы часы не остановила нотификация о начале созвона. Детали можно проговорить, но тезисы и диаграмма — это база.

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

Habrahabr.ru прочитано 1444 раза