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

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

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

Экономьте деньги — либо за счет эффективных решений, либо за счет того, что не программируете их

Да, делать меньше работы — это ваш приоритет номер один. Время — самый ценный актив, и для вашего работодателя оно напрямую конвертируется в деньги.

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

Используйте функции, которые являются новыми для вашей команды

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

  • Билеты DevOps.
  • Дизайн системы для рефакторинга.
  • Получите draw.io и создайте несколько схем.
  • Билеты на расследование, чтобы сравнить разные решения одной проблемы (и предложить как минимум 3 варианта ее решения).
  • Кодирование совершенно новой функции, где вам нужно добавить новые зависимости в стек (новая БД, новый сервис, новый API, новый домен и т. д.).

Создавайте хорошо продуманные решения для обучения (в качестве хобби)

  • Выберите небольшую проблему, о которой вы знаете (если она у вас хотя бы есть), и попытайтесь найти решение (проекты среднего и большого размера — их очень сложно выполнить самостоятельно в свободное время, так что не беспокойтесь).
  • Попрактикуйтесь в проектировании системы и нарисуйте схему. Как данные передаются в вашем приложении (назовем его v1).
  • Создайте проект, внедрите все, что вы знаете на данный момент (добавьте CI/CD, добавьте lint и lint-fix, автоматизируйте его, добавьте хуки GitHub, разверните в облаке, примените передовые инженерные практики и получите тестовое покрытие, а также хороший файл readme)
  • Попробуйте новые стеки — внедрите сервисное взаимодействие через публикацию/подписку, реализуйте асинхронные задания через очереди, попробуйте реплики чтения/записи для хранилища и сегментирование. Поэкспериментируйте с тем, что может оказаться полезным в вашей повседневной работе. Когда придет время высказаться, у вас будут готовы демо и факты.
  • Рефакторинг — через какое-то время вы завершаете набор функций своего хобби-проекта, тратите время и размышляете над созданной архитектурой. Вы увидите, как что-то можно реорганизовать для достижения большей расширяемости. Рефакторинг вашего кода, чтобы исправить проблему.
  • Перерисовать схему проектирования системы до версии 2.
  • Повторяйте итерацию рефакторинга, пока не будете полностью удовлетворены результатом.

Надеюсь, это было полезно. Удачи и счастливой инженерии!