На связи МТТ — дочерняя компания МТС, провайдер телеком и IT-решений для бизнеса.
Мы работаем больше 28 лет и реализовали 100+ сервисов для 34 000 компаний по всей России. Это решения для бизнеса, помогающие автоматизировать рутинные процессы, анализировать большие объёмы данных, виртуальная телефония, защита номера на маркетплейсе и другое.
Мы попросили наших опытных разработчиков поделиться советами с джунами, рассказать о ключевых навыках, которые помогают строить карьеру, о самообразовании и текущих проектах. Но сначала — слово директору по продуктам МТТ Василию Сажко:
Разработчики превращают наши намерения и задумки в код, делают жизнь пользователей проще и удобнее. Среди них много людей, связанных с другими профессиями: химией, механикой, связью и даже авиацией. У этих специалистов совершенно разный ход мысли при разработке, что очень полезно для итогового результата. МТТ уделяет особое внимание разработке, поэтому программисты и разработчики — главные люди в компании.
Илья Волынкин, технический директор МТТ
— Как ты пришёл в профессию?
— Можно сказать, что на стыке разработки и сетей связи я ещё с института — учился в МФТИ на кафедре волоконной оптики, и сразу после окончания пошёл работать в компанию «ТрансТелеКом», где создавал экспертную систему планирования и развития опорной сети связи. Дальше было много других интересных проектов и компаний, но все они так или иначе были связаны или с разработкой, или со связью, но чаще и с тем, и с другим.
Когда я в очередной раз решил сменить работу, то обратил внимание на МТТ: меня очень воодушевило интервью с Василием Сажко, директором по продуктам МТТ, потому что я увидел возможность для реализации моих знаний и навыков. Есть два фактора, которые я больше всего ценю в работе: классная команда и наличие большого челленджа. И если подробнее говорить про второй, то наш новый продукт MTC Exolve, точнее то, чем он станет, когда мы его разовьём — это следующий шаг в эволюции коммуникаций, и очень круто быть не просто причастным к такому проекту, но и вести его в роли технического лидера.
— Какие навыки помогают тебе в компании?
— В первую очередь — умение находить общий язык с самыми разными людьми, так как в МТТ, компанию, которая создаёт продукты на стыке между телекомом и разработкой, приходят люди из разных сфер с очень разным бэкграундом.
— Над чем работаешь сейчас?
— Над технологической стратегией МТТ. Сегодня важно иметь технические «маяки», помогающие находить правильную траекторию достижения цели. Если говорить о продукте, то мы развиваем Exolve в сторону универсальной OpenAPI-платформы.
— Должен ли разработчик использовать готовые механизмы вроде фреймворков и API?
— Разработчики бывают разными: кто-то программирует микроконтроллеры, где фреймворков особо и нет. Каждый фреймворк и API должен применяться осмысленно, а не потому, что это модно. Иногда они ускоряют достижение цели и снижают стоимость, но могут стать и причинами появления «узких горлышек» или ненужных зависимостей.
— Нужно ли разработчику самообразование? Что изучаешь сейчас?
— Безусловно нужно вкладывать силы и время в самообразование. Мир так быстро меняется, что если не развиваться — за считаные годы все знания окажутся неактуальными. Я сейчас изучаю родную для нас тему OpenAPI, а также технологии создания и использования цифровых аватаров.
— Как стать крутым разработчиком?
— За любым кодом стоит алгоритм, а за ним — какая-то математика. Соответственно, нужно хорошо понимать алгоритмику и математику. Но разработка — ещё и искусство, ведь мы каждый раз пишем новую программу. Поэтому к математике нужно добавить толику творчества — музыку, например. Я в детстве на скрипке играл.
Любые языки программирования — просто языки. Хорошему разработчику неважно, на чём писать: он подбирает инструмент под задачу, а не наоборот.
— Что посоветуешь новичку?
— Совсем начинающим всегда советую изучать алгоритмику и математику. А если говорить про языки программирования, то Python (достаточно понимания основ), Go (углублённо) и JS (для фронтовой разработки).
Дальше читать Habr и другие открытые ресурсы, смотреть и контрибьютить в OpenSource, запустить свой проект, ведь многие принципы становятся понятны только из практики.
Сергей Морозов, заместитель директора департамента программных решений МТТ
— Как ты пришёл в профессию?
— Всё началось в далёком 1997 году, когда мама подарила мне на Новый год «Сюбор» (китайский аналог «Денди-клавиатуры»). В комплекте к ней шёл обучающий картридж с G-BASIC и F-BASIC. С помощью этой клавиатуры можно было познавать азы программирования, что я и пытался делать. Да, безуспешно, потому что читать толстенький мануал по программированию в 7 лет довольно сложно, но какие-то совсем простые и примитивные программки уже начал набирать.
Уже тогда я понял, что свяжу будущее с компьютерами. В 2008 году устроился на первую работу в небольшой интернет-магазин и с этого момента начал развиваться в веб-разработке. Делал сайты на Wordpress и DLE, поднимал интернет-радиостанции, были даже свои серверы и RF Online и Lineage 2.
В 2012 году пришёл в МТТ PHP-программистом. Началось моё активное развитие в качестве разработчика и девопса. С тех пор мы реализовали множество проектов и сейчас я отвечаю за внутренний инфраструктурный слой.
— Над чем работаешь сейчас?
— Я оптимизирую и автоматизирую процессы разработки, работаю над архитектурой, инфраструктурой в МТС Exolve. Это CPaaS — «Коммуникационная платформа как услуга», облачный программный продукт, который наши клиенты могут настраивать под себя через SDK и API.
МТС Exolve даёт возможность компаниям автоматизировать коммуникации с клиентами — от уведомлений по СМС и в мессенджерах до сложных сценариев с роботами и речевыми аналитиками, чтобы экономить время и деньги.
— Должен ли разработчик использовать готовые решения?
— Однозначного ответа нет. В случае с API, если разрабатывается продукт, то вполне возможно, что есть готовые сервисы (open source/self-hosted) с готовыми API. Но нужно понимать, как работают API в целом и каждая конкретная.
Что касается фреймворков, то всё зависит от того, какой стек используется в разработке. Наш основной язык — Golang. Во фреймворках нет необходимости, поэтому у нас подход Clean Architecture с нашей структурой проектов, которая сложилась за годы работы. Списки рекомендованных пакетов под различные направления мы тестируем на производительность и удобство, а потом применяем.
— Нужно ли разработчику самообразование? Что изучаешь сейчас?
— Рост в профессии, на мой взгляд, происходит не только за счёт практики, где мы применяем уже имеющиеся знания, но и за счёт инвестиций в самообразование — финансовых и временных. Без них развитие будет медленным.
Сейчас я делаю упор на разработку архитектур, поддерживаю скилы в девопсинге и системном администрировании, каждую неделю стараюсь развернуть какой-то интересный продукт/проект/софт, ну и про новые языки не забываю, посматриваю и на dart+flutter, и на rust.
— Как стать крутым разработчиком?
● инвестировать в знания: курсы, изучение чужого кода, статьи и так далее;
● постоянно практиковать;
● любить своё дело. Некоторые приходят в IT только ради денег, но у них редко что-то получается. Деньги не тот мотиватор, который позволит сутками сидеть и поглощать огромное количество информации.
— Что посоветуешь новичкам?
— Поймите, что всё и сразу получить невозможно. Двигайтесь постепенно и не расстраивайтесь, если что-то не получается. Все люди разные, у каждого своя предрасположенность и скорость усвоения материала. Если вам интересно то, что вы делаете — просто потратьте больше времени, не сдавайтесь. И главное — ставьте себе адекватные цели и сроки, не нужно завышать требования к себе. Наметьте план действий и прикладывайте все усилия, чтобы ему следовать.
Игорь Румянцев, руководитель направления качества продуктов МТТ
— Как ты пришёл в профессию?
— Я начал свою карьеру в МТС в 2005 году с позиции консультанта офиса продаж. В 2010 перешёл в МТТ, где анализировал сначала технические претензии, а после клиентские обращения. Внимание к каждой проблеме и желание устранять причины, а не последствия стали толчком к профессиональному росту в обеспечении качества программных продуктов.
Позднее мне предложили возглавить направление техподдержки на одном из проектов, так я окончательно попал в IT. Последние 6 лет лидирую направление обеспечения качества в департаменте разработки.
— Над чем работаешь сейчас?
— Я работаю над разными телеком-продуктами и также над платформой коммуникационных сервисов МТС Exolve. Фактически, это набор инструментов для реализации коммуникационных сервисов. Я уверен, что с ним мы в ближайшее время укрепимся на лидирующих позициях на рынке телеком-API.
— Должен ли разработчик использовать готовые решения?
— Могу сказать на примере нашего телеком-API и платформы Exolve: использование готового API упрощает разработку коммуникационных сервисов. Можно быстро настроить на своём сайте или в приложении совершение звонков или отправку СМС. Для этого не нужно быть телеком-инженером и вникать в нюансы организации телеком-инфраструктуры.
— Нужно ли разработчику самообразование? Что изучаешь сейчас?
— Без инвестиций в самообразование никуда. Прямо сейчас я делаю упор на тестирование в микросервисной архитектуре и управление тестированием в распределённых командах. А ещё изучаю лидерские навыки и навыки взаимодействия с людьми.
— Как стать крутым разработчиком?
— В этом поможет практика, практика и только практика. Нужно трезво относиться к ошибкам и анализировать их:
● писать тесты на свой код;
● изучать профильную литературу и блоги;
● создавать и развивать pet project;
● проводить code review.
— Что посоветуешь новичку?
— Постройте личное колесо компетенций. Например, ваша цель — стать старшим разработчиком через 6 месяцев. Выделите 5–7 хард- и софт-компетенций. Потом оцените себя по каждой из них от 1 до 10.
Проведите мозговой штурм по каждой компетенции, ответив на вопрос «Что мне нужно сделать, чтобы получить большую оценку?» Приоритезируйте задачи в зависимости от того, какой навык даст самый быстрый результат для достижения цели. Наметьте точки синхронизации, в которых сможете проверить, правильно ли вы движетесь (в МТТ этот этап проводится с тимлидом или ментором). Теперь у вас есть собственный приоритезированный бэклог для развития. Остаётся только действовать.
Все современные решения базируются на разработке и зависят от компетенции и заинтересованности команды в выборе лучших методов достижения цели. Без понимания того, что нужно конкретно сейчас для упрощения и ускорения запуска или работы сервисов, анализа внутренних бизнес-процессов, компания и её продукты быстро теряют актуальность.
Мы в МТТ считаем, что у профессии разработчика большой потенциал. Платформа Exolve, которую мы создали, как раз призвана дать возможность разработчикам всей страны делать удобные приложения для своих компаний, чтобы поддерживать оперативную коммуникацию с клиентами в том канале, в котором им удобно.
Читать первым в Telegram-канале «Код Дурова»