Я тут наткнулся на старую почту с приглашением на собеседование. С пожелтевшими гифками в подписи и просроченным сургучом сертификатов. Дело давнее, пандемийное, так что, думаю, можно рассказать. Я один не смотрю на сроки NDA, когда подписываю? На всякий случай стоит обезличить и переделать. Тем более, что бонуса за продвижения бренда нет, а наказание всегда найдётся. Так что у нас тут анонимный клуб найма лиц похожих на архитекторов.
Я, как всегда, токсично, поделюсь личным опытом и впечатлениями. «Правильных» ответов не будет. Будут мои. Если вы считаете, что есть правильная архитектура, то вам сюда пока рано. Я предупреждал про токсичность? Мой комплекс Наполеона подпитан положительным результатом интервью, ростом и треуголкой. Здесь могла бы быть ссылка на курсы. Или терапию. Или ставок на спорт, так как предложение я не принял, и глядя сейчас на новости и падающий курс их акций – я вижу будущее! На самом деле я видел более лучшее предложение другой компании, но это уже другая история.
Собеседование… Собеседование не меняется.
Для начала разберёмся с процессом. Начало стандартное – прикорм от рекрутера. Телефонный звонок с общим описанием компании и роли: в команду из 4-х Д'артаньянов требуется замена. Известная и стабильная компания, успешный В2В продукт, который еще не покрылся паутиной, но стал сыпаться и пыль оседает на прибыль. А ещё он не секси и его не хотят. Энтерпрайз – мир стариков (или правильно говорить альтернативно молодых?), а они все заглядываются на тех, что помоложе. Поэтому полным ходом идёт разработка некстгена, и видимо мушкетёров, раз один уже не выдержал. Так как в моём послужном списке уже есть пара насечек с переработкой легаси и миграцией в новый дивный мир, то можно примерить и службу королю. Тем более на старом месте мне порядком поднадоел серый кардинал. Потом стандартное собеседование с нанимающим менеджером. Нет, про GOF не спрашивают. На подобные вопросы отвечает мое резюме, усы лапы и хвост. Говорили в основном про мой прошлый опыт: какие проблемы со мной сталкивались; когда последний раз я был на В2В рынке; технологии и процессы, которых я не знаю и, конечно, про мои ценности в неденежном эквиваленте. Все компании уникальны, но все хотят в фанги-манги. Если у вас это первый раз, то оденьтесь во всё чистое и подготовьтесь заранее. Выдумывать битвы с единорогами – не по моей части. Что знал, то и выдал. Знатоки советуют приукрашивать, но я не знаток. Мне потом там ещё может и работать придётся. Да и опыт подсказывает, что тот, кто не смог стать архитектором у стейкхолдеров, может стать фулстеком у архитекторов, за тот же самый высокий прайс.
Внимание, черный ящик!
И вот основной этап – Panel Interview. Да, это когда вас выводят на панель и вам надо выделиться, чтоб из всех представленных работников отрасли выбрали именно вас. Это почти стандартная практика. В этой компании, однако довольно суровые обычаи. Происходило всё по зуму в 2 этапа. Начало утром. Комиссия – все те 4 архитектора, менеджер и HR. Все рассказывают пару слов о себе, о проекте и всякие мелочи. Собственно, своего рода culture fit тест. Вы видите тех, с кем непосредственно, может быть, будете работать, а они видят того, от кого ещё легко отделаться на данном этапе. А затем озвучивают задание: «Через несколько минут вам на ящик свалиться документик с диаграммкой старой архитектуры и инвайт на следующий зум через 4 часа.»
Задачи:
Проанализировать текущую архитектуру и выявить основные бизнес-требования (дословно было: задачи, которые она решает).
Расскажите о минусах и проблемах этого решения. Дайте оценку системы (assessment).
Предложите свое решение, которое могло бы поддерживать новые требования (какие – никто не озвучивал, видимо они ищут очень умного человека).
Сделайте презентацию (не более получаса) для комиссии.
Будьте готовы защитить свое решение и ответить на дополнительные вопросы.
Описание к заданию:
Система получает записанный поток аудио/видео данных от оператора, который так же добавляет разные мета данные. Запись и данные сохраняются в неком репозитории (оранжевый блок), куда с небольшой периодичностью заглядывает процесс обработки (желтый блок). Это процесс поднимает разные обработчики (синенькие), которые анализируют данные и добавляют свои результаты к мете той же записи. Обработчик может работать несколько минут для генерации результата. Другой процесс – категоризация (зеленый блок), с меньшей частотой (но не реже чем раз в полчаса), заглядывает в репозиторий и применяет к мета-данным новой записи всякие правила. Запись может соответствовать (удовлетворять правила) нескольким категориям. При совпадении делается вызов на законфигурированный API.
Диаграмма:
Ограничения:
Два блока остаются неизменными навечно – чёрный квадрат (рекордер) и конфигуратор Категоризаций. Один скорее всего завязан на железе, а другой, видимо, какой-то No-Code UI, который пользователь знает и любит. Так что эти два могильных камня – наша точка отсчёта. Во славу энтропии и второго закона термодинамики, конечно же!
То, что я помню из напутственной беседы, но отсутствует в файле задания: обработчики заканчивают в разное время и не всегда возвращают результат. Категоризация записи может происходить несколько раз, но последующий вызов апишки не должен дублироваться. То есть если на категорию А мы сделали вызов, а позже выяснилось, что у записи категория А и В, то надо дополнительно вызвать только В и, если есть, АВ. Всеми любимый exactly once.
Анализы.
Про компанию я, конечно, заранее почитал, но там только маркетинговые материалы. В общем было понятно, что предоставляют некие услуги по обработке сессий с операторами. Теперь стало понятно, что это не онлайн, а обработка записи после завершения потока. Что-то похоже на:
взять запись лекции об IT
прогнать её через анализаторы (активность участия, вовлечённость, продолжительность)
полученный анализ собрать в группы (IT, интересное, дистанционное обучение)
разослать по подпискам (интересное в IT)
Только совсем другое и не так.
Видимо много кастомизаций и расширений под клиента, что собственно стандарт в В2В. Есть платформа и набор инструментов (те самые обработчики). Есть BRMS (категоризатор) и точки интеграции (вызываемые API). Приложенная диаграмма была ещё хуже того, что я тут нарисовал (просто 5 блоков с подписями трёх этапов обработки). Скорее всего сильно не заморачивались и сделали набросок для интервью. Хотя, может у них просто всё плохо со старой документацией. Что добавляет тревоги. Потому что мой опыт чётко показывает, что клиенты не захотят переходить в новую систему, если там не будет всех старых функций. А значит пилить легаси придётся на живую и вслепую.
Деталей работы практически нет, так же, как и каких-то упоминаний технологий. Даже не понятно, что это за репозиторий. Это важно по двум причинам:
Любое допущение и предположение (assumptions) надо задокументировать. А так как вводные почти пустые, то додумывать надо много. Это будет обоснованием решений и поможет с дополнительными вопросами во время защиты проекта. Часть вопросов можно изначально отсечь, поставив свое дополнительное условие. Допустим, что исходные записи нельзя хранить больше 6 месяцев, а значит не надо задумываться о политиках сохранности данных, ретроактивном анализе, всяких графиках и репортах на годы назад. Тут вас обязательно спросят: «А почему именно 6 месяцев?». И значит, что? Необходимо предотвратить этот вопрос другим предположением: источник записи анонимен (нет возможности реализации «права быть забытым»), а мы ведь хотим работать в зоне GDPR. При анонимности любая запись становиться сразу же не активной (стандарт inactive user – 6 месяцев отсутствия активности). Чтоб хранить данные дольше (от года до двух), уже нужно предупреждать клиентов и обосновать необходимость перед регулятором. Тонкости переплетения законодательства и технологий – это как анекдот у своих (что-то вызывающее древние эмоции у Гарольда).
Несмотря на то, что мы на уровне создания иконостаса, придётся избегать имён своих бывших. Технологий. Тут ведь в чём драма – ищут архитектора в существующую команду на уже идущий проект. Последнее, чего хочет работодатель – нанять человека с не подходящим опытом, которого придётся долго и нудно обучать, вместо быстрой и эффективной эксплуатации. Не угадать технологии в их легаси так же опасно, как и не соответствовать тех. стеку нового проекта. Они не указали ничего в диаграмме, а значит стоит оперировать общими названиями. Типа не MSSQL, а on-prem Relational DB. Стоит подготовить пару примеров на каждую догадку и выбрать подходящий по мере раскрытия карт.
Учитывайте косвенные улики – если первые созвоны были в Teams, то стоит ожидать стек Microsoft. AWS - Chimes, Google – Meet. Cisco Webex используют не софтверные компании: «Астрологи объявляют неделю телекома: +1 к Java, +1 к *nix-ам». Чепуха, я не верю в астрологию! Я верю в рекрутеров. Поиск объявлений интересного нам работодателя сразу покажет вам спектр востребованных конкретно у него конкретных технологий. Сделать это стоит ещё до интервью, чтобы не разочароваться постфактум.
Обычно вам дают шаблон презентации, тем самым обозначая что и как хотят услышать. Не в этом случае. Так что презентация от себя, но цветовую гамму и логотипчик стяните с официального сайта компании. Это своего рода одёжка, и хотелось бы чтоб первое впечатление было обманчиво положительным.
Учитывайте время – на саму презентацию мне отвели полчаса. И надо полностью показать и рассказать ответы на все вопросы. Значит не стоит чересчур много вкладывать в детали. Скорее всего, вопросы по легаси не самые важные. Они просто хотят убедиться, что вы понимаете, чего они не хотят увидеть в новом продукте. А значит стоит распланировать время так, что:
1/3 – ответ на первый вопрос, так как тут база для пункта номер 3
1/6 – на второй вопрос, так как в 3 стоит указать, чего вы так «удачно» не допустили
2/4 – на 3, раз это явно ответ на главный вопрос жизни, вселенной и всего такого
Кстати, о времени. 4 часа – это всё что есть на проработку всех пунктов. Так что обмажтесь с ног до головы Agile и начните сразу думать о презентацию или какую-то онлайн-доску. У вас должен быть материал для демонстрации, когда бы часы не остановила нотификация о начале созвона. Детали можно проговорить, но тезисы и диаграмма – это база.
Остальное в следующей серии. В этой точке у вас появился отличный шанс решить задание самостоятельно. Сравнивать свой ответ с моим 1 к 1 имеет мало смыла, как и сравнивать разные сыры по количеству дырок. А вот посмотеть учли вы всё то, на чем сфокусировался я, похоже на симуляцию собеседования. Мои ответы - это ваши вопросы.
Приглашение на собеседование и задание | |
Ответ на вопросы по легаси | |
Новый дизайн и финал |