November 10, 2023

Путь разработчика. Вокруг света за 17 лет

Меня зовут Роман Максимов. Я - Frontend разработчик. Не смотря на то, что я прошел длинный путь от Desktop через Web, Backend и Fullstack, все же, я считаю, мое место во Frontend. Почему, об этом расскажу дальше.

Но, для начала стоит рассказать, что вообще меня привело в IT и в разработку, в частности. Дело было в самом начале 2000-х. Люди начали потихоньку отходить от дефолта 98-го, а опасливые шутки на счет миллениума и конца света притерлись и становились все реже. IT-индустрии в России тогда, можно считать, не существовало. Интернет был по карточкам, а персональный компьютер был в редкой семье. Но были суровые сисадмины и программисты, которые, в качестве национальной (и не только) забавы, любили поупражняться в словесных баталиях между собой. Знаю, звучит как бородатый стереотип, но так и было. А еще была группа любителей-энтузиастов, которые общались на просторах сети и иногда принимали участие в разных начинаниях и инициативах. Так уж сложилось, что я тоже входил в число тех самых любителей-энтузиастов. Как и почему я попал в этот круг, расскажу в следующий раз, а пока...

На дворе 2002 год, лето, мне 15. Я узнаю, что в нашем городке на севере Ленинградской области полугодом ранее открылся коммерческий учебный центр по обучению и подготовке IT-специалистов в нескольких направлениях: "Web-дизайн", "Системное администрирование" и "Прикладное программирование". Сейчас, конечно, следующему поколению трудно понять, ведь вокруг просто гора всевозможных курсов, практикумов и буткампов. А тогда, в 2002-м, не было ни курсов, ни факультетов в ВУЗах, ни, даже, профессий таких, как программист или Web-дизайнер (по документам, при трудоустройстве, как правило, все были инженерами). Этот центр, за полгода своего существования уже успел обрасти некоторой репутацией (это был филиал действующего образовательного центра в Санкт-Петербурге) и запустить сарафанное радио. Стоит ли говорить, что я не мог упустить такую возможность? Тем более, выбирать было не из чего, тогда мы все старались раздобыть заветные знания, искали более опытных товарищей и читали все профильные книги, которые удавалось получить, а их было не так уж и много.

2006-ой, вручение диплома об окончании курса. Держу в руках книжечку красного цвета. Внутрь вложен лист-выписка. В каждой строке, по каждой дисциплине - "отлично". Стою, оглядываюсь на прошедшие 4-е года. Пролетели на дыхании. Позже, вспоминая те дни, недели и месяцы, ни разу не возникло ни одного сомнения или сожаления по поводу потраченного времени. Пойти на обучение, вошло в список важнейших моих решений за всю жизнь.

К этому моменту я уже учился в университете и подрабатывал, где была возможность. Попал даже в банковскую сферу, тогда это было очень престижно, и, даже стал подниматься по карьерной лестнице. Правда, работа всегда была работой, не приносила никакого удовольствия, сил отнимала много и, в какой-то момент стала конфликтовать с учебой. Для 19-ти летнего подростка - не простое решение, оставить какую-никакую карьеру в пользу учебы, однако, нутром я чуял, что это место не мое. В том же году, по очередному счастливому случаю (тут я уже начал сомневаться в понятии "случайность"), мой одногруппник предложил попробовать себя в сфере Телеком. В нашем городе появился новый интернет-провайдер, и туда требовалась молодая кровь. Глазом моргнуть не успел, как пролетели 6 следующих лет. За эти годы я набрался бесценного практического опыта, все узнал о сетях, строил их, потом проектировал, потом проектировал и строил, ну в общем вы поняли. Именно тут я и познакомился с Web-разработкой. Desktop приложения писать меня более-менее научили, а вот Web - совершенно иная история. Справедливости ради, надо отметить, что в те годы не было понятий Backend и Frontend. Приложения были изоморфными, никто не пытался это как-то разделять, да и разделять особо нечего было. Технологии были не такие, как сейчас. Никаких новомодных JS-фреймворков, только пара библиотек вроде jQuery. Однако, потребность в разработке была, у компании был ряд ресурсов (биллинговая систем, баг-трекер для тех. поддержки и некоторые другие), которые надо было поддерживать, что и легло, в том числе, на мои плечи. И я, надо сказать, охотно этим занимался. В какой-то момент мне даже сменили официальную должность на "инженер-программист" (это была единственная, более-менее подходящая под мои функции должность из всех представленных, на тот момент, трудовым законодательством).

