Баннер мобильный (3) Пройти тест

Чем занимается Backend-техлид в Альфа-Банке?

Владислав Мацкевич рассказывает, без каких качеств не стать руководителем и зачем регулярно лично общаться с разработчиками

Обзор профессии

29 февраля 2024

Поделиться

Скопировано
Чем занимается Backend-техлид в Альфа-Банке?

Содержание

    Владислав Мацкевич работает в Альфа-Банке с 2012 года. За это время он стал руководителем направления разработки. Владислав объяснил, как техлид внедряет новые инструменты в работу, поделился полезными книгами и рассказал, чем кодер отличается от разработчика.

    Чем я занимаюсь

    Backend-разработчик — это программист, который реализует сложную бизнес-логику серверной части мобильных и веб-приложений. Я backend-техлид в Альфа-Банке. Сейчас у меня в подчинении 21 человек из 18 команд. Большую часть рабочего дня я нахожусь на встречах: вместе с другими разработчиками мы обсуждаем архитектуру проектов, принимаем решения о новых интеграциях с внешними партнерами — условия интеграций должны всех удовлетворять. Также у меня есть задачи, связанные с персоналом: я нанимаю сотрудников, подвожу итоги их работы, даю советы, куда разработчикам развиваться дальше.

    Один из моих первых проектов — запуск онлайн-анкеты на кредитную карту: клиент заполняет форму, банку приходит заявка, на основе которой он решает, выдавать клиенту карту или нет. Другая команда работала с рефинансированием и дебетовыми картами. Потом наше направление расширилось, ко мне пришли другие команды: например, одна создает мобильное приложение для сотрудников, которые доставляют карты на дом.

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

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

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

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

    С чего я начинал

    В 2012 году я устроился работать в Альфа-Банк инженером: сопровождал базы данных, сервера приложений, следил за тем, чтобы ничего не падало.

    Из-за неопытности однажды я совершил серьезную ошибку. Я должен был выключить копию базы данных, но перепутал и завершил похожую, ее использовали во вспомогательном бизнес-процессе. Мне в панике звонили люди: «У нас ничего не работает». Я сказал, что все под контролем, но через полчаса понял, что ошибся. Потом объяснял наставнику, как пропустил цифру. Все понервничали, но, к счастью, клиенты не пострадали.

    После я работал администратором баз данных, разобрался в Linux, DevOps, Docker, SQL, затем — системным аналитиком в «Альфа-Лабораторию» (подразделение Альфа-Банка, которое занималось продуктами для коммуникации с клиентами)

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

    В основном я читал книги Кея Хорстманна про основы Java

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

    Через год техлид ушел и мне предложили его должность. Хоть я и боялся, но все равно согласился. А в феврале 2021 года я стал руководителем направления.

    Как я внедряю новые инструменты

    Я слежу за развитием направления: контролирую, как нам не стать legacy (работать с устаревшим оборудованием и инструментами), какие технологии для этого нужно ввести. Чтобы новый инструмент появился в компании, я объясняю руководителям, чем он важен, составляю смету, чтобы потом приобрести серверы, и помогаю коллегам устанавливать ПО.

    Например, приложения мы «упаковываем» в Docker-контейнеры (система, которая позволяет сохранить исходную структуру кода продукта и не перестраивать ее под разные сервисы). За ними надо следить, потому что, если они остановятся, пользователь не сможет загрузить страницу или что-то написать (заполнить форму, например). Для этого мы используем оркестратор — он развертывает контейнеры на сервер, следит за их доступностью. Он незаметно для клиента помогает все восстановить, если в приложении возникла ошибка. Раньше мы использовали Mesos, сейчас он устарел, поэтому банк постепенно переходит на Kubernetes: мы его настраиваем, переводим на него сервисы.

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

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

    Что нужно новичку для старта в разработке?

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

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

    На старте в backend нужно не только знать язык программирования (Java, Kotlin), но и разбираться во многих смежных темах:

    • кэшах (Hazelcast или Redis);
    • базах данных (SQL, NoSQL);
    • фреймворках (Spring);
    • владеть навыками DevOps;
    • уметь работать с очередями.

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

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

    Читайте также: Как стать Java-программистом с нуля

    Новичку в начале работы дают простые и рутинные задачи: написать CRUD (Create, Read, Update, Delete) — стандартный сервис, который передает информацию из базы данных во frontend и ее обновляет. Джуниор может обновлять версии фреймворка, чтобы погрузиться в проект, разобраться в уже работающем коде. Стажерам я предлагаю написать сервис, который укорачивает ссылки. На таких задачах можно натренировать базовые навыки работы с языком.

    Один из любимых мемов о защите данных HTTPS-протоколом

    Что нужно, чтобы стать техлидом?

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

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

    Он может и выступить с докладом, и помочь новичкам, и пообщаться с коллегой о проблемах. Иногда это даже важнее технических навыков. Технику можно выучить, а софт-скиллы сложнее получить, особенно если с детства ты необщительный человек. Но для этого можно пройти курсы ораторского искусства, почитать книги про менеджмент.

    В основном я действую по наитию, но читал книги по управлению. Например, «Как пасти котов» Дж. Ханка Рейнвотера. Автор сравнивает разработчиков с котами, приводит несколько типажей людей и описывает, чем они отличаются. Это помогает найти к каждому сотруднику свой подход.

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

    Скопировано
    0 комментариев
    Комментарии