Александр, R&D Engineering Manager at Itera Consulting - скандинавская группа консалтинговых компаний, которая разрабатывает решения для больших компаний. Александр является контрибьютором в WebKit (Safari) и реализация Promise.all, асинхронных итераторов/генераторов, доступная в браузерах на данном движке, появились именно благодаря ему

https://twitter.com/alSkachkov

«Помню, что все программы мы записывали на бумаге, ведь как только ты выключал компьютер — все исчезало»

Расскажи, о своей истории знакомства с IT сферой?
Можно сказать, что история началась с детства — мой отец работал в IT, и в пять лет меня в первый раз повели в машинный зал, где впервые играл в компьютерную игру. И я потом с компьютерами практически не расставался. В тринадцать лет уже пошел на курсы юных техников по программированию. Учил тогда Basic, помню, что все программы мы записывали на бумаге, ведь как только ты выключал компьютер — все исчезало. Тогда не было еще ни дискет, ничего. Все программы хранил в своем блокноте. Потом С++, Pascal чуть-чуть. В КПИ я уже шел намеренно и с прицелом на программирование. Первой компанией была Softline в государственном секторе, в 2009-2010 годах я перешел в Itera. И тут я работаю последние 8 лет.

Как выглядит твой рабочий день?
Я думаю, что мой день похож на день многих разработчиков: первым делом проверяю, какие задачи в беклоге, потом стендап, дальше работаем с кодом. В промежутках бывают митинги в зависимости от направления проекта: архитектурные или планирование, либо митинги, которые касаются RnD (Research and Development) задач.

Ты занимаешь должность R&D Engineering Manager, кто задает направление для R&D?
Это довольно обширный вопрос. Прежде всего, мы смотрим какие продукты, новинки и технологии есть в сегменте рынка наших клиентов . Чтобы эти новинки могли помочь нашим существующим и потенциальным заказчикам, мы постоянно взаимодействуем с отделом продаж — предлагаем идею, которую мы пытаемся проработать, чтобы она принесла максимальную пользу заказчику, и они нам дают фидбэк.

Пишешь ли ты по-прежнему код?
Да, активно пишу код и делаю код ревью для команды. Хоть я и пробую много инструментов и языков, 80% моего кода - это JavaScript.

Что ты проверяешь при код ревью?
У нас есть утвержденный и отработанный процесс, по которому мы выполняем код ревью. Мы проверяем стайлгайды при помощи линтеров (ESLint), чтобы не тратить на это время разработчиков, а разработчики уже смотрят на примененные паттерны и обусловленные практики.Разумеется смотрим, что, собственно, в задаче ожидалось сделать и почему проблема решена именно так. И самым последней, но наиболее важной, является проверка, когда непосредственно тестируем руками. Мы не делаем работу вместо QA. Но мы таким образом гарантируем, что когда в отдел тестирования попадает проект, он выполняет то, что от него ожидается. А дальше уже задача тестировщиков придумывать кейсы и проверки, при которых система может не работать.

«Больше руковожу не людьми, а идеями, которые хочу продвинуть и внедрить в компании»

Можно ли назвать тебя менеджером в твоей команде?
Работаю с людьми, но не могу утверждать, что выполняю функцию менеджера. Больше руковожу не людьми, а идеями, которые хочу продвинуть и внедрить в компании. RnD для меня — это менеджмент и работа с людьми по продвижению идей. Моя основная задача — объединить бизнес с технологиями. В какой-то момент осознал, что будучи просто разработчиком сложно реализовывать идеи, которые касаются новшеств в технологиях. А поскольку никто этим не занимался в нашей компании, я решил взять на себя ответственность и развиваться в направлении Research and Development.

«Мы стремимся к тому, чтобы все разработчики в команде были Full Stack-специалистами»

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

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

Ты состоишь в программном комитете конференции JS Fest 2019, которая состоится 5 апреля?
Да, состою. Мы стараемся выявить тренды, чтобы понять, что может быть интересно девелоперам, подобрать и замотивировать под эти тренды хороших спикеров. Также помогаем подготовить доклады, чтобы идеи были раскрыты максимально доступно. Проверить, чтобы в рамках доклада тема раскрывается как глобально, так и в рамках нашей конференции.

«Так сложилось, что в тех индустрии именно Twitter - является главным источником трендов»

