Хабрахабр

Из точки А в точку Chief

Не все позиции, представленные на витрине Crossover однозначно понятны потенциальным партнёрам. И если вакансии C++ Software Engineer или Java Software Engineer вопросов не вызывают, то с Chief Software Architect всё не так и просто. Вообще, кто такие архитекторы ПО чёткого определения нет и от компании к компании их функции и описания разнятся. Сферический Software Architect (SA) в вакууме определяет архитектурный шаблон/парадигму, отвечает за разбиение на технические подсистемы/слои/компоненты/модули, выбирает средства исполнения и занимается разработкой технических сценариев. От места к месту функции могут добавляться или исчезать, но в целом работа Software Architect заключается именно в этом.

Хоть общие принципы и существуют, проекты обычно так сильно отличаются друг от друга, что из раза в раз Software Architect приходится заново изучать спецификации, используемые технологии и решения, определять подзадачи и искать способы их выполнения.

Если вам вдруг показалось, что к этому меню не хватает разве что щепотки менеджмента, то Chief Software Architect (или если сокращенно, то просто CA) — это для вас. Туда входят уже такие ингредиенты, как создание масштабируемых решений, контроль процесса разработки, контроль работы команды и персональная ответственность за результат в целом. Многим хотелось бы знать, откуда такие люди берутся. В случае Crossover: из вагонов метро и магазинов меховых изделий. По крайней мере, если судить по трудовым биографиям двух действующих Chief Software Architect компании Optiva Руслана Пещука и Евгения Конурбаева.

От случайной встречи в метро к BSS-системам

Руслан peshrus Пещук:

«В IT меня взяли даже не с улицы — прямо из метро, в 2005 году. По учёбе мне тогда нужно было изучить Java. И так, однажды студента, читающего в метро Кея Хорстманна, заметил технический директор Gemini Systems Вадим Антонов — и просто позвал на собеседование. Впрочем, к работе я оказался не готов. Но вместо «мы вам перезвоним» Вадим посоветовал мне литературу, чтобы я смог полноценно подготовиться. Именно с его подачи я узнал про шаблоны проектирования, j2ee и прочее — тогда ещё в теории, конечно. Пройти собеседование мне не удалось и со второй попытки. Хотя Вадим, безусловно, внёс немалый вклад в моё профессиональное становление и даже порекомендовал в Jensen technologies, где я и начал свой профессиональный путь на позиции Junior Java Developer.

После этого была работа в Actimind (там впервые познакомился с учётом рабочего времени, что вызывало немало стресса), потом в Documentum (проработал там 2 года, приобрел хороших друзей и решил найти интересную работу, потому что там было скучно). Так оказался в The Now Factory (интересные технические задачи, свобода принятия решения и, конечно, ответственность). Ушёл оттуда в поисках большего дохода, когда озаботился ипотекой, и в итоге оказался в Сбербанк Технологии.

Вот со Сбером не срослось: я понял, что это совершенно не моя компания. Устроился в NetCracker, которые тогда только открывали офис в Санкт-Петербурге. Там много отличных людей и я с радостью провёл в компании 4 года. Именно в NetCracker мой уровень ответственности стал заметно расти: всего через год я стал груплидом, начал проводить собеседования, а после занимался обучением мной же отобранных людей. Кроме офисной работы были командировки в Колумбию и Австралию, во время которых я занимался подготовкой документов по анализу и дизайну.

Это было круто, но временами очень стрессово, поэтому я принял решение уйти и немного передохнуть. Несколько месяцев я провел в статусе безработного, параллельно изучая вакансии, предлагающие удалённую работу. Вообще, когда ты десять лет пашешь, то без работы становится некомфортно, пусть и ипотека уже была к тому моменту выплачена. В итоге продержался я в своём «бессрочном отпуске» всего пару месяцев и нашёл удалённую работу через Crossover. Опасений, что я не смогу перестроиться на удалённый режим, не было. До этого я суммарно 7 лет отработал в распределённых командах. В итоге у меня всё получилось. Приступил я в июле 2017 года.

Я занял позицию Java Chief Software Architect и Product CA (отвечаю за качество продукта) в одной из компаний ESW Capital — Optiva. До покупки она называлась Redknee, если вам это что-то скажет.

Сейчас мы с командой дорабатываем BSS-систему для телеком-операторов. Она старая (разработана в конце 90-х/начале 2000-х), а на дворе уже 2018 — само собой, обновление проекту необходимо. Чем я занимаюсь во время работы? В основном — провожу ревью кода других разработчиков и обеспечиваю переход модулей системы на Gradle/Jenkins с проприетарной системы сборки».

От «тыжпрограммиста» к кластеризации биллинговых решений

Евгений evgeny_1987 Конурбаев:

«В IT я попал практически как в Нарнию, пробравшись сквозь шубы и пальто, когда в 2007 году устроился сисадмином в «Мир кожи и Меха». Это было такое типичное админство из нулевых в компании, не связанной с IT — в принципе то, что надо было для тогдашнего третьекурсника. Была там и поддержка серверов, и настройка пользовательских станций, и ремонт утюгов с заменой лампочек.

