[Java] Жизнь современного разработчика в ЮMoney

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
21-Май-2021 17:32

Всем привет! Я Дима, начинающий разработчик. В статье расскажу о своем первом опыте работы в крупной продуктовой IT-компании.Я пришел в ЮMoney полгода назад, когда мне было 19 лет. А сейчас набрал достаточный опыт, чтобы рассказать про жизнь backend-разработчика в компании.Как я устроился в ЮMoney Изначально я отправлял отклик на junior-разработчика на сайте вакансий. Ждал две недели, но приглашение на собеседование так и не получил. Скорее всего, не прошел первичный отбор по опыту и хард-скиллам. Тогда я решил написать письмо лично HR. Контакты нашел в корпоративном аккаунте ЮMoney на Хабр. Ранее я читал статьи из блога, был знаком с устройством компании, поэтому было несложно описать, чем меня зацепила вакансия. К письму приложил ссылки на GitHub с учебными и pet-проектами. Личное общение действительно сработало! Сообщение сразу переслали HR, ответственному за собеседование джавистов.Совет: начни диалог с HR через мессенджеры, соцсети или почту. Личный контакт повышает шансы попасть в компанию мечты. Не бойся заявить о себе, если определился, где хочешь работать. Искренность и погруженность в процессы оценят твои будущие коллеги.Менеджер по персоналу перезвонила в тот же день, как я отправил сообщение. Мы познакомились, я расспросил о компании и ответил на целый список технических вопросов. Далее меня ожидало три этапа собеседований: общение с HR, тестовое задание, собеседование с руководителем отдела backend-разработки.Первое техническое интервью - это разговор с HR и старшим разработчиком. Мы познакомились, я рассказал о себе. Далее перешли на техническую часть — мне задавали вопросы по Java Core, Spring, структурам данных и алгоритмам, базам данных, паттернам разработки. Разговор был свободный: мы сразу перешли на «ты». В конце собеседования я расспросил про стек. Убедился, что команда на самом деле использует весь инструментарий, о котором говорилось в вакансии. На втором этапе мне прислали тестовое задание, которое нужно было сделать за два дня. Задание было написать web-приложение на тему шардирования, и, на мой взгляд, оно идеально подходило для собеседований: чем опытнее разработчик, тем больше тонких моментов он учтет. Сейчас тестовое задание убрали, чтобы ускорить найм.На финальном этапе мы с руководителем отдела backend-разработки и ведущим разработчиком обсуждали мою реализацию. Интересно, что интервьюеры на первом и финальном этапах отличаются, чтобы новичок получил объективную и всестороннюю оценку.
Хронология моего найма в декабре 2020 г.Совет: сразу начинай копить портфолио разработчика. Добавляй учебные и личные проекты, которые писал для себя или для знакомых. Даже если ты молод или пока не работал в IT, без примеров не завяжется диалог с серьезной компанией.Итак, я успешно прошел последний этап и попал в ЮMoney: здесь начинается мой путь адаптации.Адаптация Я пришел в разгар пандемии, когда вся компания работала на удаленке. Адаптация новичков была заточена под онлайн-формат. Так как я работаю в backend-отделе, буду рассказывать об адаптации со стороны Javа-разработчика. За мой онбординг отвечали:
  • Наставник — опытный сотрудник с достаточной технической экспертизой и пониманием процессов разработки. Моим наставником был ведущий разработчик. Он молодой, юморной, с ним я легко нашел общий язык.
  • HR - менеджер, курирующий процесс найма. Это та самая сотрудница, что ответила на мое сообщение
  • Руководитель отдела разработки серверных решений. Я общался с ним на собеседовании, успел перейти на «ты», поэтому не боялся задавать рабочие вопросы.
Наставник играет важную роль в процессе адаптации. Вот с чем он помогал:
  • рассказывал про процессы отдела,
  • делился полезными ссылками,
  • оценивал первые достижения,
  • показывал точки роста - куда мне развиваться, а не просто закрывать задачи,
  • созванивался со мной каждые два дня, даже если у меня не было вопросов. Так было проще получать обратную связь и понимать следующие шаги.
HR рассказывала, как устроена компания и помогала с любыми рабочими и организационными вопросами.
Модуль адаптации на образовательном портале «Универ»Во время адаптации мне помогли следующие ресурсы:
  • «Стафф»— база с карточками сотрудников. Сюда я захожу, чтобы найти день рождения коллеги или ссылку на мессенджер или оперативно уточнить рабочий вопрос. А еще тут есть структура компании, иерархия отделов и команд.
  • Личный кабинет в 1C. Здесь я могу сделать электронную заявку на отпуск, обучение, тимбилдинг, изменить реквизиты для получения зарплаты. На формах минимум полей для заполнения: минимум бюрократии и максимум удобства.
  • «Универ» — корпоративный портал для обучения сотрудников. Сюда загружены техтолки, митапы, курсы и тренинги в формате видеоуроков, тестов, статей. Я записался на курс по Kafka, чтобы прокачать хард-скиллы, которых не хватало на старте.
  • Wiki — наша внутренняя Вики, в которой можно разузнать о каждом рабочем моменте. Например, здесь хранится Книга новичка, которая помогает ориентироваться в процессах компании.
  • Книга разработчика backend-отдела — здесь вся нужная техническая информация для разработки: конвенции написания кода на Java, рекомендации по работе с БД, устройство нашего мониторинга и трассировки и много другого.
  • Книга отдела backend-разработки — здесь информация по процессам разработки: какие внутренние собрания есть в отделе, какое обучение как Java-разработчик я пройду, как происходит продвижение по карьерной лестнице.

