"Часы работы"

Как получить повышение в качестве инженера-программиста

Эффективные советы по продвижению

Все хотят продвигаться по службе. Вы получаете изменение названия. Вы получаете прибавку к компенсации. Вы можете работать над крупномасштабными проектами. Но что нужно для повышения? Какие шаги нужно предпринять, чтобы карьера не зашла в тупик?

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

1. Работа над несколькими проектами

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

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

i.) Существенно ли это влияет?

На этот вопрос можно ответить по-разному. Значительно ли это улучшает операционную нагрузку на команду? Повышает ли это надежность ваших услуг? Поддерживает ли он новые важные варианты использования для других внешних команд?

Все проекты в каком-то смысле эффективны. Ключевое слово здесь имеет важное значение. Если вы не уверены в влиянии проекта, попросите пояснения у своего менеджера.

ii.) Это хорошо видно?

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

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

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

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

iii.) Буду ли я руководить проектом?

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

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

Если проект соответствует всем трем флажкам, то это хороший проект для работы! Это поможет вам написать эффективный рекламный документ, когда придет время.

2. Будьте активным рецензентом

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

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

Например, я недавно просмотрел план перехода инженера. Я прокомментировал, каковы планы отката, если миграция не удалась. Как мы узнаем, что миграция не удалась? Как мы можем гарантировать, что производительность сервиса не снизится с миграцией?

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

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

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

3. Напишите качественную техническую документацию.

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

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

4. Уметь тушить пожары.

Это относится к инженерам, у которых есть вызовы. Получение страницы может быть пугающим опытом, поскольку это указывает на то, что служба не соответствует SLA (Соглашение об уровне обслуживания). Если это не исправить в течение разумного периода времени, это может привести к катастрофическим последствиям, которые могут сказаться на доходах.

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

i.) Вы можете прочитать журналы и определить причину проблемы.

ii.) Вы можете прочитать показатели производительности и понять общую картину. Например, вы можете увидеть, что может быть огромный всплеск GC и огромный рост трафика. Это может означать, что ваш сервис не работает.

iii.) Вы хорошо понимаете рабочий процесс - какие службы можно перезапустить, можете ли вы убить всю службу одним пакетом, как откатить службу с предыдущим двоичным файлом и т. д.

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

Последние мысли

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

Ресурсы

Я провожу семинары по резюме / собеседованию с клиентами, претендующими на работу в области разработки программного обеспечения. Я работал с более чем 50 клиентами, и они получили выгодные предложения о работе в таких компаниях, как Facebook, DoorDash, Square и Amazon.

Если вам нужна помощь с составлением резюме или подготовки к собеседованию, напишите мне на мой рабочий адрес электронной почты [email protected].

Йен - разработчик программного обеспечения в Twitter. Он работает в группе обмена сообщениями, поддерживая и улучшая системы pubsub.

Вы можете найти его в Instagram.