Как .NET Developer ушел с фриланса на $500 в месяц и за три года дорос до $4000 в аутсорсинге

Kate

Administrator
Команда форума
У меня довольно нетипичный карьерный путь: я пришел в IT из другой специальности, потом с нулевыми знаниями взялся за разработку своего продукта и только после этого начал работать в IT-компаниях. В результате за три года коммерческой разработки вырос с Junior .NET Developer с зарплатой $500 до Lead Full Stack Developer со ставкой $4000.

В этой статье расскажу, как мне дважды удалось повысить зарплату вдвое и как pet-проекты и «домашняя работа» помогают нагнать недостающий опыт.

920-v.jpg
Иллюстрация Каталины Маевской

📌Первые шаги в программировании​

Период: 2013-2017
Зарплата: $1000-1500
Должность: разработчик собственного продукта, фрилансер

До 2013 года я занимался продвижениями в соцсетях, и однажды для работы понадобился софт, которого не было на рынке. У меня было два варианта: заказать его в IT-компании и потратить на это от $1000 или попробовать написать самому. Я выбрал второе: решил, что если все получится, то смогу продать копии коллегам и заработать.

Мне нужен был десктопный софт, поэтому остановился на WinForm как на самом простом варианте. Скачал с интернета руководство по C#, с примерами и картинками. Разделил задачу на части и стал гуглить, как делать отдельные куски. Также нашел на форуме ментора. Он не обучал меня технологиям с нуля, просто выдал пустой шаблон десктопного приложения с двумя кнопками и отвечал на некоторые вопросы.

Программировать было интересно, я чувствовал кураж. Принцип learning by doing сработал отлично. И вот спустя бессонный месяц мое первое творение на .NET WinForms было готово. Изначальный план сработал: софтом заинтересовались коллеги. Потом его стали обсуждать на тематических форумах, и о продукте узнал более широкий круг людей. Я нигде не размещал объявления о том, что пишу что-то на заказ, но ко мне потянулись люди с похожими «болями» и запросами. Софт служил мне резюме и рекламой, и я стал брать заказы на фрилансе.

Так я поменял работу и занялся IT-фрилансом и даже, можно сказать, бизнесом. В то время зарабатывал $1000-1500 в месяц на заказах и продажах своего софта.

Вывод. Люди, которые нуждаются в автоматизации рутины, есть везде. Постарайтесь их найти. Вам будет опыт и деньги, им — польза.

📌Из фриланса в IT-компанию​

Период: 2017-2018
Зарплата: $500
Должность: Junior .NET Developer

Работа позволяла легко брать отпуск в любое время, но развитие навыков стояло на месте, как и заработок. В то время на рынке был тренд развивать продукты, подобные моему, как маркетплейс с плагинами и комьюнити. Мне не хватало для этого знаний.

Через знакомых я узнал, что Senior-разработчики в IT-компаниях сейчас зарабатывают около $3000. Подумал, что могу перетерпеть первый год снижение зарплаты ради опыта и больших перспектив в будущем. План был такой: начать с $500 и потом каждые полгода накидывать при ревью еще по 500$. Я откликнулся на десятки вакансий на Junior .NET Developer, повсюду рассылал резюме. А в ответ тишина. Меня не пригласили ни на одно техническое интервью за 6 месяцев!

Наконец, на Джине небольшая аутсорсинговая IT-компания предложила мне сделать тестовое задание. Нужно было написать небольшое ASP.NET MVC приложение по подсчету данных в таблице. Пришлось быстро осваивать и jQuery.

На разработку приложения ушло меньше недели, помог мой любимый Metanit.com. После тестового меня пригласили на собеседование. Интервью включало в себя базовое знание .NET и алгоритмическую задачу. Как это часто бывает у новичков, алгоритм я решил «в лоб» брутфорсом. Теория была легкой, интервьюеры помогали. В результате получил оффер на $500, которые и просил. Так начались корпоративные игры.

Вывод. Тестовое задание — это полезно для новичка. Оно дает возможность лучше понять, что от тебя потребуется на работе, а также получить ревью кода и узнать свои ошибки. Например, мне дали обратную связь о стиле кода и том, что я не совсем верно понял задачу.

📌Первое повышение х2​

Период: 2018-2019
Зарплата: $1600
Должность: .NET Developer

Прошло 9 месяцев. Я успешно нашел себе ментора в компании и уже работал на уровне с Middle-программистами из команды. Без трудностей в одиночку разрабатывал сервисы и небольшие фичи, рефакторил запросы к базе данных. Работать было интересно, а еще интересней — смотреть чужой код и анализировать его. Так как одной зарплаты Junior’а мне для жизни не хватало, в тот период я все еще брал заказы у прежних клиентов на фрилансе. И дополнительно работал по 20-30 часов в неделю. Это давало мне еще примерно $500 в месяц.

Наконец, компания, согласно своей внутренней политике, пригласила меня на ревью зарплаты. Предложили только +$200. Мне показалось, что это мало. Я сказал, что хочу +$500, но мне отказали: «Мы так намного не повышаем».

Я решил не ждать у моря погоды и попробовать свои силы на рынке труда. Неделю повторял теорию из разряда «самые частые вопросы на интервью». Было не сложно, все это я уже знал из практики. Затем откликнулся на вакансию, попросил $1500. Через несколько дней прошел собеседование с проектным менеджером, потом с разработчиком. Техническое интервью было простым: охватывало базовые фичи C# и ASP.NET, немного таски и потоки. В итоге мне дали оффер.

На следующий день я сказал нашему СЕО, что ухожу. И получил контроффер с бонусными $100. Уходить не хотелось, коллектив и менеджмент в этой компании был хороший. Да и отпускать меня не спешили. Поэтому принял решение остаться в этой компании, теперь уже с зарплатой $1600.