Книга разработчика backend-отделаВ первую неделю я знакомился с процессами работы в компании и отделе, набирался теоретических знаний: читал Wiki, знакомился с командой, изучал инструменты и технологический стек. На связи были наставник и HR, у которых я мог спросить что угодно.Первая задача, с которой я столкнулся — учения по выкладке хотфикса на прод. Естественно, это не хотфикс в реальные процессы, а моковый хотфикс: делается пустой коммит и выкладывается на прод с реальным поднятием версии приложения. Так я изучаю процессы разработки и использую инструменты на боевых задачах. В первое время я трудился в команде Backend-платформы, ответственной за поддержку базы для микросервисов и CI/CD. Так на новичка меньше давят сроки и проверяется его спектр знаний, ведь задачи в команде технически ориентированные.С первого дня работы я видел, что мое мнение важно и к нему прислушиваются: в течение всего испытательного срока меня спрашивали, что можно улучшить, что понравилось, а что нет в выстроенных процессах адаптации. Я наравне с другими разработчиками почти с самого начала ревьюил код команды, участвовал в анализе технических решений, тимбилдингах.В ЮMoney два больших направления — B2C (электронный кошелек) и B2B (РКО - ЮKassa). После адаптации мне предложили выбрать наиболее близкое направление. Мой выбор учли при назначении команды: так я попал на разработку B2C-продукта. Отмечу, что при желании я могу свободно перейти в другую команду, если почувствую, что слишком засиделся на месте и хочу «потрогать» чего-нибудь нового.О жизни в компании и команде В компании поддерживается политика открытости и доверия к сотрудникам, и я с первого же дня мог выразить свое мнение: внести предложение на встречах отдела и быть инициатором реальных изменений в уже выстроенных процессах. Если компания планирует большие перемены, на почту приходит опрос, который все проходят, влияя на решение (из недавнего был опрос по будущему формату работы — удаленному, гибридному или офисному). Еженедельно проводится видеоконференция в Zoom на всю компанию, где рассказывают о важных новостях компании и изменениях в финтехе. Для всех сотрудников IT-отдела каждые две недели проводится встреча, где технический директор рассказывает о важных новостях и изменениях в процессах разработки. Все это позволяет сотруднику любой команды видеть, как течет жизнь в компании и в каком направлении мы движемся, с какими проблемами мы сталкиваемся и как их решаем, какие глобальные запуски и изменения планируются.Теперь расскажу о работе в моей команде Идентификации. Мы отвечаем за идентификацию пользователей: проверяем персональные данные, являемся входной точкой для всех пользователей, которые хотят прокачать статус кошелька с анонимного до именного. В команде работаем по Agile со следующими инструментами:
  • Грумминг (раз в 2 недели) — оцениваем задачи в Story Point.
  • Планирование спринта (раз в 2 недели) — данная встреча обычно следует сразу за груммингом. На ней мы решаем, какие задачи, уже оцененные в Story Point, мы берем в следующий спринт.
  • Встреча по бэклогу (раз в 2 недели) — разбираем бэклог, выбираем из него задачи в следующий спринт.
  • Ретроспектива (раз в две недели) — анализируем результаты прошедшего спринта, обсуждаем, что можно улучшить, а что мы сделали хорошо.
  • Daily (каждый день) — встреча на 10-15 минут, где мы рассказываем, что успели вчера, что сделаем сегодня, какие есть проблемы, и все ли идет по плану.
Также мы раз в месяц собираемся в Zoom вместе с командой, чтобы пообщаться на нерабочие темы. Это позволяет команде сплотиться, а новичкам запомнить коллег. Особенно актуально в пандемию, когда все работают удаленно. Внутренняя кухня backend-отдела Начнем со стека — у нас он вполне современный:
  • Java 11 — Ждём выхода LTS версии Java.
  • Gradle, Jenkins — CI/CD у нас построен на основе данных инструментов. Кому интересно, часть инструментов доступна на GitHub: https://github.com/yoomoney-gradle-plugins.
  • TestNG, Mockito, WireMock. Также у нас собственная библиотека для улучшения процесса написания тестов.
  • SpotBugs, Checkstyle, JaCoCo — не забываем про статический анализ.
  • Spring Core, Spring JDBC, Spring MVC, Spring Boot;
  • REST, JSON, OpenAPI;
  • PostgreSQL, Jooq, Flyway, ElasticSearch, Kafka;
  • BitBucket, Jira, Confluence — для BitBucket и Jira у нас множество самописных плагинов, которые облегчают работу. Например, на основе решений Atlassian построен автоматизированный релизный цикл — он выполняется полностью через интерфейс Jira и BitBucket без помощи CLI.
  • Ansible, Grafana, Kibana, Moira, Zabbix, Zipkin.
