Мидл в МТС. Рост в сеньоры

Новый год в офисе МТС
Новый год в офисе МТС

Если вы попали на эту статью, но не прочитали предыдущую, то советую вернуться на шаг назад.

Собеседования

После Сбера было не сложно находить предложения о работе. На собесы звали, но впечатления у меня оставались разные. Как-то раз я сказал, что хочу зп в 150к, на что мне ответили: “Вы что сеньор?” Значит, для кого-то в 2018 году это был уровень синьора, я же так не считал.

Многие компании предлагали варианты в стиле: официальная зарплата 20к, все остальное в конверте. Такие условия отталкивают мужчин, но сейчас, я надеюсь, это уже редкость. Работать в IT в серую не вижу смысла, только если вы не хотите спрятаться от алиментов)

Собеседование в МТС прошло максимально комфортно, без душных вопросов. Было два технических этапа, и оба интервьюера показались грамотными и опытными разработчиками. Я честно сказал, что не знаю Swift, и мой коммерческий опыт был только на Objective-C. В то время это было нормальной практикой и никого не смущало. Сам формат интервью и атмосфера, в которой они проходили, мне понравились больше остальных.Я даже помню несколько вопросов и из-за срока давности их без проблем можно разглашать, я считаю, ведь сейчас такого проекта даже нет. Меня попросили написать структуру данных - очередь (queue) на двух стеках, а на втором интервью - алгоритм, который определяет, является ли число простым. Первая задача кстати встречается в книге Advanced Swift. Теоретические вопросы были об iOS и Objective-С - ничего неожиданного.В то время я называл свои зарплатные ожидания в 150к. Рост в 2 раза по сравнению с предыдущей позицией выглядел вполне достойным. Кого-то такие ожидания отпугивали, ведь опыта было примерно 1 год, а в МТС прислали оффер на 200к. Честно говоря, не знаю, как это получилось, возможно это был минимум на моем грейде. Конечно, я сразу согласился и даже не стал торговаться. Даже сегодня, я считаю это хорошей зарплатой для джуна с таким небольшим опытом.

Начало работы

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

В МТС было много дочерних компаний, и они занимались совершенно разными направлениями. Например: умный дом, умная колонка, телемедицина, приложения по уходу за животными, банкинг, видеостриминг и многое другое. Не знаю, как так получается, но по-настоящему инновационных проектов, которые у всех на слуху, так и не вышло. Ассоциация с компанией, у широких масс, все еще “МТС - оператор мобильной связи”.

Я попал в команду, которая разрабатывала EdTech проект. Приложение позволяло найти репетитора по английскому языку. Ближайшим конкурентом на тот момент был Skyeng. Позже мы начали расширять функционал и добавили другие общеобразовательные предметы: математика, русский язык. Основной фокус был на занятия с репетиторами 1-1 по видеосвязи. Цель таких занятий - улучшить навыки в общеобразовательных предметах и сдать выпускные экзамены в школе. Для более качественного усвоения материалов мы реализовали домашние задания и прохождения неких майлстоунов через внутренние экзамены.

Проект был новым. Логично, что его начали писать сразу на Swift и на незнакомой тогда для меня архитектуре MVVM + SOA + реактивный подход. Честно признаюсь, что это было челенджево для меня. Тот темп, с которым работали другие разработчики, я не мог поддерживать. У меня в целом не было навыков реализации больших фичей в короткий промежуток времени. Ведь в Сбере цикл разработки затягивался на месяцы, а тут спринты по 2 недели и сразу в продакшн, времени на раскачку нет.Это осложнялось отсутствием знаний Swift и, наверное, в первый месяц я перерабатывал, чтобы выучить язык и войти в командный ритм. Не скажу, что был какой-то глубокий онбординг, процессов и документации было не много. Но в тоже время от меня не ждали сверх результата, никто не пушил и не спрашивал, почему я долго делаю фичи?

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

Фичи