Как ты не выпадаешь из трендов?
Так сложилось, что в тех индустрии именно Twitter - является главным источником трендов. Сложно выделить кого-то конкретно, так как могу менять направление часто. В основном, это публичные лица, которые связаны с front-end частью, из Google, Twitter. Сейчас больше уделяю времени новостям по искусственному интеллекту (далее — ИИ), и также слежу за InsureTech .

«У известных спикеров расписание может быть распланировано на год вперед»

Как вы привлекаете зарубежных спикеров?
Один из самых сложных моментов. Стараемся через нетворкинг выйти на этих людей. Не всегда это, конечно, получается. У известных спикеров расписание может быть распланировано на год вперед. Плюс у конференции должно имя говорить само за себя, чтобы спикер согласился участвовать. С нашими спикерами, конечно, в разы легче — большинство людей ты можешь знать «через пожатие одной руки»

«После того, как слайды готовы, — репетиции, репетиции и еще раз репетиции»

Ты также спикер, как ты готовишься к своим выступлениям?
Сначала пытаюсь определить тему, которая будет интересна слушателям. Мне нравятся такие темы, которые еще мало кому известны, о чем еще за границей мало говорят, но с перспективой. Разбиваю на секции и ищу материал, чтобы сформировать слайды. После того, как слайды готовы, — репетиции, репетиции и еще раз репетиции. Есть пару коллег, которые могут дать конструктивные фидбеки.

Какие вопросы задаешь во время собеседований?
Конечно, основная часть вопросов — техническая, но обращаю внимание на три фактора:

  • как у человека с логикой;
  • глубина знаний;
  • понимание, смогу ли я работать с этим человеком.

Как ты переключаешься между работой и обычной жизнью?
Work/Life balance для меня всегда актуальный вопрос. Иногда кажется, что работаю по 16-17 часов в день: 9 часов на работе и потом еще дома. Часто есть ощущение, что слишком много уделяю этому времени и страдает семейная жизнь. Пытаюсь с этим бороться.

Как ты при этом не выгораешь?
Может, я уже давно выгорел, просто не знаю об этом.

Книги от спикера:
Первая книга, что приходит на ум, — «Карьера менеджера» от Ли Якокка. С помощью этой книги совсем с другой стороны посмотрел на этот процесс. Также мне нравятся книги великих стоиков — таких, как Марк Аврелий, например, его книга «Наедине с собой. Размышления». Его мудрые мысли актуальны и по сей день и могут быть трансформированы под любую деятельность. Например, принцип о том, что если делаешь что-то, то нужно делать до конца и смотреть в будущее. Вот если писать плохой код, то сразу его вред можно и не оценить, это будет только понятно спустя какое-то время.

Что в твоем понимании плохой код?
К этой категории можно отнести код, который со временем будет замедлять тебя и твою разработку. Который не дает тебе быстро и эффективно вносить изменения в систему.

Как ты начал контрибьютить в WebKit?
В 2013-2014 годах я несколько сместил фокус — с Full Stack (ASP.NET, C#) перешел на JavaScript. Мне не хватало тех фич, что были в .NET. А я такой, что если что-то необходимо, то беру и делаю. Это оказалось не так просто, пришлось полностью разобраться, как все работает.

Как проходит принятие решений, что мержить в WebKit?
Существует три роли доступа к изменениям:

  1. Новички (Newcomers) - фактически любой разработчик, который захотел создать свой Pull Request (далее - PR), важное замечание, что с самого начала ты не можешь создавать PR для основной ветки;
  2. Коммитеры — это те, кто уже сделал больше 10-20 PR, которые были приняты, и у них подписан договор с WebKit. Им выдают аккаунт и пароль, по которым их можно отличить от начинающих;
  3. Ревьюверы — те, кто принимают решения, какие PR's будут приняты в основную ветку.
    На сегодня я являюсь коммитером, потому что для третьего уровня необходимо уделять практически все свое время оупенсорсу.

Какую пользу и уроки ты для себя вынес из участия в Open Source?
Знакомлюсь с разными практиками, которые применяют специалисты со всех стран мира. Это позволяет также и мне развивать свои навыки и кругозор.

«Советую не останавливаться на подходах, которые используются в вашей компании или даже сфере, расширяйте горизонты и ищите эффективные решения где только можно»

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