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

Платформа Чемпион
Независимо от того, являетесь ли вы разработчиком iOS или Android, на этих платформах можно приобрести огромный объем знаний. От понимания основных компонентов SDK до освоения шаблонов дизайна или архитектуры - разработчик несет ответственность за отслеживание и выполнение следующих шагов на пути обучения. Знакомство с основными блогами, книгами, форумами и мероприятиями по разработке будет иметь большое значение для сбора и закрепления ваших знаний.

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

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

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

Процессы
У зрелых команд разработчиков программного обеспечения есть четкие процессы, которые обеспечивают качество, снижают риски и экономят время. Старшие инженеры хорошо знакомы с практиками Agile и обеспечивают согласованность посредством анализа кода, поддержания высокого уровня тестового покрытия, автоматизации распределения сборок и выполнения контрольных списков развертывания.

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

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

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

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

Рафаэль Оливейра - руководитель группы в Outware Mobile

Фото Коринн Куц на Unsplash