Карьера, планы (Ноябрь 2021)
Я решил попробовать публиковать (в узком кругу) свои мысли о моей IT карьере и смежные с этим темы. Цели:
- Делиться опытом, получать обратную связь
- Записывание своих мыслей помогает формализовать их, посмотреть на ситуацию под другим углом
Текущее состояние карьеры
Немного предыстории:
- 2007-2012 - IT ВУЗ
- 2009-2010 - Активное самообразование
- 2010-2017 - Delphi (и немного С++) Desktop (и немного Web/Backend) разработчик.
- 2016-2018 - Upwork (англоязычная фриланс биржа). Сначала параллельно работе Delphi разработчиком, потом фулл-тайм. Использовал этот этап как трамплин по переходу от Delphi к другим технологиям
- 2018-2021 - Фулл-тайм работа в Австралийской компании, которую я нашёл на Upwork. Начинал с Delphi, потом перешёл на Java/Web/DevOps
В данный момент меня устраивает место, где я работаю. Зарплата, коллеги, проекты - мои 3 основных критерия оценки компании, и я доволен по каждому из этих параметров.
Мне трудно придумать название своей должности, обязанности находятся на пересечении Architect / Fullstack Developer + DevOps / TeamLead.
Как Architect (архитектор) я занимаюсь проектированием систем. Работодатель даёт мне в работу идею нового проекта или идею в контексте уже существующего проекта, и моя задача - предложить варианты реализации, сделать прототип. На этой стадии идея либо отбрасывается как нерабочая, либо принимается решение браться за неё по-серьёзному, в таком случае я отвечаю за:
- Написание дизайн-документов (формализация идей по проектированию)
- Разбиение работы на части, формулирование списков задач для каждой части
Как Fullstack Developer + DevOps я выполняю задачи, которые ставит Architect - это либо я сам, либо кто-то другой, если технический лидер проекта - другой человек.
Под пространной формулировкой “Fullstack Developer + DevOps” я имею ввиду, что выполняю задачи из разных областей. Под “Fullstack” обычно понимается, что один разработчик разрабатывает и Backend, и клиентскую части проекта.
Клиентской частью может быть Web/Mobile/Desktop приложение. Сейчас из этих трёх я, как правило, имею дело с Web, в прошлом работал в том числе и с Mobile/Desktop.
DevOps - относительно новый подвид разработчиков. В задачи входит инфраструктура (сервера, облачные сервисы), автоматизация сборки/тестов/разворачивания и смежные с этим задачи.
TeamLead - постановка задач другим, помощь в выполнении, проверка результатов. Из трёх должностей (Architech/Developer/TeamLead) меньше всего опыта у меня пока в роли TeamLead.
Плюсы такой работы:
- Широкий кругозор
- Сам себе начальник, большинство технических задач придумываю и ставлю себе я сам
Минусы:
- Не так просто формализовать кто я есть - из-за большого количества технологий, с которым я работаю, каждую из них я знаю хуже, чем кто-то, работающий с этой технологией постоянно
Текущее положение было моей целью - рынок десктопных приложений сокращается, и Delphi, как инструмента для разработки таких решений - тоже. Современные десктопные приложения часто представляют из себя браузер, интерфейс построен внутри браузера. Примеры - VSCode, Discord. Классическое десктопное программирование на спаде - Delphi, C# (Windows Forms, WPF, UWP).
Элемент удачи присутствует - мне повезло, что работодатель в ответ на моё желание радикально сменить набор технологий, выдал мне проект, а не отправил искать новую работу.
Итого - предыдущая цель достигнута и пора ставить новую. Ниже я попробую формализовать её и набросать возможные пути достижения. Приоритеты:
- Увеличение дохода
- Оставаться в тонусе - продолжать углубляться в современные и актуальные технологии (контейнеры, облачные платформы), новые языки (Kotlin, Go)
- Участие в коммерчески успешных проектах на ролях выше, чем рядовой разработчик (ради впечатляющего резюме)
Какие я вижу варианты:
- Смена работы
- Свои проекты
- Дополнительный фриланс
- Менторство
- Создание контента
Смена работы
Смену работы в ближайшее рассматривать не буду, потому что есть договорённости с работодателем, и в рамках этих договорённостей меня всё устраивает.
Но года через 2 можно вернуться к этому вопросу. Мне нравится работать в маленьких командах, потому что я получаю возможность учиться и пробовать новое. Но это компромисс - я теряю то, что не взаимодействую с супер-опытными зубрами (15-20 лет опыта) и ничему у них не учусь. Если мне дадут разрабатывать проект с миллионом пользователей в минуту, я не смогу это сделать, потому что не знаю как, и не знаю никого, кто мог бы меня научить.
Для американских программистов дорога проторенная - Amazon, Microsoft, Google, Facebook.
У нас есть свои гиганты - Yandex, VK, Jetbrains, банки. Я намеренно их обхожу, потому что они платят меньше, чем небольшие компании из стран первого мира, согласные на удалёнщиков.
Возможно, в наших компаниях есть какие-то особо интересные позиции, о которых я не знаю. Открытые linkedin/headhunter профили могут помочь их рекрутёрам выйти на меня, если я им буду интересен.
А крупные западные компании удалёнщиков из России не рассматривают.
Попасть в западную компанию — лидера индустрии я могу только через переезд, и я не уверен, что я смогу туда трудоустроиться и что оно того стоит, даже если смогу.
Свои проекты
Хобби-проекты - обязательный и самый важный, на мой вкус, этап освоения новых навыков разработчиком. Но они редко доводятся до конца, и это нормально - обучение новому не обязательно подразумевает завершение и полировку.
Это хорошо работает, если цель своего проекта - самообразование. Если цель - заработок, всё меняется. Важнее всего становится быстрая (и не обязательно качественная) реализация идеи, и проверка того, является ли идея жизнеспособной.
Несколько раз я пытался сесть на два стула сразу - сделать качественный хобби проект, который можно было бы выложить на публичное обозрение (потенциально, ради заработка), и при этом научиться чему-то в процессе. Ни разу у меня не получилось это сделать. Слишком противоречивы два этих приоритета - монетизация и обучение.
В данный момент я завязал с идеей закончить недоделанные хобби проекты до состояния публичного релиза. Все знания из них я уже получил, а доведение до конца - скучная рутина, выполнение которой 99% в финансовом проиграет простой продаже этого же количества часов на фриланс бирже, а другого интереса (кроме финансового) в доделывании этих проектов у меня нет - знания получены.
Итого, ставку на свои проекты в контексте своих текущих целей я делать не готов.
Дополнительный фриланс
Дополнительным фрилансом может быть вторая парт-тайм работа, либо небольшие проекты. Профиль с высокими оценками на фриланс бирже у меня есть (Upwork), опыт такой деятельности - тоже, я одно время совмещал работу Delphi разработчиком и Upwork.
Но это серьёзная угроза здоровому балансу жизни и работы. Плюс, короткие проекты нечасто несут в себе дополнительную пользу в виде новых полезных знаний.
Просидев в Covid (2020 - начало 2021) 300+ рабочих дней подряд без отпуска и перерывов (не считая суббот, воскресений, а в гос.праздники я работаю), могу сказать, что не готов так рисковать. Усталость копится и превращается в груз, мешающий выполнять основные обязанности. Так как основная работа для меня является главным карьерным приоритетом, я не готов без крайней необходимости ставить свою работоспособность под угрозу ради быстрых денег от фриланса.
Менторство
Я помогаю новичкам учиться разработке и достигать уровня, необходимого для трудоустройства.
Что-то получается, некоторые уже работают. Я не занимаюсь передачей простых знаний, которые можно прочитать в книге или освоить на курсах - мне кажется что это не главное, и не самое сложное. Главное, что нужно новичкам, как мне кажется - совет в том что именно делать, постановка целей, выработка плана, обратная связь по их прогрессу.
Кроме этого, я могу помогать проектировать проекты, проводить ревью архитектуры или кода.
Я намерен продолжать заниматься этим на безвозмездной основе, в том числе искать новых людей (обычно через сарафанное радио).
Но это одно из тех направлений моей деятельности, которое напрашивается на монетизацию. И, используя разговорный английский, можно расширить горизонты.
На Upwork мелькают заказы по ключевым словам mentoring/consulting, плюс, есть отдельные платформы для менторства за деньги, например https://www.codementor.io.
Предполагаю (могу ошибаться), что такая деятельность является меньшей нагрузкой на баланс работы и жизни, чем вторая работа, фриланс, либо свой полноценный проект.
Трудно прогнозировать, но если менторство чем-то похоже на попроектную работу на фриланс бирже, то от желания до результата можно дойти за 6-12 месяцев активных действий.
Создание контента
Вариантов может быть много:
- Околоменторский контент в формате видео/текста
- Разработка небольших проектов на стримах. Но если там большой элемент изучения нового, не думаю, что будет интересно смотреть как я читаю документацию по полтора часа и туплю в новый материал. Такой формат контента не будет образовательным ни для кого, кроме меня
Думаю, что для моих вводных данных комбинация контент+самообразование (стримить свои хобби проекты) работать может, а комбинация контент+монетизация - вряд ли.
Другой вариант - участие в конференциях. Мне нравится эта идея, как способ нетворкинга, даже как слушатель, всегда было интересно лично (до ковида) пообщаться со спикерами и другими слушателями. Выступление на конференции не тянет на глобальную цель, но я постараюсь держать её в уме, и если в рабочих/хобби проектах будет что-то такое, что потянет на доклад - почему бы не попробовать.
Выводы, план действий
Лучшая идея для сиюминутных действий, что у меня есть - формализовать цели (данный текст является попыткой это сделать) и сделать действия, которые являются полезной подготовкой к последующим шагам.
Такой подготовкой я считаю работу над резюме и Linkedin профилем. Упомянутый выше https://www.codementor.io/ просит приложить резюме, которое у меня покрылось пылью. Последний раз я что-то делал в этом направлении, когда собеседовался в Яндекс после относительно успешного Яндекс.Капа (2019 год, вроде) и собеседовался в Альфа Банк летом 2020 после их аналогичного мероприятия (АльфаБаттл).
Мое резюме не обновлялось больше 3 лет, у меня отсутствуют или скрыты профили на LinkedIn, Headhunter.
Тонким моментом является то, что работодатель может неправильно понять мою активность в этом направлении. Перед любым обновлением своих профилей я дам ему знать о своей мотивации, и скажу что это не подготовка к поиску другого места работы.
Итоговый план действий:
- Обновить резюме
- Создать Linkedin профиль
- Освежить Upwork профиль (не уверен что нужно)
- Зарегистрироваться на codementor или аналогичных платформах
Первые 3 шага являются полезной профилактикой. Последний - первым шагом в направлении, в котором субъективно есть шансы на результат.