Вся разработка проходит код-ревью, а сам код покрыт тестами и статическими анализаторами. Чтобы я развивался как разработчик, существуют внутренние и внешние тренинги, митапы, техтолки, встречи в отделе, обратная связь коллег, персональное ревью. Все наши микросервисы основываются на «‎платформе». Её поддержкой и развитием занимается не только выделенная команда, но и весь наш отдел. Платформа позволяет быстрее стартовать разработку новых компонент и централизованно получать новые фичи и фиксы для существующих. В платформу, например, уже включены:
  • Настройка БД — инструменты для доступа к БД, включая шардирование.
  • Логирование — автоматическое логирование тела и ошибок HTTP запросов-ответов.
  • Мониторинг — автоматические пуши в систему мониторинга. Позволяют следить из Grafana за входящими и исходящими сетевыми запросами, состоянием пулов потоков приложения и Tomcat, хоста, пулов соединений и запросов к БД, JVM.
  • Трассировка — реализация на основе Zipkin. При межсервисных запросах к каждому сообщению в логе прикрепляется traceId. Он позволяет проследить за всеми действиями, инициированными HTTP-запросом, включая межкомпонентное взаимодействие.
  • Периодические очереди и планировщики задач — у нас собственная реализация очередей, разработка которой ведётся на GitHub: https://github.com/yoomoney-tech/db-queue.
  • И множество другой функциональности, облегчающей жизнь разработчику.
Встречи и собрания Как backend-разработчик я посещаю следующие мероприятия внутри отдела и в компании:
  • Backend Hural — ежемесячная встреча на 30-60 минут. На ней руководитель рассказывает новости отдела, синхронизирует задачи, координирует процессы, инструменты и технологии.
  • Backend Sync — еженедельная встреча по пятницам на 15-30 минут. Здесь говорим о событиях в отделе и компании, получаем обратную связь. На встрече каждый может задать вопрос руководителю отдела напрямую.
  • Backend Talks — круглый стол по предварительно выбранным насущным темам. Здесь мы обсуждаем различные темы и обмениваемся опытом. Например, недавно была встреча на тему обработки исключений в микросервисах.
  • Backend Live — здесь делимся с отделом интересными техническими решениями, рассказываем о новых технологиях. Выступить может каждый, достаточно собрать коллег в назначенное время в Zoom.
Персональное ревьюПерсональное ревью позволяет следить за настроением сотрудника, выявлять волнующие его проблемы и решать их. За мной закреплен персональный ревьюер, это тот же самый сотрудник, который был наставником в период испытательного срока. Подмечу, что мой персональный ревьюер работает в другой команде - это позволяет дать взгляд со стороны.
Анкета по результатам персонального ревью: интерфейс со стороны ревьюераОснова персонального ревью — это ежеквартальная встреча один на один, где обсуждаются все насущные вопросы. Персональный ревьюер всегда подскажет и поможет по любым техническим или личным вопросам. На встрече дается обратная связь по задачам — в чем я преуспеваю, а чего не хватает для перехода на следующий уровень.Опрос 360Опрос 360 — это процесс, который позволяет сверить уровень компетенции сотрудника с его текущей должностью. При опросе раз в полгода запускается анкетирование о компетенциях конкретного сотрудника, с которым взаимодействовал респондент. Коллеги могут быть из любых отделов: бэкендеры, тестировщики, фронтендеры, аналитики, архитекторы, продакты. В опросе предлагается оценить софт-скиллы — навыки общения и взаимодействия с коллегами, и хард-скиллы - профильные умения и навыки. Product Owner и Project Manager команды дают обратную связь по софт-скиллам, а коллеги-разработчики — как по софт-, так и по хард-скиллам.
Графики с результатами опроса 360Результаты опроса 360 принимаются во внимание при продвижении по карьерной лестнице.Планы на будущее Я хочу развиваться как программист и перейти на middle-уровень, а дальше — посмотрим. Мой наставник хорошо отзывался о моих хард-скиллах и оценил, что на переход уйдет около полугода. Может, когда-нибудь и я сам стану наставником. Приходите в нашу компанию, у нас весело! Если у вас остались какие-либо вопросы, пишите в комментариях, я буду рад поделиться своим опытом.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_java, #_jumoney (юmoney), #_backend, #_java, #_adaptatsija_razrabotchikov (адаптация разработчиков), #_onbording (онбординг), #_blog_kompanii_jumoney (
Блог компании ЮMoney
)
, #_java
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 20-Май 01:11
Часовой пояс: UTC + 5