Хронология моей карьеры
https://t.me/zhukovsd_it_mentorDelphi
На свою первую full-time работу разработчиком я устроился в 2009 году, на третьем курсе университета. В то время требования к Junior’ам были намного ниже чем сейчас. Даже не зная ООП, я получил работу, сделав тестовое задание и пройдя собеседование.
Моей ответственностью была разработка десктопных приложений под Windows - актуальное на то время направление. Преимуществом работы была автономность и свобода действий и время на рефакторинг и самообразование. Хочется освоить новое и внедрить в проект - пожалуйста, если в этом есть практический смысл для проекта.
За 4 года я вырос до крепкого Middle+, но к 2013 году актуальность десктоп разработки начала снижаться от года к году - мобильная и веб разработка постепенно вытесняли её с рынка. Многие новые проекты писались уже без десктопных клиентов, что увеличивало долю легаси в работе на Delphi.
На этом этапе я совершил свою первую серьёзную ошибку - судил о языках программирования с точки зрения “нравится/не нравится”, а так как веб и backend мне “не нравились”, я не горел желанием развиваться в этих направлениях. Мне казалось, что мой опыт в Delphi не будет применим к новым технологиям, и смена стека станет шагом назад в карьере и доходе.
Со временем я изменил своё мнение, но процесс подготовки к переходу на новый стек можно было начать на 1-2 года раньше.
Изучение нового
Из-за очевидной победы веба, карьерные планы на дистанции 5-10 лет требовали смены стека. Я выбрал fullstack на Java + Javascript. Фронтенд был намного проще, чем сейчас, поэтому fullstack разработчику хватало Bootstrap / jQuery. ReactJS только-только появился.
Подход к самообразованию - теория и пет проекты, тот же самый подход, что я предлагаю в роадмапе. Учёбу я совмещал со своей работой Delphi разработчиком, и в полуактивном режиме готовился к смене места работы.
Upwork и валютные удалёнки
Крымские события 2014 года и резкое ослабление курса рубля к доллару сделали западных заказчиков привлекательнее, рублевый эквивалент тысячи долларов удвоился. По примеру своего друга я зарегистрировался на американской фриланс бирже Upwork и начал искать заказы под свои навыки. На тот момент письменный английский позволял комфортно общаться текстом, разговорный - пришлось развивать в процессе. Где-то год ушёл на то, чтобы раскачать профиль, в течение которого я выполнил около 20 заказов (Delphi, C++, Java) при рейтинг 100% (все заказчики поставили максимальную оценку).
Профиль играет на Upwork роль резюме, и заказчики выбирают исполнителя проекта, смотря на опыт тех клиентов, кто уже поработал с данным фрилансером. Заказы делятся на 2 категории - с фиксированной оплатой и почасовой. Претендовать на долгосрочные проекты с почасовой оплатой со слабым профилем трудно, поэтому приходилось брать не очень интересные и выгодные проекты, в основном ради статистики профиля, совмещая их с основной работой Delphi разработчиком.
В какой-то момент я перешёл к поиску долгосрочного full-time контракта, и друг, которому удалось достичь этого раньше, свёл меня со своей компанией, где уже работал больше года. Я прособеседовался и устроился на новую первую full-time позицию Java разработчиком, уволившись с работы Delphi программистом, где в итоге проработал 7 лет.
По независящим от меня и моих непосредственных руководителей причинам (изменения в финансировании проекта), я проработал там всего полтора месяца, после чего у меня был выбор: вернуться на Upwork или искать работу на Delphi (или Java) в локальной компании.
Искать работу Java Middle’ом имея 6 недель коммерческого опыта весьма проблематично, поэтому я продолжал увеличивать это число небольшими заказами с Upwork, параллельно прокачивая свой профиль дальше.
Полтора месяца в 2016 - единственный период, когда у меня не было full-time работы, начиная с 2009 года. За это время я понял, что фриланс как основной источник дохода - не для меня. Много времени и сил уходит на поиск проектов и коммуникацию, занятость неравномерная, формат почасовой оплаты к разработке подходит крайне плохо. Сделал быстрее - заработал меньше, абсурд.
Тем не менее, отказываться от валютной удалёнки я не хотел, потому что ценил два основных плюса такой работы:
- Зарплата в среднем выше локального рынка (при пересчёте на рубли)
- Полная свобода передвижения
Важным моментом считаю ситуацию, когда в результате собеседования на Upwork мне предложили двухгодовой контракт со ставкой 25$/час (~4200$/месяц). Главный минус - проект. Информационная система страховой компании на Delphi, SQL. Финансовая подушка позволила поставить долгосрочные карьерные приоритеты выше краткосрочных финансовых и отказаться. В течение нескольких недель я нашёл долгосрочный контракт с австралийской компанией, который в итоге вырос в уже более чем пятилетние рабочие отношения.
Текущая работа
Долгосрочный контракт, который я упомянул выше, был трехмесячным проектом на Delphi, с перспективой будущих проектов в других, интересных мне областях - Java, Backend, мобильная разработка. Со временем я полностью изменил свой стек. Финансово не сразу, но получилось превзойти те 4200$ по двухгодовой контракту . С 2018 года моими основными языками являются Java, позднее Kotlin. От Upwork и формата почасовой оплаты мы отказались и стали работать напрямую.
Пытаясь не наступать на те же грабли замыкания на одном стеке, я успел поучаствовать в десктоп, мобильных, backend проектах на Delphi, C++, Java, PHP, Javascript, Kotlin.
Сами проекты - частично outsource, частично разработка собственных проектов компании. Моя текущая позиция - Architect, я отвечаю за проектирование и разработку проектов с нуля, управление командой. Не хочу загружать этот текст техническими деталями, подробности есть в резюме.
Подводя итоги, главные ошибки:
- Нежелание выходить из зоны комфорта Delphi и менять стек
- В первые 5 лет карьеры - оценка технологий с точки зрения “нравится/не нравится” вместо актуальности и долгосрочной пользы