Каждый день создаются новые и совершенствуются уже существующие программные продукты, за которыми стоит уже многомиллионное сообщество профессионалов. Дмитрий Шатохин, с которым мы сегодня поговорим, один из наиболее ярких и успешных представителей ИТ-сообщества. В его портфеле frontend-разработка российских и международных проектов разного масштаба, а также собственные продукты, которые он создал, как Software Architect, востребованные в BBC, Disney и других мировых корпорациях. Несмотря на большую загруженность, Дмитрий не забывает делиться знаниями с теми, кто только начинает свой профессиональный путь, и мы сегодня также не упустим эту возможность.
Как вы пришли в профессию? С чего начинали, в каких проектах удалось поработать на старте карьеры? Это были российские проекты или зарубежные тоже?
Мой старт в ИТ связан с южно-уральским городом Магнитогорском, где 10 лет назад я работал как инженер-программист на крупнейшем в России металлургическом комбинате и как фулстек-разработчик в Магнитогорском государственном технологическом университете. Как любому начинающему специалисту, мне в какой-то момент захотелось выйти за рамки сначала одного города, а потом и целой страны.
Опыт получился очень разнообразным, проекты были и большие, и маленькие, но в каждом из них было что-то особенное, свои плюсы и минусы. В российских крупных проектах, таких, как Mail.ru Group, была стабильность, всё работало как часы, но в то же время не хватало драйва и готовности каждого браться за любую задачу, что случилось со мной в работе над немецким медицинском стартапом SBNT, который, к сожалению, так и не запустился из-за пандемии. После него я участвовал в разработке российского приложения actiTIME, онлайн-сервиса для учёта потраченного времени для бизнеса.
В нём можно было контролировать рабочие часы сотрудников, выставлять счета и рассчитывать заработную плату и делать другие действия, без которых предприниматель не может обойтись, но без автоматизации тратит на эту рутину массу времени и ресурсов.
ИТ-сфера знает вас не только как специалиста, но и преподавателя. Почему вы решили учить других людей? Расскажите об этом, как вы пришли к тому, как совмещали с проектами? И как вам было в этой роли?
Желание учить других людей было привито мне ещё в детстве, наполненном дедушкиными рассказами, в которых он простым языком передавал знания об устройстве мира и его закономерностей, а также делился фактами жизни интересных людей. За судьбой некоторых из них я слежу до сих пор. Преподавательскую деятельность я начал еще в студенческие годы в Магнитогорске, когда устроился работать учителем в школе программирования для детей. Школа росла и развивалась, поэтому в какой-то момент эту деятельность пришлось прекратить, хотя обучение детей для меня было очень увлекательным занятием, но совмещать учёбу и работу на полный день было невозможно.
В 2017 году, когда я уже набрался опыта, я начал сотрудничать с платформой GeekBrains как преподаватель курса Python Developer, но это было уже обучение для взрослых. И это совершенно другой формат и подход, нежели работа с детской аудиторией. Взрослые люди более требовательны к преподавателю и зачастую имеют завышенные ожидания. Но и тут мой дедушка мне помог, когда в самые сложные моменты, я вспоминал уроки из детства - из негатива всё переводил в позитив и мотивировал своих учеников на результат.
Совмещать ведение курса с проектами было несложно, так как весь материал был подготовлен заранее, и курс для каждого нового потока повторялся в неизменном виде, при этом достаточно много времени уходило на проверку домашних заданий и фидбек. Я не могу сказать, что преподавание – это мое призвание, но обучать людей моей профессии мне очень интересно, и в будущем я всё же рассматриваю возможность работать преподавателем в университете.
Как вы попали в Support Partners? Я знаю, что там вы работали с мировыми гигантами, такими, как BBC и Disney? Что удалось сделать для них? Что лично вам дал этот опыт?
В Support Partners я пришел в начале 2022 года уже как архитектор программного обеспечения. Компания является золотым партнёром Майкрософт и специализируется на развертывании и поддержке комплексных производственных облачных решений. У A.I.R. 1 на момент моего прихода в компанию уже были клиенты, безусловно, не в таком количестве, как сейчас. В сентябре 2022 года я начал проектировать новую архитектуру (пока без кода), уже в декабре представил интерфейс руководству Support Partners и начал полноценную разработку новой версии продукта с нуля. В середине июля, новый AIR 2 заменил AIR.
Исключение составили несколько клиентов, которые сделали это чуть позже. И это был не редизайн, я создал совершенно новую архитектуру. AIR2 был полностью модульным и открытым к расширению, к добавлению новых модулей или приложений и стал хабом для продуктов Support Partners, где каждый модуль можно отключить или включить. Плюс ко всему, я в несколько раз повысил производительность и снизил потребление ресурсов.
Дизайн тоже, конечно, был - я также, не прибегая к помощи дизайнера, сделал интерфейс свежим и соответствующим последним корпоративным стандартам Microsoft. С BBC у нас была особенная история, так как мы с командой разработали и внедрили специализированное приложение BBC Uploader, которое было полностью интегрировано с профессиональными камерами Sony и Canon. Путь от создания до показа контента стал коротким и комфортным, файлы были надежно защищены от потери. Мечта любого медиа нашла свое воплощение, а я был счастлив, что был к этому причастен.
А когда появились мысли создать свой продукт? Что вас замотивировало?
Мысли создать собственный глобальный продукт у меня были всегда. В числе моих текущих авторских продуктов есть инновационные библиотеки с открытым исходным кодом StatemanJS и EBEXJS, которые не только были внедрены в проекты компании Support Partners и помогли повысить их качество, но и стали доступными для всех JavaScript-разработчиков.
Если говорить о разработке StatemanJS, то специального плана по её выпуску у меня не было. Но в какой-то момент я столкнулся с ситуацией, когда существующие решения не подходили по разным причинам. По мере поиска решения обнаруженной проблемы, оно обрастало кодом, а потом появилась мысль его оформить и показать другим специалистам с аналогичными проблемами. Так и появилась библиотека StatemanJS.
Это похоже на обучение в аспирантуре, когда есть проблема и есть свой подход к ее решению, и ты им делишься с профессиональным сообществом.
В создании собственных продуктов есть ещё один большой плюс. Они очень прокачивают комьюнити, в котором, когда ты демонстрируешь свое решение, люди начинают его обсуждать и спорить, а в споре, как известно, рождается истина и новые решения, которые могут даже не касаться предмета спора. Кроме того, развивается и личный нетворкинг, так как люди могут задавать вопросы, а я объяснять, как пользоваться моим продуктом. И это тоже своего рода преподавание.
Вы и сегодня работаете со StatemanJS и EBEXJS? Какова их судьба? Как вы думаете, почему они стали востребованными среди ИТ-специалистов?
Сегодня StatemanJS — это быстрая, надежная и простая в использовании библиотека управления состоянием для приложений JavaScript и Node.js, которую загружают около 4000 раз в неделю, а EBEXJS (Event Bus Executor) — миниатюрная, высокопроизводительная, гибкая система, предназначенная для локальной связи приложений, управления событиями и взаимодействия её компонентов, которая загружается около 1000 раз в неделю. Цифры говорят сами за себя – проекты работают. Секрет их популярности – простота, когда всё понятно, тебе всегда хочется работать с этим продуктом, и это работает не только в ИТ.
Не удивлюсь, если с таким бэкграундом желание преподавать вас не покинуло, вы до сих пор делитесь опытом с начинающими специалистами или нашли себя в другой роли?
Сегодня я не занимаюсь преподаванием, но выступаю ментором для сотрудников компании в рамках текущих проектов. Преподавание было и будет со мной всегда, просто оно меняет форму. Например, сейчас я пишу в этой роли статьи, помогаю коллегам и готовлю свой видеокурс.
Кроме этого, я принимаю активное участие в жизни комьюнити GitHub. Это социальная сеть для разработчиков, где можно публиковать и редактировать свой код, обсуждать другие проекты и быть в курсе трендовых новостей ИТ-сообщества. Я участвовал в проектах GitHub разного масштаба, например, в начале карьеры переводил приложения на русский язык, а затем перешел на более масштабные запуски, такие, как язык программирования Rust.
Что бы вы пожелали тем, кто только пришел в профессию? Что поможет добиться успеха и разработать собственный глобальный проект?
Готового рецепта успеха нет, потому что ИТ – это динамичная индустрия, которая всегда движется вперед с ускорением, и всегда нужно обучаться чему-то новому и быть на шаг впереди. Без желания и интереса к этой области преуспеть в ИТ невозможно. Возвращаясь к моим взрослым студентам, освоить профессию и трудоустроиться за месяц сложно, но можно. Но получится ли испытать от всего этого удовольствие – не факт. Достаточно сложно добиться успеха без личного интереса к тому, что ты делаешь. Я думаю, это одинаково работает во всём, и ИТ- профессия не исключение.