Задачи действительно были интересными. Я получил то, что искал. Сейчас кажется, что это простые фичи, но тогда я каждый день ощущал рост. Даже банальные примеры “Сделать онбординг юзера”, где просто перелистывались слайды, казались значимыми... Я делал сторисы, глядя на то, как они реализованы в инстаграме, старался перенимать все механики. Было классно, что отсутствие формальности и бюрократии позволяло креативить, предлагать свое видение. В этом главное преимущество небольших проектов, там ты можешь проявляться и выходить за рамки корпоративных подходов. В то же время, на старте дизайнеры вряд ли будут заморачиваться со сложными интерфейсами. Поэтому, когда я видел, что могу предложить красивое и быстрое решение по навигации или анимации, это принималось на ура.

По мере моего развития мне доверяли все больше и больше. Помню, как делал whiteboard. На нем можно было рисовать, добавлять формулы, изображения и пользоваться привычными инструментами графического редактора. Поскольку он использовался одновременно учителем и учеником, то передача данных должна была происходить по сокетам. Позже этот опыт мне не раз пригодился на интервью в других компаниях. Задача была комплексная, и я мог о ней долго рассказывать. На мой взгляд, важно иметь в своем арсенале несколько интересных и сложных фичей, о которых вы будете рассказывать на собеседованиях, и при необходимости сможете углубиться в детали. Также для этой задачи я реализовывал возможность отмены операций (undo/redo). Спустя несколько лет точно такая же проблема мне попалась на интервью в Яндекс.

В 2018 году видеозвонки через мобильный телефон были не настолько популярны. Писать свой движок было слишком долго и дорого, поэтому мы использовали популярные библиотеки для работы с потоковым видео. Сначала было платная библиотека от вендора, а потом мы смогли перейти на open source решение. Сделать стабильный видеозвонок даже для двоих участников - непростая задача, а когда количество растет до 5-6 человек для групповых уроков, вообще ад. Но ковыряться в таких задачах точно интересней, чем красить кнопки. Главное - не выгореть, копаясь в Objective-C коде.

Стартап vs Корпорация

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

Наверное это и было причиной, что мы могли долго выяснять, как назвать класс или переменную. Реальный пример: мы спорили о том, как назвать класс - FeatureToggle или FeatureToggles. Как аргументы использовали статьи Боба Мартина от разных лет, в итоге решили, что в более свежих статьях он использует FeatureToggles. Но стоило ли это обсуждение полчаса нашей жизни?

До табов vs пробелов не дошло, был линтер)
До табов vs пробелов не дошло, был линтер)

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

На своем опыте я заметил, что баланс между качеством кодовой базы, наличием багов и финансовой успешностью напрямую связаны. Когда проект вылизан, в нем нет багов, бэклог пустой, а код идеально написан и протестирован, практика показывает, что успешность самого проекта не очень. Time to market увеличивается и в итоге проект приносит меньше денег, чем мог бы. А вот когда было много идей на улучшение, нерешенных проблем в разработке, то почему-то проект окупался сполна, выходил в прибыль и конкурировал на рынке. У Booking.com есть даже такой способ оценки производительности. Когда багов слишком мало, значит можно работать быстрей. Ведь минорные баги, которые встречаются у 1% пользователей, не влияют хоть как-то существенно на ценность продукта.

Команда

Неспешный вайб в компании позволял заниматься другой деятельностью. Мы основали с коллегами команду для участия в соревнованиях по олимпиадному программированию внутри МТС. Они проводились среди всех многочисленных дочерних компаний, поэтому команд было много, а уровень прям серьезный. В качестве организаторов привлекли тренеров из МГУ. Сразу скажу, что задачи не как на Leetcode, больше похоже на формат Hackerrank. В работе или на собеседованиях такой опыт слабо помогает. В любом случае, такие мероприятия хорошо тимбилдят, и еще раз доказывают, что стартап не смог бы себе позволить такого.

Рост как инженера для меня был ощутим, я был в окружении людей, которые опытней и иногда ощущал себя “самым глупым в комнате”. Для меня это было стимулом к развитию. В тоже время это не давило настолько сильно, чтобы я перерабатывал. Со своими задачами я справлялся, и никто претензий мне не предъявлял. Как только я освоился и начал чувствовать себя уверенно, вошел в расслабленный режим работы. В офис приходил к 11 - 12 как и остальные. Команда была слаженная, многие общались вне работы и поддерживают отношения до сих пор. Мы даже смогли собрать группу лыжебордеров и полететь кататься в Сочи.

