В этой серии мы будем рассказывать вам различные истории о профессиональной деятельности людей, работающих с Qt.

Сегодня я беру интервью у Майка Трахирна (Mike Trahearn), старшего инженера-программиста и чемпиона Qt 2022, живущего на светлом и солнечном Золотом побережье Квинсленда, Австралия.

— Привет, Майк! Расскажите нам немного о себе. Чем вы занимаетесь?

Привет! Я старший инженер-программист, живущий в Австралии, куда я переехал в 2017 году из холодной и серой Великобритании.

Моя нынешняя роль связана с системами визуализации и калибровки машин HMI для международной компании, занимающейся гражданским строительством. Наряду с проектными обязанностями, я специализируюсь на исследованиях и разработках Qt, архитектуре, дизайне рабочих процессов, брендинге/стилистике, а также обеспечении качества и лучших практик всех наших разработок на основе QML в наших продуктах и отделах посредством консультирования и обучения. Это было очень удобно, когда я переехал в Австралию, органично вписавшись в работу со своим 16-летним опытом разработки концепций безопасности автомобильных HMI и R&D (Research and development — исследования и разработки) для глобального поставщика автомобильных компонентов.

В свободное от работы время - я музыкант, играю на клавишных, интересуюсь производством музыки, а также люблю хорошую еду (возможно, даже слишком!).

— Что изначально вдохновило вас на эту профессию?

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

Еще до того, как я узнал, что такое HMI (Human-Machine Interaction. Взаимодействие человека и машины), то понял, что должен развивать свое ремесло, чтобы помочь сделать жизнь людей лучше, насыщеннее, интерактивнее и приятнее.

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

— Что вы изучали в школе и как это подготовило вас к вашей карьере?

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

На протяжении всего обучения в университете я работал инженером-программистом над различными продуктами и участвовал в местных общественных образовательных проектах. По окончании университета я официально начал свою карьеру в той же компании в качестве инженера по встроенному программному обеспечению в коммутаторах данных с плотным волновым мультиплексированием в фотонике.

В свободное время меня можно было застать за созданием небольших проектов на различных языках для развлечения и изучения различных технологий визуального контроля и протоколов передачи данных. Мой основной интерес всегда был связан с HMI. Мне всегда нравилось изучать различные инструменты и генераторы HMI (разбирать их на составляющие). А когда я открыл для себя Qt и QML, все остальное осталось в прошлом!

— Как вы впервые открыли для себя Qt, и что в результате изменилось?

Когда мы с Qt были намного моложе, я работал над множеством разнообразных проектов, используя целый ряд различных инструментов HMI. Большинство из них были очень хороши в том или ином аспекте, но всегда не хватало какой-то возможности или инструмента. Для одного проекта часть пользовательского интерфейса была просто великолепна, но мне еще нужно было так много дополнительных элементов! Другой разработчик рассказал мне о Qt (4.7.4 на тот момент), и я решил сам на него взглянуть. То, что я обнаружил, сыграло решающую роль в моей дальнейшей карьере. С помощью Qt я быстро собрал все недостающие части существующего пользовательского интерфейса, добавил множество дополнительных фич и инструментов, и завершил очень успешный проект в кратчайший срок.

Как только я начал создавать чистые проекты на Qt C++ с QML и QtQuick HMI, то больше не оглядывался назад. Qt предоставляет все необходимые функции из коробки в виде одного комплексного и целостного продукта.

С момента открытия Qt я нашел способы автоматизировать большую часть работы, которую раньше выполнял сам, что сделало мой труд более продуктивным и позволило лучше использовать свои творческие способности. Мы с QML с самого начала достигли взаимопонимания, так как его декларативный язык очень хорошо подходил как к задаче создания HMI, так и для общего представления о дизайне кода и визуальном поведении.

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

— Можете ли вы описать типичный день или неделю вашей работы?

В течение каждой недели я разрабатываю, внедряю, тестирую или исправляю C++/QML в ряде кросс-платформенных проектов, поддерживая разработку UX, промежуточного программного обеспечения и протоколов связи, за которые я отвечаю. При всем этом, используя обычные инструменты Confluence, JIRA, Bitbucket и Git, делая сотни коммитов, TDD (test-driven development. разработка через тестирование)/единичное тестирование и взаимодействуя с другими отделами по всему миру, отвечающими за другие компоненты системы, касающиеся внутренних API и требований.

Значительная часть времени будет потрачена на разработку общих библиотек проекта, которые расширяют и оптимизируют все наши продукты, в частности (но не только) компоненты и стили Qt Quick. Я также отвечаю за наставничество, обучение и рецензирование кода других членов команды, чтобы они росли в своих возможностях и творчестве с Qt и QML.

Общее архитектурное планирование и структура проекта играют ключевую роль, особенно при переходе на Qt6/CMake. Тесная работа с Qt Group на разных уровнях над дорожной картой Qt способствовала взаимному согласованию наших общих целей. Регулярные встречи с командами поддержки и разработчиков Qt продолжаются, что очень нравится обеим сторонам и чего они с нетерпением ждут.

— Что вам больше всего нравится в вашей работе?

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

Бывает много "вау" моментов, когда мне удается продемонстрировать коллегам и руководителям новаторские применения новых возможностей Qt с помощью убедительных демонстраций. 

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

— Какие навыки или качества, по вашему мнению, важны для достижения успеха в вашей области? 

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

Будьте тем, к кому люди хотят обратиться за хорошим советом, и станьте хорошим коммуникатором на различных уровнях, потому что у вас часто есть аудитория/стейкхолдеры, которые нуждаются в покупке одних и тех же решений с дифференциальных точек зрения.

Будьте внимательны и предугадывайте детали, даже если люди "просто хотят" чего-то элементарного. На самом деле, мой вопрос номер один всегда "почему", а не "что". Во многих случаях лучшее решение - это отойти в сторону и сначала подумать: почему мы это делаем? Это настроит вас на успех в долгосрочной перспективе.

— Что бы вы посоветовали тем, кто заинтересован в подобной карьере?

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

  2. Если вы рассматриваете возможность обучения в университете, убедитесь, что в вашем курсе есть хороший модуль по C++, а также получите некоторые знания по проектированию HMI и всем компьютерным приложениям - впитайте в себя полезную информацию. 

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

  4. Погрузитесь в обучение! Qt Group предоставляет огромное количество отличного контента на своих учебных страницах и медиа-каналах, например, вебинары по требованию и часы контента на YouTube от Qt Group и компаний-партнеров.

  5. Посетите Qt World Summit лично (если возможно) или онлайн и постарайтесь попасть на локальные митапы Qt.

  6. Читайте документацию и используйте возможности поддержки Qt и/или Qt-форум, так как там есть замечательные люди, которые всегда готовы помочь. 

  7. Наконец, поймите, что разработчики живут за счет перекусов и кофе, поэтому позаботьтесь о том, чтобы у вас всегда был достаточный запас! 


Приглашаем всех желающих на открытое занятие «StateMachine в Qt: что это такое и как можно использовать». На этом занятии мы познакомимся с концепцией машины состояний, а также узнаем о том, как она реализована в Qt и как ее можно использовать.

Записывайтесь на открытый урок на странице онлайн-курса «Разработка прикладного ПО на Qt и ОС Аврора».

Комментарии (1)


  1. serjeant
    16.05.2023 07:54
    +2

    Было бы интересней почитать историю от отечественного разработчика.

    Она бы звучала так: N-лет разработки на Qt, а потом пришлось менять стек из-за того что вакансий кот наплакал и зп ниже рынка.