Что мне запомнилось сильнее всего, так это работа в женском коллективе. Там почему-то долго и упорно считали, что админ должен сидеть рядом с серверами и пускать в них слюни корни. Много времени ушло на то, чтобы убедить руководство в необходимости отдельной серверной. Но ещё больше времени и сил ушло на то, чтобы донести, что админу не нужно ходить ножками к каждому пользователю, что всё должно делаться удалённо. Не знаю, с чем это было связано, но всем прям хотелось, чтобы админ (то есть я или мой сменщик) именно физически находился у проблемной машины и разбирался на месте. В общем, хватило меня чуть больше, чем на год, и уже на четвёртом курсе моя карьера началась по-настоящему: сперва инженер-программист в другой организации (Orange System), где я вырос до заместителя руководителя отдела внедрения, затем ведущий инженер в «Газинформсервисе», где я вырос сперва до руководителя группы, а затем управлял еще разработкой новым продуктом компании. В этом качестве я уже заработал необходимый управленческий опыт. И даже ударившись в архитектуру ПО и перейдя в компанию TaskData на позицию архитектора (solution architect), я всё равно продолжил выполнять функцию тимлида и местами руководителя проектов.

Уже тогда я слышал о похожих предложениях Crossover, но решил, что уровня моего английского для работы в интернациональной команде не хватит. И всё же я держал в уме возможность удалённой работы в качестве Software Architect.

В TaskData я управлял небольшими командами. Набравшись опыта, который мне казался уже достаточным, я прошёл онлайн-тестирование на соответствие требованиям к Software Architect, с оплатой $30 в час — и прошёл успешно. Однако буквально в последнюю субботу перед началом предполагавшегося сотрудничества, «Кроссовер» как раз устраивал в Москве своё оффлайн-мероприятие — турнир, на который я и решил заглянуть. Задачи на турнире были алгоритмические, на исправление кода, тесты архитектурного плана, а также на знание английского языка. По результатам я прошёл в финал, а моё резюме — на маркетплейс «Кроссовера». И по итогам первого же пройденного интервью, мне предложили уже контракт Chief Software Architect со ставкой $50 в час. Так один нечаянный субботний ивент практически удвоил мои будущие заработки.

В первые три дня на новой позиции я только общался с другими специалистами, членами моей команды и теми, кого вообще смог найти в общем чате. Много читал, вникал в рабочий процесс. Только после первичной адаптации мне дали первую задачу, которая была своего рода дополнительной проверкой. Насколько мне известно, подобные задачи дают каждому новому CA. Не знаю, что было с теми, кто её не выполнил, так как она довольно сложная, но я справился.

В чём вообще принципиальное различие между SA и CA? С обычного SA меньше требуют, у него меньше ответственности и другие метрики, не 4, а 2 задачи в неделю, допустим.

Сейчас я являюсь частью feature-команды разработчиков, которые пилят конкретные фичи. Что это значит: приходят требования от заказчика, наши менеджеры-аналитики его декомпозируют на конкретные спецификации, а потом мы по ним занимаемся разработкой этих самых фич. Из последнего и серьёзного — разработка для сферы телекома.

Речь идёт о BSS clusterization (кластеризация биллингового решения). Задача следующая: оператор связи WOM Chile хочет расширить свою абонентскую базу до 10 млн человек, когда как имеющаяся система поддерживала только 5 млн абонентов. То есть мы должны были создать систему параллелизации трафика на серверы, которая обеспечит двукратный прирост производительности. На всё про всё у нас было всего 2 месяца, но мы справились, причём реализовали задачу таким образом, что система получилась масштабируемой. Теперь WOM Chile может расширять свою абонентскую базу за пределы ранее оговоренных 10 млн и это круто.

Впрочем, платят не за старания или красивые глаза. На мне лежит куча ответственности и я должен демонстрировать высокую эффективность, быстро принимать важные решения и находить пути из, казалось бы, безвыходных ситуаций. Сами подумайте: на разработку для WOM Chile у нас было всего два месяца, а справились мы даже лучше, чем того ожидал клиент. Как я считаю Chief Software Architect — это в первую очередь скорость и чёткая, качественная реализация».

Побочные эффекты

Если вы ждёте, что на технической позиции будете заниматься только проектированием систем и ревью кода — забудьте: в роли CA приходится вникать в бизнес-процессы, постоянно общаться с другими людьми и вполне себе дружить с коллегами.

«Для меня самые главные плюсы — то, что работа удалённая и разносторонняя. Хоть она и техническая по своей сути, но разнообразная: мне приходится проверять код и обсуждать его, поэтому я очень много общаюсь с коллегами. Здесь нет такой системы взаимодействия, как в офисе, но общение дружеское, люди помогают и поддерживают друг друга. Есть менеджер проекта, который определяет метрики, и если что-то на его взгляд пошло не так, мы это обсуждаем. Менеджер, кстати, из Бразилии, и у него прекрасный английский», — рассказывает Руслан. А здесь можно почитать его блог, описывающий в том числе и тонкости работы на текущей позиции.

А можно тоже попробовать?

Чтобы пройти свой путь от студента, получившего первое приглашение на собеседование в метро, до специалиста на контракте за $2000 в неделю, Руслану понадобилось 12 лет. У Евгения карьерный рост от «тыжпрограммиста» в меховом магазине с зарплатой 20 тысяч рублей (~555$ в месяц по тому курсу) до руководства разработкой в международной компании с доходом почти в 15 раз выше, занял десять лет. Возможно, среди читающих эти строки есть кто-то, кому это удастся ещё быстрее? А возможно, кто-то уже, наоборот, засиделся в своём мире кожи и меха — в любом случае, все окажутся в равных условиях на ближайшем отборочном турнире Chief Software Architect, который пройдёт уже в следующую субботу, 7 апреля, в Москве.

Хотите однажды иметь возможность так же прочитать историю о себе где-нибудь? Для этого надо просто пытаться. Важно не где человек начал, и даже не как долго он до этого дня шёл — а что конкретно он может, здесь и сейчас, и куда стремится!

Показать больше

Похожие публикации

Кнопка «Наверх»