Вывод. По моему опыту, серьезное повышение можно получить в двух случаях. Первый — вы bus factor и не стесняетесь этим пользоваться. Второй — контроффер или переход в другую компанию. Становиться bus factor’ом я не хотел, ведь это сродни шантажу. Поэтому пошел по второму пути. И мои ощущения насчет «перфоманса» с контроффером не подвели, я явно заслуживал этих денег.

📌Full Stack, новая компания и снова повышение х2​

Период: 2019-2020
Зарплата: $3000
Должность: Full Stack Developer

Прошло 8 месяцев. Заказы со стороны я больше не брал: сейчас они были уже не интересны. Но опыт надо было прокачивать, и я делал pet-проекты, на которых отрабатывал интересные мне технологии. Это все занимало дополнительные 10-15 часов в неделю.Однажды к нам в компанию зашел плохой проект: с кучей легаси и не по той технологии, которую обещали. Вариантов «слиться», то есть заняться другим проектом, не было.

Двухдневная подготовка, и я вновь на Джине. Решил идти сразу в Full Stack, так как в последнее время часто разрабатывал фичи целиком и мне комфортно работать сразу и на Back-end, и на Front-end. У меня была серия из шести собеседований по Full Stack .NET в разных компаниях. Первые два я благополучно завалил, поскольку даже не знал, что будут спрашивать. Но зато запомнил вопросы и ответы, на обоих интервью они повторялись, как по одной методичке. Ничего «сверху» я не учил, и на шестом интервью некоторые вопросы даже не давал закончить: по первым словам предугадывал, что хотят спросить, и давал ответ.

В результате получил четыре оффера, между ними и развернул торги: прямо говорил рекрутерам, что выбираю из нескольких предложений. Изначально хотел $2500, потом на одном интервью сказал, что без шансов, если предложите меньше $2800. В итоге получил $3000 и благополучно сменил работу, присоединившись к команде большой аутсорсинговой компании.

Вывод. Чем больше интервью вы уже прошли, тем проще будет на следующих, ведь вопросы в основном повторяются. Сейчас я сам собеседую разработчиков и понимаю, что за один-два часа невозможно «погонять» человека по всему Full Stack. Ограниченность во времени и порождает однообразность в вопросах, интервьюеры стараются спросить что-то общее вроде «Как работают потоки?».

Для собеседований, где я выступаю в роли интервьюера, я сформировал свой список вопросов. Там есть и теория, и немного кодинга, в частности по интересным примерам замыкания.

📌Senior-позиция с полутора годами коммерческого опыта​

Период: 2020
Зарплата: $3500
Должность: Senior Full Stack Developer

Следующие месяцы прошли продуктивно. Я старался идти на шаг вперед продукта: прорабатывал дома на pet-проекте будущие фичи или библиотеки реального проекта. Таким образом старался компенсировать нехватку знаний, ведь у меня было всего полтора года коммерческого опыта, а мне надо было равняться на коллег с опытом вдвое или втрое больше моего.

Все шло хорошо, Delivery-менеджеры были довольны. К тому же в этой компании, как и в прошлой, я плотно помогал PR-отделу. Благодаря этому в офисе на 400 человек все HR-менеджеры знали меня в лицо. В итоге через 9 месяцев я запросил через тикет пересмотр зарплаты с формулировкой «На рынке я стою $3500» — и получил апрув.

Вывод. Можно расти и внутри компании. Однако этот метод сопряжен с риском потерять навык прохождения интервью при потере работы. Поэтому, думаю, все же полезно иногда пробовать свои силы на собеседованиях в других компаниях, держать себя в тонусе.

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

📌Поиск новой работы в карантин и первые $4000​

Период: 2020
Зарплата: $4000
Должность: Lead Full Stack Developer

И вот пришел COVID-19. Я должен был стать хедлайнером нового проекта, но его отменили. В результате карантин застал меня на бенче. Сытое время у компании закончилось, и она была вынуждена урезать % зарплаты тем, кто сейчас без проекта. Я остался перед выбором: искать хоть что-то внутри компании, сидеть на бенче или идти на рынок. Текущие проекты были так себе, ситуация с урезанием зарплаты не внушала оптимизма, поэтому я выбрал третий вариант — искать новую работу.

К этому моменту я был полноценным Senior Full Stack: .NET/JS. В былые времена я бы поставил на Джине минимум +$500 к предыдущей зарплате, но из-за сложной ситуации на рынке выставил ожидаемую зарплату в $3800. Конкуренты демпинговали, а я был и так близок к максимальной вилке. Откликов было примерно на 50% меньше, чем обычно. Я принимал сообщения только от лидеров рынка. Во-первых, у этих компаний больше ресурсов и перспектив, во-вторых, там более высокие бюджеты для развития и лучше соцпакет.

В итоге получил два предложения, которые меня заинтересовали. С первой компанией звезды не сошлись, они взяли внутреннего кандидата. А вот со второй все сложилось: на рынке почти не было специалистов по одной из их технологий и я был им особенно интересен. Единственное, был нюанс с тем, что в придачу к разработке шли тимлидские обязанности. На переговорах с Delivery-менеджером я сказал, что менеджерские функции стоят чуть больше, чем $3800, и мне дали оффер на $4000.

Вывод. К сожалению (или к счастью), чем выше ваша зарплата, тем меньше она связана с программированием. Сейчас на тимлидской позиции я трачу на менеджмент примерно 10% времени. Но мне больше нравится работать с кодом, так что мой дальнейший путь лежит в архитектуру.

📌Итоги​

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


 
Сверху