Когда мы находились на горнолыжке, начали появляться новости, о том что ее закроют из-за ковида. Буквально через неделю это и случилось. Когда мы вернулись в Москву, казалось, что все резко изменилось - город вымирал. Многие компании стали переходить на удаленку, мы не стали исключением.

Первое время я даже не представлял, как работать на удаленке. У меня не было такого опыта. Я думал, продуктивность команды и моя личная упадет, да и вообще как я справлюсь без помощи опытных коллег? К счастью, все оказалось проще, и период адаптации длился всего пару недель. Возможно, ковид был одним из катализаторов закрытия проекта.

Повышение

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

Как часто это бывает, просто сказать: “я хорошо работаю, все мной довольны, дайте денег” не достаточно. Начались стандартные уловки в стиле: “нужно наметить план развития, показать результат и только потом можно будет представить руководству рекомендации на твое повышение зарплаты”.

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

Казалось приключение на 20 минут, но нет. Одна из задач заключалась в добавлении SDK от Amazon, которое позволяет озвучивать слова разными голосами. Конечно, для Flutter этого SDK просто не было и мне пришлось писать его самому. Адекватной документации на это тоже найти не удалось. В итоге я потратил на задачу неделю, хотя на Swift получилось сделать тоже самое за 1 день. Я завершил этот проект в оговоренные сроки, но приобрел нелюбовь к кроссплатформенной разработке.Я свою договоренность выполнил, мне увеличили зарплату на 15%, и я стал получать 230к рублей. В довесок мог называть себя сеньором, т.к грейд тоже подняли. Отвечая на вопрос, стоило ли оно того, думаю что нет. На рынке я бы без особых усилий получил +50%. Собственно, эту теорию я смог подтвердить через пару месяцев.

Закрытие проекта

Точных причин закрытия проекта я не знаю. Скорее всего, мы не достигли KPI, и ресурс был перенаправлен на другие проекты. Я думаю, что команда совершала много ошибок, которых можно было избежать. Первые варианты дизайна были устаревшие, большое внимание к реализации, но очевидные просадки по маркетингу. Если вы не продвигаете свое приложение, то о нем просто никто не узнает.

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

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

Увольнение

Как только я обновил резюме на HH, мне позвонила продукт моего проекта. Сначала я даже не понял, к чему такое внимание, т.к до этого мы не созванивались 1-1. Я сразу не сообразил, что она узнала о моем активном резюме и хотела обсудить это. Минут 15 она ходила вокруг да около, а я, честно говорю, был в замешательстве. Но все оказалось просто, эйчар отдел отслеживает статус резюме сотрудников и буквально через 2 часа ей сообщили об этом) Особой тайны я не делал, поэтому честно сказал, что хочу посмотреть на рынок. Если бы мой поиск затянулся надолго, то я бы без проблем мог продолжал работать, хотя сильной мотивации трудиться не было.

Ковид был в самом разгаре, но рынок не выглядел пустым. На тот момент у меня было 3 года опыта, накручивать больше я даже не думал. Мои зарплатные ожидания в 250к на руки готовы были удовлетворить все компании, где я доходил до финала. В итоге на руках было примерно 4-5 офферов от 250к до 270к на руки.

Интервью в основном были простыми, особого труда в прохождении технических этапов я не ощущал вообще. Хорошо запомнилось только собеседование в российский офис AliExpress. Там меня действительно размотали и до оффера я не дошел, но выводы сделал. Не стоит идти на собеседования сразу в топ компании, лучше войти в поток, как бы эзотерически это не звучало, но со мной работает. Остановился на компании “Амедиатека”, но об этом расскажу уже в следующей части.

Приятный осадок

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

Самое главное, что можно забрать с собой из компании, - это связи и опыт. За 2 года работы я получил в МТС оба пункта, за что всем благодарен. Кажется, что IT большое и, уволившись, вы больше не с кем не встретитесь. В действительности же, поработав в большом коллективе, вы будете пересекаться с этими людьми и дальше в своей карьере, а, может быть, и обращаться к ним за помощью и советом.

В предыдущих сериях:

В следующих сериях:

-Спонтанное лидство в Амедиатека

-Wheely. Мечта о дальних странах

-Prequel. Превентивный отъезд.

Подписывайтесь чтобы ничего не пропустить!

11
2 комментария

Очень хотелось бы продолжения)

Спасибо за статью, было интересно читать