Собеседование наоборот: «Леруа Мерлен», Nexign, «МойОфис», SportmasterLab, «Группа Астра», X5 Tech
В ноябре на Хабр Карьере проходила карьерная неделя бэкенда. Карьерная неделя — это что-то вроде дня открытых дверей, который длится всю неделю. За специалистов боролись «Леруа Мерлен», Nexign, «МойОфис», SportmasterLab, «Группа Астра» и X5 Tech.
В конце недели специалисты задают вопросы представителям компаний-работодателей, а мы выбираем самые интересные из тех, что не успели обсудить, и отправляем спикерам.
Спросили про технологии, трудоустройство, стажировку, найм джунов и отношение к трендам. Всех, кому интересно почитать о внутренней жизни компаний, приглашаем в статью.
Кто отвечал на вопросы
Дмитрий Михайлов,
руководитель направления разработки, «Леруа Мерлен»
Дмитрий Прищеп,
руководитель группы разработки «МойОфис»
Екатерина Стуканова,
старший специалист по обучению, «Группа Астра»
Кирилл Зареченец,
ведущий инженер-программист продукта ACM, «Группа Астра»
Денис Глазков,
руководитель центра разработки, Nexign
Александр Логинов,
менеджер направления HR и монетизации, X5 Tech
Валентин Бутаков,
руководитель направления департамента веб-приложений в SportmasterLab
Что почитать
Валентин Бутаков, SportmasterLab: Для изучения фундаментальных вещей неплохо бы прочитать следующие книги: Дональд Кнут «Искусство программирования»; Роберт Мартин «Чистый код. Создание, анализ и рефакторинг», «Чистая архитектура. Искусство разработки программного обеспечения»; Мартин Фаулер «Рефакторинг. Улучшение существующего кода»; Мартин Клеппман «Высоконагруженные приложения. Программирование, масштабирование, поддержка». Но одни теоретические знания не будут полезны, если не подкреплять их решением практических задач. Поэтому, кроме чтения книг и статей, не стоит забывать о применении на практике новых подходов в командной или самостоятельной разработке.
Дмитрий Прищеп, «МойОфис»: М. Клеппман «Высоконагруженные приложения. Программирование, масштабирование, поддержка»; А. Бхаргава «Грокаем алгоритмы»; К. Индрасири, Д. Курупу «gRPC. Запуск и эксплуатация облачных приложений. Go и Java для Docker и Kubernetes».
Денис Глазков, Nexign: Типичный разработчик Nexign читает и смотрит (и вам советует) следующее: Мартин Клеппман, «Высоконагруженные приложения. Программирование, масштабирование, поддержка»; Роберт Мартин «Чистая архитектура. Искусство разработки программного обеспечения»; лекции и выступления Евгения Борисова, блог Романа Елизарова.
Александр Логинов, X5 Tech: Роберт Мартин «Чистая архитектура»; «Чистый код»; Стив Макконнелл «Совершенный код»; Банда 4-х «Шаблоны проектирования»; Мартин Фаулер «Шаблоны корпоративных приложений»; Мартин Клеппман «Высоконагруженные приложения»; Блох Джошуа «Java. Эффективное программирование»; Дуг Ли, Брайан Готц «Java Concurrency на практике».
Трудоустройство и компания
Можете ли вы предложить адаптивный рабочий график для кандидата, который одновременно является студентом и требует определённой гибкости в расписании для посещения учебных занятий в вузе в течение недели?
Дмитрий Михайлов, «Леруа Мерлен»: Для стажёров мы гибко подходим к количеству рабочих часов: вы можете самостоятельно распределять занятость рабочими задачами в течение дня. Важно, чтобы была возможность работать не менее 30 часов в неделю, но в течение рабочего времени.
Валентин Бутаков, SportmasterLab: Адаптивный рабочий график возможен. У нас в компании работают студенты, которые очно получают высшее образование параллельно с работой. Они устроены на часть ставки и могут гибко менять график работы в зависимости от расписания в университете. Но количество таких мест для стажировки ограничено.
Денис Глазков, Nexign: Зимняя и летняя стажировки в Nexign проходят в формате фултайм (восьмичасовой рабочий день). Гибкий график предполагает, что можно выбирать время начала работы (с 8:00 до 11:30). Другие изменения в графике согласовываются индивидуально с руководителем.
Екатерина Стуканова, «Группа Астра»: У нас гибридный график работы, с занятостью от 20 часов в неделю. Студент может подобрать подходящий график для прохождения стажировки без отрыва от обучения в вузе.
Александр Логинов, X5 Tech: В этом вопросе всё очень сильно зависит от команды, куда человек приходит работать. Многие хотят, чтобы специалист был у них на 100%, поэтому при выборе кандидатов могут отдать предпочтение другому. Такой вариант, скорее, подходит для стажировки.
С какими проблемами столкнётся сотрудник в вашей компании, если он до этого занимался соло-разработкой?
Денис Глазков, Nexign: В Nexign развитые и удобные внутренние процессы, поэтому понять, как всё работает, будет несложно. При этом тебе предстоит найти общий язык с командой, учитывать требования к разработке и укладываться в дедлайны.
Александр Логинов, X5 Tech: Придётся адаптироваться к командной работе: будут взаимодействия с коллегами, например, системными аналитиками или QA. Это не станет большой проблемой: в командах атмосфера здорового общения. И всегда есть тимлид, который помогает новичку с адаптацией, взаимодействием и другими аспектами начала работы.
Дмитрий Прищеп, «МойОфис»: Хотя в «МойОфис» и задокументирован код, разработка продуктов идёт очень давно (чуть более 10 лет, компания основана летом 2013 года), поэтому соло-разработчику может быть первое время тяжеловато разобраться с необходимой документацией. Но у нас с этим точно помогают коллеги. Кроме того, в «МойОфис» принято делиться с командой тем, как именно специалист планирует реализовать новую функциональность, мы обсуждаем новые фичи — так знания сохраняются не у одного сотрудника и не возникает эффекта «бутылочного горлышка».
Кирилл Зареченец, «Группа Астра»: Проблем возникнуть не должно. В команде разработки продукта ACM есть практика работы парами/тройками. Это достаточно комфортный вариант перехода в нашу компанию.
Валентин Бутаков, SportmasterLab: Мы используем продуктовый подход, при котором команда закрепляется за продуктом и несёт ответственность за него на всём жизненном цикле начиная от проработки требований и аналитики до развёртывания в прод. В такой команде сотруднику важно уметь коммуницировать в команде при появлении проблем, а не зависать одному на длительное время. Для команды также важен навык разработчика декомпозировать работу на независимые части, которые могут разрабатываться параллельно. Но основное умение, которое приходит только при работе в команде, это способность не усложнять код и делать его понятным для всех, а не только для самого себя.
Дмитрий Михайлов, «Леруа Мерлен»: Нужно перестроить мышление на командную работу, потому что один человек не может сделать крупный проект. Кроме написания кода приложения, есть ещё аналитика как бизнеса, так и его процессов. А некоторые изменения влекут за собой изменения процессов как внутри компании, так и для наших клиентов. Проще представить команду как единый организм или механизм, где все должны делать свои функции, иначе не получится достичь большого результата и создать новую ценность.
Процессы
Как часто вы анализируете архитектуру на предмет общих паттернов для выделения этого в отдельный фреймворк для упрощения следующих разработок? Какие результаты?
Александр Логинов, X5 Tech: Если говорить об архитектуре решений или корпоративной архитектуре, то там коллеги используют фреймворк C4, ведут общий реестр ИТ-систем и их функций. Такой подход позволяет избежать излишнего дублирования функций в системах. Если рассматривать готовые компоненты для типовых задач, то сейчас ведётся активная работа по созданию бойлерплейт-проекта для наших стеков, а после будет запущен проект по анализу и выделению переиспользуемого кода в отдельные артефакты.
Валентин Бутаков, SportmasterLab: В компании для каждой бизнес-области есть команда функциональных архитекторов, которые принимают решения в рамках бизнес-области. За техническую архитектуру продукта отвечают сами продуктовые команды. Как пример выделения общего функционала можно привести создание e-commerce-платформы. В 2018 году было принято решение реализовать единую платформу, которая бы обслуживала все интернет магазины группы компаний Спортмастер. Ранее этот функционал дублировался в разных продуктах. Новая платформа, позволила сделать создание, сопровождение и развитие интернет магазинов проще благодаря переиспользуемому функционалу. Выделение общих фреймворков для команд практически не практикуем из-за сложностей с необходимостью поддержки, а также блокировками в командах при потребностях в доработках этих фреймворков. Также у нас есть платформенные команды в областях веб и мобильной разработки. Они занимаются проведением RnD и разработкой общих подходов и инструментов, которые могут использовать другие команды.
Кирилл Зареченец, «Группа Астра»: Я бы не стал говорить о фреймворке, скорее, о библиотеках и подпроектах (в git). После каждого минорного релиза мы проводим анализ с целью выделения общих моментов.
Денис Глазков, Nexign: В Nexign есть процесс разработки ПО, в который встроено участие архитекторов на разных этапах от первичного проектирования до отгрузки дистрибутива. Есть внутренние регламентные документы, которые помогают продуктовым командам строить архитектуру своих продуктов по определённым паттернам с учетом информационной безопасности. В частности, есть процесс управления технологическим стеком, который позволяет не «раздувать» набор используемых инструментов.
Дмитрий Михайлов, «Леруа Мерлен»: Для этого есть технический архитектор и энтерпрайз-архитектор внутри доменов, которые следят за продуктами и их устройством. И из-за тесного взаимодействия с командами сами коллеги в командах подсвечивают места, на которые нужно обратить внимание и как-то переделать.
Например, та же декомпозиция функционала, чтобы микросервис или компонент продукта не стал превращаться в зародыш монолита. Если же кейс сложный и неоднозначный, то для это существует архитектурный комитет, который поможет справиться с неоднозначностью. Ещё стоит упомянуть, что в компании есть подсчёт технического долга и долга информационной безопасности. В нём подсвечиваются проблемные места, которые отличаются от стандартов, принятых в компании.
Дмитрий Прищеп, «МойОфис»: Мы пересматриваем архитектуру, когда нам необходима новая функциональность либо когда дублируется старая.
Насколько напряжена атмосфера в период выпуска релизов? Стоит ли внедрять практики медитаций для сотрудников? :)
Дмитрий Прищеп, «МойОфис»: Как и во многих компаниях, релизный период в «МойОфис» проходит более активно по сравнению с тем временем, когда релизов нет. В среднем у нас четыре крупных обновления в год, поэтому фактор высокой нагрузки небольшой. Даже в релиз мы стараемся поддерживать work-life balance — например, не работаем на выходных, ходим на тимбилдинги и пр.
Денис Глазков, Nexign: К релизам в Nexign подходим ответственно, секрет вовремя завершённого проекта — это грамотно запланированные спринты. Если всё же возникли непредвиденные обстоятельства, то завершаем этап все вместе, плечом к плечу. Буквально: у нас есть практика создания проектных рабочих зон, где все, кто занят в задачах, сидят за соседними столами — так намного быстрее можно спросить совета или сообщить о прогрессе. А после обязательно идём праздновать, чтобы отметить общее достижение.
Валентин Бутаков, SportmasterLab: В большинстве команд настроено непрерывное развертывание, при котором каждая готовая задача сразу деплоится в прод после разработки и тестирования. Это исключает само понятие релизов. В компании не приветствуются переработки и работа в нерабочее время, поэтому мы стараемся планировать равномерную загрузку и исключать напряжённую атмосферу в команде.
Дмитрий Михайлов, «Леруа Мерлен»: Без стресса не бывает развития :) Но перегорать из-за этого не стоит, поэтому в компании следят, чтобы люди не были под постоянным стрессом. В некоторых командах есть внутрикомандные активности (тематические ретро, командные игры), которые помогают снижать уровень стресса, устранять его причины или как-то нивелировать его. Коллеги в офисе иногда пользуются комнатой отдыха или массажными креслами, кто-то же предпочитает сходить в спортзал. Также стоит упомянуть о правилах релизов: мы не устанавливаем релизы в пятницу и выходные, если такое возможно для продукта. На выходных все должны отдыхать и уходить в выходные спокойными и уверенными в своём спокойствии.
Александр Логинов, X5 Tech: Конечно, релиз — процесс более напряжённый, чем обычная разработка, но я бы не сказал, что есть команды, где каждый релиз можно описать известным мемом с собачкой This is fine.
Кирилл Зареченец, «Группа Астра»: Мы подходим к выпускам релизов как к некой повторяющейся активности. По рабочей обстановке в команде он сравним с Review спринта и будет восприниматься буднично.
По каким показателям оцениваете эффективность сотрудника на той или иной должности?
Денис Глазков, Nexign: В Nexign эффективность работы сотрудника оцениваем по критериям: скорость и качество выполнения задач, достижение высоких результатов, внедрение новых эффективных практик, рациональное использование ресурсов, проактивность и т.д. Вместе с этим дважды в год присваиваем рейтинги результативности, которые напрямую зависят от того, как сотрудник выполняет поставленные цели.
Александр Логинов, X5 Tech: У разработчиков квартальное премирование и квартальная постановка целей. Их выполнение — часть оценки эффективности. Раз в полгода проводится оценка индивидуальной компетентности, это софтовая история. Последнее, но не менее важное — выполнение индивидуального плана развития, который есть у каждого разработчика.
Дмитрий Прищеп, «МойОфис»: Могу рассказать про свою группу. Мы оцениваем качество работы — насколько хорошо сотрудник выполняет свои задачи и достигает поставленных целей. Производительность — сколько сотрудник выполняет за определенный период времени. Ну и, пожалуй, коммуникабельность — насколько хорошо сотрудник устанавливает контакты с коллегами, потому что этот навык повышает информированность команды о проектах и статусах и влияет на сплоченность команды в целом.
Дмитрий Михайлов, «Леруа Мерлен»: В компании есть матрицы компетенций для профессий, которые используются как маршрутные карты для развития в своей профессии или в интересующей вас, если есть желание сменить её. Сессия оценки проходит раз в год, но есть и промежуточные сессии для корректировки годовых целей и индивидуального плана развития. А теперь ответ: эффективность оценивается по результатам работы, выполненным целям, плану развития. Если индивидуальный план развития больше нацелен на развитие в рамках профессии, то цели касаются продуктов команды, если мы говорим про продуктовые команды. Для команд домена технологий цели более технические и нацелены на обеспечение работы продуктовых команд и предоставления им инструментов для работы и создания продуктов для наших конечных пользователей — наших внутренних сотрудников, клиентов и партнёров.
О старте карьеры и найме джунов
Что нужно продемонстрировать джуну в резюме, чтобы он заинтересовал команду?
Екатерина Стуканова, «Группа Астра»: Стажёров мы рассматриваем со знаниями семейства ОС Linux. Далее общаемся индивидуально.
Александр Логинов, X5 Tech: Уверенные знания основных технологий, с которыми придется работать. По Python — это сам язык и Django. По Java — язык и Spring. Нужно уметь работать с git, немного знать о базах данных. Огромным плюсом будет стремление развиваться и учиться.
Денис Глазков, Nexign: В CV указывай только самую главную и убедительную информацию о себе и своих достижениях. Если опыта недостаточно, напиши об учебных проектах или практике. При этом помни, что резюме не универсально, важно обновлять его под вакансию: подбирай релевантный опыт и кейсы.
Валентин Бутаков, SportmasterLab: Продуктовые команды не набирают джунов напрямую, мы оформляем им стажировку в компанию. Они числятся в соответствующем центре компетенций, но могут выполнять задачи продуктовой команды, за которой временно закреплены. Это позволяет им получить практический опыт командной работы. Обычно при наборе джунов мы оцениваем базовые теоретические знания и практические навыки разработки прикладных задач. Обращаем внимание на выбранные способы самообучения и интерес к дальнейшему развитию, фундаментальное профильное образование также будет плюсом.
Дмитрий Михайлов, «Леруа Мерлен»: Недавно слышал термин «искра разработчика» или как-то так. Суть в том, что инженер не должен останавливаться на достигнутом и не должен отчаиваться, если «код не собирается». Самое главное, что после ряда попыток он всё-таки заработает, получены новые знания, навыки и опыт, которые дальше будут использоваться в работе. Из резюме бывает сложно понять, что «это тот самый», поэтому и существует техническое собеседования. Для повышения своих шансов можно приложить ссылку на свои публичные git-репозитории. Но готовьтесь к вопросам, потому что чужой код всегда вызывает интерес, любопытство и безудержное желание задать парочку вопросов. Но не нужно этого бояться, воспринимайте это как code-review, которого так не хватало, когда вы писали свой код.
Интересуют программы стажировок. Какие есть, какие будут?
Валентин Бутаков, SportmasterLab: Для джунов у нас в компании есть стажировка. Стажировка — это работа по официальному трудовому договору с оплатой, возможно на часть ставки. Стажёр числится в соответствующем центре компетенций, но работает в одной из продуктовых команд. В процессе стажировки сотрудник выполняет как учебные задачи, так и задачи продукта. За ним закрепляется ментор, который помогает с развитием. Позиций для стажёров в компании немного, массовых наборов на стажировки нет.
Дмитрий Михайлов, «Леруа Мерлен»: Наши открытые вакансии практикантов вы можете увидеть на нашем сайте.
Екатерина Стуканова, «Группа Астра»: У нас есть как индивидуальные программы стажировок, так и групповые. Чтобы узнать больше об открытых направлениях, то можно написать мне на почту.
Денис Глазков, Nexign: В Nexign проводим зимние и летние стажировки в формате фултайм (восьмичасовой рабочий день). Ребята участвуют во внедрении сложных технических решений с использованием целого спектра современных технологий. Открытые стажерские вакансии публикуем на карьерном сайте, а также делимся анонсами в telegram-канале Nexign Students.
Александр Логинов, X5 Tech: Пока в Backend стажировок у нас нет. Если собёремся, мы обязательно это анонсируем на нашем карьерном лендинге.
Как лучше всего выделиться для джуна среди тысячи конкурентов на вакансию притом, что вакансий крайне мало, а конкуренция очень большая? Если ли «золотой стек», благодаря которому даже джуну можно легко найти работу?
Александр Логинов, X5 Tech: «Золотой стек» — это то, что популярно и востребованно на рынке сейчас. Можно взять наш, он как раз такой. Python + Django, Java + Spring Boot, PostgreSQL, Kafka, RabbitMQ, k8s, Docker. Выделяться стоит, в первую очередь, задачами, которые удалось решить, полученным опытом, техническим кругозором.
Екатерина Стуканова, «Группа Астра»: В фокусе C++, Python, Linux.
Валентин Бутаков, SportmasterLab: Важным качеством для джуна является желание и способность к постоянному развитию. Если в свободное время постоянно изучать новое, совершенствоваться в написании кода, изучать паттерны и подходы современной разработки, то это будет заметно на собеседовании и потенциально поможет получить оффер или стажировку. Думаю, что «золотой стек» для джуна вряд ли существует. На вакансии для джунов с распространёнными языками программирования идет огромный поток кандидатов, а на проекты с архаичными языками программирования вряд ли их рассматривают.
Дмитрий Прищеп, «МойОфис»: Любому работодателю важен опыт решения практических задач, и, продемонстрировав его, вы точно сможете выделиться среди других кандидатов. На мой взгляд, показательным может быть также участие соискателя в хакатонах, недавно пройденные обучающие курсы. На курсах, кстати, как раз часто решают задачи, которые могут дать тот самый опыт. Большим плюсом для кандидата могут стать его собственные проекты, хорошо выполненное тестовое задание, а также вклад в другие проекты на Github.
Дмитрий Михайлов, «Леруа Мерлен»: Отчасти этот вопрос пересекается с вопросом выше. У каждой компании есть свой стек технологий, фреймворков, языков программирования, которые они используют для разных задач. И везде он плюс-минус одинаковый, но есть свои уникальные технологии, библиотеки, а может, даже свои собственные фреймворки. Поэтому нужно показать свою «базу» для дальнейшего развития. Если у вас есть план обучения на полгода, 1 год, 3 года, то можно рассказать про него на собеседовании, а еще попутно не забывать ответить на вопросы «Зачем вам это?» и «Почему это?», так потенциальным новым коллегам будет понятно, как вас дальше развивать и помогать вам стать инженером.
Денис Глазков, Nexign: Начать стоит с корректно составленного резюме. Обрати внимание, чтобы оно отвечало требованиям в описании вакансии. Укажи свои достижения: пет-проекты, олимпиады, хакатоны и любые другие активности. Будет лучше, если сможешь подтвердить все это ссылками на гитхаб. Уже на собеседовании ты сможешь продемонстрировать знания и навыки, полученные в ходе реализации этих проектов. И да, «золотого стека» не существует, так как у каждого проекта свои требования и набор используемых технологий.
Как джуниор-разработчику понять, что он уже подходит на должность мидла? Чем фундаментально отличается мидл от джуна?
Дмитрий Михайлов, «Леруа Мерлен»: Главные отличия — самостоятельность, автономность, слаженная командная работа, ориентация на результат в виде новой ценности продукта. По началу работы младшие инженеры больше вовлечены в процесс обучения и ожиданий для них соответствующие. Никто не ждёт от вас запуска космического корабля, но будут вам помогать, чтобы вы достигли этого вместе с командой. Ведь с каждым вашим достижением вы становитесь ближе к «настоящему» инженеру, но и ошибки тоже делают нас лучше. Поэтому совершайте ошибки, пока учитесь, потому что пока что их цена не так велика. Хотя если вы видите ошибку впереди и действуете проактивно, вы на правильном пути.
Валентин Бутаков, SportmasterLab: Начинает писать простой и понятный код без усложнений, решающий поставленные задачи. Имеет навыки и опыт проведения рефакторинга, следит за техдолгом продукта. Умеет декомпозировать и оценивать задачи с учётом рисков и неопределённости. Если говорить конкретно про нашу компанию, то для каждой компетенции у нас есть грейдовые модели, которые описывают необходимые знания и умения на каждом уровне.
Денис Глазков, Nexign: В рамках всех проектов Nexign для студентов обращаем внимание на тот факт, что построением карьеры нужно заниматься постоянно. Увы, ничего не складывается само собой. Поэтому, начиная свой путь в компании, важно узнать о системе грейдов, требованиях к желаемой должности и наборе технологий, которыми нужно владеть, чтобы перейти на позицию выше. Обычно компании заинтересованы в развитии сотрудников и сами создают условия для этого. Например, у нас есть такой инструмент как «Карьерные лестницы» и корпоративная академия. Фундаментальное отличие между мидлом и джуном — в количестве реальных проектов за плечами, уровне владения технологиями, скорости и качестве выполнения задач и в умении работать самостоятельно.
Александр Логинов, X5 Tech: Главное отличие — глубина знаний тех инструментов, которые разработчик использует. Условно, джун знает как сделать, мидл понимает, как сделать и как инструмент работает.
Про удалёнку
Возможна ли полная удалёнка в вашей компании?
Валентин Бутаков, SportmasterLab: В компании можно выбрать полностью удалённый формат работы, что вместе с электронным документооборотом минимизирует необходимость очного посещения офисов. Однако примерно раз в полгода команда на несколько дней собирается вместе в одном из наших офисов в выбранном городе для проведения тимбилдингов и совместной работы.
Дмитрий Михайлов, «Леруа Мерлен»: Возможен полностью удалённый формат работы с сотрудниками, находящимися постоянно на территории РФ для ролей с уровня middle. Стажёрам мы предлагаем гибридный формат работы (офис + удалёнка), так как нам важно провести полное погружение в роль, профессию и бизнес.
Александр Логинов, X5 Tech: Да, никаких проблем в этом нет.
Дмитрий Прищеп, «МойОфис»: Да, у нас немало старших разработчиков на удалёнке, прежде всего это связано с их высокой степенью самоорганизации и производительностью. Вопросы с удалёнкой для разработчиков уровня ниже senior рассматриваем в индивидуальном порядке.
Екатерина Стуканова, «Группа Астра»: Всё зависит от команды: кто-то работает удалённо, в других предусмотрен гибрид, если сотрудник живёт в городе, где есть офис компании, в исключительных случаях есть офисный формат.
Какой в вашей компании формат работы? Возможна ли удалёнка вне территории РФ?
Екатерина Стуканова, «Группа Астра»: Если формат работы в команде позволяет работать удалённо, то можно находиться в любой точке РФ. Однако работа за границей у нас не предусмотрена.
Валентин Бутаков, SportmasterLab: В нашей компании есть возможность удалённо работать из любой точки мира. Более подробную информацию об условиях работы и оформления можно уточнить на собеседовании.
Дмитрий Михайлов, «Леруа Мерлен»: Возможны разные форматы работы: в удалённом формате на территории России или гибридно (в офисе в Москве + удалённо).
О карьере и скиллах
Когда и как происходит тот самый переломный момент, когда джун вырастает до миддла? Какие признаки в работе джуна явно указывают, что он готов к следующему грейду?
Кирилл Зареченец, «Группа Астра»: Тут можно поспорить с правомерностью оценки junior/middle/senior и т.д. От организации к организации один и тот же человек может быть оценен совершенно по-разному, поскольку у компаний разные критерии и методы отбора. Если же отбросить все эти условности, то для начинающего программиста важным навыком, говорящим о его росте, является уход от повторения чужого кода, поиска класса или функции в проекте, которую нужно лишь немного переделать под свою задачу.
Александр Логинов, X5 Tech: Глубина знаний отличает мидла от джуна. Джун умеет использовать инструмент, но не задумывается о его внутреннем устройстве. Мидл уже хорошо понимает внутреннее устройство библиотеки или фреймворка. Мидл может самостоятельно решить проблему, которая возникла при использовании какой-то библиотеки, когда джуну всегда в этом потребуется помощь: опыта и насмотренности ещё не хватает.
Денис Глазков, Nexign: Nexign уделяет большое внимание карьерному развитию сотрудников и старается сделать этот процесс максимально прозрачным: коллеги чётко видят свои перспективы, будь то повышение в должности, смена роли или специальности. Карьерный трек сотрудника включает в себя набор определённых навыков и специализаций, которыми он должен обладать, чтобы занять следующую карьерную ступень.
Три обязательных навыка, отличающие Middle от Senior.
Александр Логинов, X5 Tech: Широкий технический кругозор, архитектура приложений, опыт (хоть это и не навык).
Валентин Бутаков, SportmasterLab: Учитывает возможность дальнейшей поддержки и масштабируемость своих архитектурных и технических решений. Может оценить соответствие технического решения целям бизнес-задачи, предлагает альтернативы и принимает решения с учётом рисков. Контролирует весь процесс доставки бизнес-ценности на прод, а не просто разрабатывает решения, которые удовлетворяют требованиям и постановке. В нашей компании для каждой компетенции есть грейдовые модели, которые описывают необходимые знания и умения на каждом уровне.
Дмитрий Михайлов, «Леруа Мерлен»: Автономность, слаженная командная работа, ориентация на результат в виде новой ценности продукта. Но на более высоком уровне. Если для middle достаточно слаженной командной работы, то для senior это переходит на уровень партнёрства с team-lead и владельцем продукта. При ориентировании на результат в виде ценности senior-разработчик должен стремиться не просто поставить новый функционал, но и выполнить нефункциональные требования, которые улучшают процесс использования продукта.
Путь развития инженера — это для вас тупиковый путь? Инженер, который не стремится стать лидом или прочими менеджерами, вызывает у вас пренебрежение или сочувствие?
Денис Глазков, Nexign: В Nexign работают специалисты с глубочайшим знанием своей предметной области. Многие из них являются инженерами мирового уровня, поэтому фокусом своего развития они выбирают именно углубление экспертизы и решение самых сложных задач.
Дмитрий Михайлов, «Леруа Мерлен»: Быть менеджером — совсем другая работа. Не всем инженерам она будет подходить. Поэтому, если вы попробовали, и у вас не получилось, то сделайте правильный выбор, отступите на шаг назад. Проведите самоанализ и задайте себе вопрос: «Этого ли я хочу?». Чувствовать себя на своём месте гораздо лучше, чем бессонные ночи и разбитое вдребезги чувство собственного достоинства. Но если у вас есть предрасположенность, и вы готовы к новому этапу обучения и полосе испытаний на своем пути — дерзайте, пробуйте. Возможно, вы будете чьим-то лучшим тимлидом или руководителем.
Александр Логинов, X5 Tech: Классный инженер всегда пригодится, поэтому мы относимся к таким специалистам с уважением. Да и не все хотят и могут стать лидом или менеджером. В рамках backend у нас развиваться можно на позиции senior, прокачивая свои навыки дальше. По карьерной лестнице следующая ступень — уже тимлид. Но никто не мешает совершить горизонтальный переход и уйти в архитектуру решений.
Кирилл Зареченец, «Группа Астра»: Скорее, наоборот, любая организация только выиграет от того, что люди могут выбрать не только вертикальное развитие (карьера в сторону менеджмента), но и горизонтальное. В нашей компании существует внутренняя ротация, когда специалист из одной команды может перейти в другую. Мы видим в этом только плюсы.
Валентин Бутаков, SportmasterLab: В карьерной модели компании существует разделение экспертного и лидерского треков. Считаем развитие инженера как эксперта в какой-либо области таким же ростом, как и лидерское развитие до менеджера. Мы понимаем и принимаем такую позицию сотрудников, и такие эксперты полезны для компании не меньше, чем лиды.
Упрямый тимлид, который «зарезает» новые идеи, ведь, согласно его опыту, лучше сделать так. Как работать и взаимодействовать в команде? Как развить свои софт-скиллы, чтобы тимлид согласился принять новое решение?
Денис Глазков, Nexign: Девизом текущего года в Nexign стал слоган Out of the box, так на уровне всей компании мы меняем мышление и поощряем инициативу. Кроме того, одна из корпоративных ценностей Nexign звучит как #DriveChange, то есть на уровне общих принципов работы мы часто предлагаем решения и поддерживаем инициативу коллег. Так что есть смысл искать команду, в которой понравится работать, развивать искусство аргументации и, конечно, искать информацию на эту тему. К примеру, можно обратиться к статье в нашем корпоративном блоге на Хабре, где один из тимлидов Nexign поделился опытом совместного принятия решения: «Пирамида наоборот: как делегировать ответственность в распределённой команде».
Кирилл Зареченец, «Группа Астра»: В сознании человека есть место как консервативным стратегиям, так и радикально новым идеям, принципам и т.д. Если тимлид придерживается консервативных взглядов по руководству командой, то, скорее всего, для этого есть повод (учитывая, что вопросы сдачи, сроков, логики развития находятся непосредственно в его зоне ответственности). Но это не отменяет того факта, что для нахождения баланса в сложной ситуации с упрямым тимлидом можно и нужно предлагать необычные решения и подходы. Однако при этом важно, чтобы сроки релизов/сдачи точно не менялись, новые идеи еще на стадии обсуждения демонстрировали явные и измеримые плюсы.
Александр Логинов, X5 Tech: Упрямый тимлид — это боль как для подчиненных, так и для его руководителя, поэтому с такими надо работать, исправлять ситуацию. Для защиты своей позиции пригодится стройная речь, лаконичное аргументирование, умение слышать аргументы собеседника и понимать его точку зрения. И важно не бояться авторитета лида, он тоже человек.
Валентин Бутаков, SportmasterLab: Перед тем, как презентовать тимлиду новую идею, необходимо подготовиться самому и заранее описать аргументацию с указанием плюсов и минусов предлагаемого решения. Если не получается выходить на конструктивный разговор с обсуждением аргументов, то развивать свои коммуникативные навыки и умение вести переговоры.
Дмитрий Михайлов, «Леруа Мерлен»: Почитайте про «конструктивную конфронтацию», подход win-win в переговорах и развивающую обратную связь. Это полезно для всех. Возможно, вы просто друг друга не понимаете.
Дмитрий Прищеп, «МойОфис»: Так бывает, к сожалению, человеческий фактор никто отменяет. ИТ-специалисты зачастую работают именно в команде, и навыки сотрудничества и коммуникации очень важны. Опять же, повышать навыки коммуникации я бы порекомендовал через хакатоны, особенно когда есть командная разработка. На таких мероприятиях можно научиться отстаивать свое мнение и продвигать свои аргументы. Еще по моему опыту компании, заинтересованные в создании комфортной рабочей атмосферы, уделяют немало времени и развитию сотрудников. У нас в «МойОфис», например, есть внутренние курсы по развитию лидерских качеств для лидов команд, так что с таким лидом у нас вы точно не столкнетесь. Профессиональное и развивающее окружение очень важно. В нашей компании работают профессионалы, у которых можно многому научиться. Согласно внутреннему опросу вовлеченности, около 90% сотрудников могут рекомендовать работу у нас и работу со своим руководителем.
Как перейти на новый стек технологий с неактуального, если у тебя уже большой стаж в профессии и есть теоретические знания по новому стеку (для тебя), но всем компаниям нужен коммерческий опыт по нему?
Дмитрий Михайлов, «Леруа Мерлен»: Сделайте домашний проект, который показывает использование нового стека. Добавьте ссылку на него в резюме и не забудьте сделать хороший README.md. После на собеседовании будьте готовы к большому количеству вопросов по вашему проекту и новому стеку.
Кирилл Зареченец, «Группа Астра»: В «Группе Астра» переход на новый технологический стек в рамках одной компании возможен через реализацию R&D-проектов, переход в соседнее подразделение, уже использующее новые технологии. Если же говорить про иные компании, то тут мы видим два варианта. Первый — переход на новый технологический стек через демпинг зарплаты, второй — участие в открытых проектах, волонтёрство и т.д. Однако, как мне кажется, это не всегда работает, так как, судя по личному опыту, подобная активность не всегда рассматривается как коммерческий опыт.
Валентин Бутаков, SportmasterLab: Можно начать с попытки получить коммерческий опыт с новым стеком в текущей компании. Обычно компании заинтересованы в удержании опытных сотрудников и могут предложить переход в команды с более интересным стеком или частичную загрузку такими задачами. Если же в текущей компании такой возможности нет, другие компании отказывают, а желание перейти на новый стек велико, то можно начать накапливать практический опыт становясь контрибьютором в open-source проектах.
Александр Логинов, X5 Tech: Это сложно и страшно. Я сам перешел из ABAP (SAP) в Java-разработчики. Повезло, что в компании, в которой я работал, открылось новое направление. Большой стаж в профессии даёт хорошее преимущество: есть кругозор. Я бы посоветовал поискать в своей компании направление, где можно начать писать на новом языке, получить таким образом желанный коммерческий опыт.
Тренды и технологии
Насколько будет актуален язык Java в ближайшие пять лет и почему?
Валентин Бутаков, SportmasterLab: Язык программирования Java регулярно занимает высшие строки рейтингов самых популярных и востребованных языков программирования. Данный язык универсальный, сфера применения обширна: от промышленных программ и десктопных приложений до веб-приложений и корпоративного софта. У многих крупных компаний проекты уровня enterprise написаны на Java. Все это позволяет прогнозировать высокую востребованность Java на ближайшие годы.
Денис Глазков, Nexign: Отвечая кратко: Java не станет менее актуален, чем был предыдущие пять лет. Если рассматривать вопрос чуть шире, то не стоит оценивать перспективы ЯП изолированно, корректнее говорить о Java-стеке. Он, в свою очередь, включает в себя целый набор мощных и широко используемых технологий, а значит, останется актуальным даже при смене ЯП: например, если вместо Java будем использовать Kotlin.
Александр Логинов, X5 Tech: Java будет жить вечно :) Язык широко распространён. Более короткие циклы релизов позволяют быстрее получать новые функции языка. У языка огромная экосистема с решениями на все случаи жизни.
Дмитрий Михайлов, «Леруа Мерлен»: Пока у технологии, фреймворка, языка программирования есть сообщество, оно живет. Я шесть лет назад думал, что Java 8 — это просто космос, но скоро будет Java 21. И представьте, там есть что-то новое и полезное.
Какой стек технологий используете?
Кирилл Зареченец, «Группа Астра»: У нас в компании 17 продуктовых команд, в каждой из них свой стек и свой набор инструментов. Если выделять основные ЯП в «Группе Астра», то это C/C++, Python, Ruby, Go, Kotlin.
Денис Глазков, Nexign: В Nexign большое количество проектов, все они, как правило, сложные и масштабные. Большинство разработчиков пишет на Java, кто-то на Go, есть хардкорные команды на C++ и чистом С, новая команда по разработке корпоративных решений использует C# и .net.
Александр Логинов, X5 Tech: Стеков 2: Java + Kotlin (Spring Boot, Web, WebFlux, Data, Security) и Python (Django, DRF, aiohttp, fastapi). Из общего: PostgreSQL, Redis, Clickhouse, Tarantool, Greenplum, Kafka, RabbitMQ, k8s, Docker, Gitlab, ELK, Grafana, Prometheus.
Валентин Бутаков, SportmasterLab: В компании существует технологический радар, на котором указан весь используемый стек. При необходимости команды инициируют добавление на радар новых языков, фреймворков и подходов. На данный момент на бэкенде используем следующий стек:
Языки: Java (17, 21), Kotlin
Фреймворки: SpringBoot (MVC, WebFlux)
БД: Oracle, MongoDB, Redis, ElasticSearch
Брокеры очередей: RabbitMQ, Kafka
Инфраструктура: k8s, helm, docker.
CI/CD: GitLab + Continuous Deployment
Логи, метрики: ELK, Prometheus, Grafana
Дмитрий Михайлов, «Леруа Мерлен»: На нашем сайте указан стек технологий, который мы актуализируем каждый квартал или полгода.
Есть ли тенденция в российских компаниях по переходу на полностью российский софт, т.е. отказ от сотрудничества с западными технологиями? И если да, то какова судьба на российском рынке разработчиков, которые в работе применяют, к примеру, такие технологии как Laravel, WordPress, openCart, Symphony и подобные? Роль «Битрикса» как инструмента создания сайтов сейчас займёт лидирующее место на рынке России?
Александр Логинов, X5 Tech: Импортозамещением сейчас занимаются многие, кто-то берет готовые решения, представленные на российском рынке. У нас много собственной разработки с использованием open source-составляющих, коробочные решения для продуктов мы берём редко.
Валентин Бутаков, SportmasterLab: В компании не используем указанные фреймворки и решения. Компания ориентирована на in-house разработку, коробочные решения не используем.
Дмитрий Михайлов, «Леруа Мерлен»: Open source непобедим, но иногда удобнее и выгоднее пользоваться коммерческими инструментами и продуктами. Поэтому стоит смотреть с этой точки зрения, когда стоит вопрос об использовании чего-либо.
Для использования open source нужно быть инженером, но не всегда им можно быть одинаково хорошим во всех направлениях. Часть можно отдать коллегам, которые за определеённую плату заберут часть забот на себя.
Что считаете будущим веба, убьёт ли рынок ИИ?
Дмитрий Прищеп, «МойОфис»: Лично мне кажется, что это всё-таки больше кликбейт, чем правда. ИИ может выполнять определённые задачи, но он не обладает творческим мышлением, у него не развита интуиция, а и первое, и второе крайне важное для создания сложных программ и решения нетипичных задач. Кроме того, в вебе программы не только создаются, необходимо их тестировать, настраивать работу и решать проблемы, которые могут возникнуть в процессе. Всё это требует высокой квалификации и опыта, которые ИИ не сможет полностью заменить, во всяком случае на данный момент.
Александр Логинов, X5 Tech: Будущее веба — за автоматизацией управления ресурсами и снижением издержек на разработку. Мне нравится концепция serverless, потому что она позволяет написать только необходимую бизнес-логику, отбросив всю остальную «шелуху». ИИ не убьёт рынок, он его изменит. Скоро навык грамотного общения с ChatGPT может появиться в требованиях к кандидатам :)
Дмитрий Михайлов, «Леруа Мерлен»: Кто делает ИИ? Человек :) Нам для новой идеи нужна чашечка кофе, а ИИ — специализированные процессоры и желательно надёжный источник электричества. Также основой для ИИ являются знания в виде информации, которую сделали люди, может, даже вы. Как ассистент ИИ точно будет помогать, но принимать решения всё равно людям. Для меня ИИ — новая реинкарнация системы принятия решений. Только теперь такая система доступна всем, а не только крупным корпорациям.
Про спикеров
Хотелось бы услышать истории получения первого оффера, и какими скилами обладали на тот момент.
Дмитрий Михайлов, «Леруа Мерлен»: Я в университете делал программный комплекс для приёма абитуриентов. Но оказался я там без собеседования :) Был смешной разговор: «Мы тут заметили, что у тебя лабораторные хорошие получаются, а хочешь поработать над системой для университета?». Наверное, это ещё ответ на вопрос, как устроиться на работу без собеседования :) Если ранее ваши успехи оценили и увидели в вас потенциал.
Денис Глазков, Nexign: Я получил свою первую работу после прохождения стажировки в компании. Тогда я был еще студентом третьего курса. Из скиллов на тот момент имел учебно-теоретический опыт по релевантным технологиям и большое желание учиться и практиковаться :) Хоть это и банально звучит, но энтузиазм мы и сейчас ценим в начинающих специалистах.
Александр Логинов, X5 Tech: Первый мой оффер был в компанию «Интер-почта», которая занималась подпиской на журналы и их доставкой. Занимался развитием ERP-системы, написанной на Delphi. Учился тогда на четвёртом курсе института. Из навыков было умение писать код на Pascal и Java и хороший багаж теории в виде дискретной математики, ТФКП, реляционной алгебры и других дисциплин.
Валентин Бутаков, SportmasterLab: Первый оффер получил в 2013 году, в это время был студентом 5 курса профильного направления «Информатика и вычислительная техника». Во время учебы успешно участвовал в региональных и всероссийских олимпиадах по программированию, а также имел опыт решения кейсов и прикладных задач во время практики в университете. На тот момент у меня уже был многолетний опыт самостоятельной разработки на языках: C++, C#, Java, Scala, но опыта командной разработки не было. Думаю, что получить оффер помогли хорошие теоретические знания языков и наработанный опыт написания кода. Кроме того, на собеседовании пришлось применять навыки архитектурного проектирования и использования паттернов.