Все шло своим чередом, однако, рано или поздно текущая позиция должна была стать мне мала, это я понял уже потом. Будучи представителем группы любителей-энтузиастов, в моем кругу общения было много людей из сообщества, таких же, как я. Ничего удивительного в том, что в какой-то момент ко мне обратились знакомые с предложением в одну не очень известную московскую компанию. Даже не смущала география, готовы были работать в удаленном формате. Уходить с текущего места было крайне тяжело, я отдал компании 6 лет, на тот момент, еще не очень продолжительной жизни, и прошел с ней путь практически от зародыша, до становления самым популярным местным оператором. Однако, мозгом я понимал, что я - программист и мне придется рано или поздно перешагнуть порог и двинуться дальше, в сторону своего профессионального места.

С этого момента и по сей день вся моя работа стала строиться по принципу Home-office. Тут стоит уточнить, отношение к удаленной работе в те времена было крайне неоднозначным. Услышав, что ты работаешь удаленно, спектр эмоций был от крайнего удивления и легкого презрения (работа на дому не редко ассоциируется с чем-то весьма посредственным), до зависти (говорили, у тебя работа мечты). Я работал в офисе много лет, потом перешел на удаленный формат. Мне было с чем сравнивать и я совершенно точно знал и знаю, что моя эффективность, как разработчика куда выше именно в удаленном режиме. И эту позицию мне часто приходилось защищать. У меня всегда был только один козырь в рукаве, это результат, который выдавал, другого способа доказать свою эффективность просто не было. Я не мог просто отсидеть за столом 8 часов и уйти домой со спокойной душой, это привилегия офисных работников (тут я не хочу никого оскорбить, я уважаю людей, которые предпочитают офисный формат, и не противник этого, каждый решает для себя сам, но, откровенно говоря, ряд бонусов у "онсайт" сотрудников есть). К тому же, долгое время считалось, что зарплата удаленного сотрудника не может больше, и, даже, должна быть меньше офисного, что крайне не логично. Ведь на удаленного сотрудника не надо рассчитывать офисное место, технику, амортизацию, питание и, даже, иногда налоги (такие сотрудники, часто, не оформлялись в штат).

Та новая компания дала мне много интересного опыта, с широким спектром. Тут я перепробовал гору языков и технологий от Shell до C++. Но, как оказалось, это было только начало пути. Дальше было много других отечественных компаний и проектов, больших и маленьких, с разной формой организации и подходами (про скрам и другие методологии тогда еще мало кто слышал). Я прошел через популярные тогда, и забытые сейчас, фреймворки и библиотеки. В их числе были Backbone, ExtJs, CoffeeScript и много-много других.

В 2015-м я попал в небольшую Бразильскую компанию на должность Web-разработчика. Сейчас это принято называть Fullstack, но тогда это понятия еще не было в большой моде. Я занимался Java (тогда я уже неплохо ей владел) и здесь же я впервые попробовал свои силы AngularJS v1 (теория мне была знакома, но на коммерческом проекте применять еще не доводилось). Так начался мой путь на зарубежный рынок разработки.

Годом позже, в 2016-м я получил возможность попробовать на практике React v0.13 в одном Нидерландском проекте. Надо сказать, я сразу отметил отличие от AngularJS, и это меня сильно подкупило. С тех пор React - мой любимый фреймворк (да, я в курсе, что формально, это библиотека, а не фреймворк).

Следующие пару лет были насыщенными. Израиль, США, Франция, с каждым проектом мой кругозор становился все шире, опыт - больше, скиллы - глубже. Однажды, совершенно неожиданно, в мессенджер мне постучал очередной рекрутер. Как говориться, ничто не предвещало. Оказалось, рекрутер занимается штучными заказами на территории РФ и бывшего СНГ, среди самых крупных компаний мира. И на этот раз, заказчик - Google. Но, вот беда, поиски идут уже несколько недель, и пока ни один кандидат не смог пройти скрининг. Как именно рекрутер вышла на меня, но моё резюме у неё уже было и мне предложили попробовать свои силы. Дальше была серия интервью, несколько тестовых заданий и беседы с представителем заказчика. Все этапы заняли довольно много времени, больше месяца. Потом - ожидание. Оказалось, по условиям заказчика, на позицию должно быть отобрано несколько кандидатов, подходящих по всем техническим параметрам, из которых заказчик выберет одного. Поскольку я был единственным таким кандидатом, позиция закрыта быть не могла, не выполнялось условие о конкурентной борьбе. Прошло еще два-три месяца, я уже начал забывать про этот челендж. Однако, история на этом не закончилась. Рекрутер свое дело знала, нашелся второй достойный кандидат. Хоть заказчик и хотел, по возможности, иметь больше хотя бы 3-4 соискателя, согласился на двоих. Наступил этап лотереи, заказчик должен был выбрать одного. Но, теперь, это оказалось непростым испытанием для самого заказчика. Наконец, решение было принято. Заказчик не смог отказать ни от одного из нас и взял обоих.

Одним из обязательных условий был приезд в США для онбординга в штаб-квартире Google и работы в первое время, потом, получив все доступы, пропуски, технику и пройдя все корпоративные тренинги можно было вернуться к удаленному формату. Надо сказать, мне совершенно не импонировала идея лететь через пол земного шара для онбординга и работы онсайт, я ведь столько лет боролся за свое право на "удаленку", это стало причиной глубоких размышлений. Очевидно, это не могло стать причиной для отказа с моей стороны, но, понадобилось время, чтобы убедить себя в этом. Дальше - оффер, документы, виза в Штаты, перелет через Атлантику, работа в Кремниевой долине певрое время, перелет обратно и работа удаленно. Этот американский трип заслуживает отдельной статьи, расскажу как-нибудь в другой раз. Отмечу только, что он стал очередным ключевым событием в моей карьере. Ничто так не придает уверенности в своих силах, как признание тебя экспертом в крупнейшем мировом IT-гиганте. В активной фазе здесь я провел следующие три года. Хоть позиция и функции у меня были Senior Frontend + Frontend Architect, пришлось пройти путь от newbie (новичок, в корпоративной терминологии), до опытного сотрудника. Здесь я приобрел массу опыта, еще больше расширил свой кругозор, открыл для себя новые взгляды на подход к разработке в целом, тут же мне пришлось вернуться и к Angular, на этот раз к свежим версиям, такая уж тут особенность, корпорация ревностно борется за использование только собственных продуктов. Для внутренних продуктов можно было использовать любые технологии, тут React-у я не изменял, но для публичных, фактически, только Angular или Polymer. Что ж, надо так надо. Должен отметить, Angular стал намного лучше, но, все же, он не смог заставить меня изменить свои убеждения, React я, по прежнему, люблю больше.

Долго ли, коротко ли, но "вау"-эффект, в какой-то момент, стал сходить на нет, начало приходить осознание, что без релокации в Штаты, двинуться дальше по карьерной лестнице в корпорации просто невозможно. Это привилегия только штатных сотрудников с Грин-картой (разрешение на работу в США). Контрактники, такие как я, имели мало возможностей и все они, как правило, связаны со сменой места жительства, а этого я никогда не планировал. Вскоре, мировая политическая обстановка вспыхнула пожаром, и всякая работа с территории РФ оказалась заблокирована. И снова непростой выбор, уезжать или оставаться. Я решил не изменять себе, и остался на родине. Увольнять меня начальство, по собственной инициативе не планировало, поэтому, формально, я все еще числюсь в корпорации, хотя фактически, не могу вести рабочую деятельность, пока глобальная обстановка не изменится или я не решусь на переезд. Для себя же, я решил, что это пройденный этап. Может быть даже и хорошо, что так вышло. Я стал испытывать некоторый дискомфорт от столкновения со стеклянным потолком, но не уверен, смог бы его пробить или добровольно уйти. А это было необходимо, сейчас я это четко вижу.

Полученный мною, за прошедшие годы, опыт - бесценен. Оглядываясь назад, я не хотел бы ничего изменить. Сейчас я - независимый эксперт, участвую в новых проектах. Мой взгляд на вещи изменился, я знаю свой профиль, в чем я силен, в чем - нет, при выборе нового проекта могу заранее понять, подходит ли он мне, и, что не менее важно, буду ли я там полезен, только соблюдение обоих условий может привести к взаимовыгодному сотрудничеству.

А еще, за все эти годы, накопилось просто громадное количество проф. информации в моей голове, которая пытается найти выход разными способами. Что-то выливается в новые начинания, стартапы и open-srouce. Время от времени меня просят помочь с менторством или оценкой кандидатов. Вот и этот блог я решил завести, чтобы поделиться своим опытом со всеми, кому он интересен.

Мои телеграмм-каналы:

EN - https://t.me/frontend_almanac
RU - https://t.me/frontend_almanac_ru

English version: https://blog.frontend-almanac.com/K8zEy6V1SQI