Team Lead Backend Developer
Прямой работодатель EMEX ( emex.ru )
Опыт работы более 5 лет
Привет! Меня зовут Анна, я руковожу разработкой в группе компаний EMEX и ищу Teamlead Backend Developer в свою команду.
Подробнее о команде и позиции можно почитать вот тут.
О компании
EMEX — международный холдинг, который включает торговый, доставочный и информационный бизнесы: торговая площадка EMEX.DWC в ОАЭ, логистический оператор HWC и EMEX.ru — первый профессиональный маркетплейс автозапчастей в России.
За 20+ лет мы не просто развиваем бизнесы, позволяющие покупать, продавать и доставлять товары: мы создаем ценность для всех пользователей: обеспечиваем автовладельцам свободу передвижения; помогаем продавцам увеличивать продажи, а сотрудникам — раскрывать потенциал.
- Мы доставляем заказы из разных точек планеты, не смотря на ограничения. Во время пандемии и закрытых границ нам удалось сохранить логистические цепочки, поэтому в сегодняшнем дне мы продолжаем предлагать эффективные доставочные решения.
- Наша цель — экспансия на новые рынки: мы работаем над созданием глобальной доставочной и информационной сетью. Мы представлены на рынках Ближнего Востока и СНГ, и исследуем, куда выходить дальше: мы рассматриваем как развивающиеся рынки, например, в африканских странах. Так и развитые — в европейских странах.
- Мы активно обновляем технологии, на которых работаем. Часть наших продуктов переходит на более новый стек, а часть — пишется на нем с нуля. Например, в бэкенде мы переходим на .NET 6, а фронтенд переписываем на React.
О команде и продукте
Ты будешь лидировать команду разработки, которая развивает продукты и инструменты в области логистики. Эти продукты:
- Просты и удобны для пользователей
- Просты в поддержке и масштабировании для команды разработки.
Сейчас команда состоит из 2-х фронт разработчиков (React), 2-х бэк разработчиков (C#), тестировщика и дизайнера.
Продукт представляет из себя сайт, который объединяет инструменты (микросервисы), с помощью которых можно:
- создать систему ячеечного хранения;
- получить товар или посылки от отправителя;
- идентифицировать товар, наклеить стикер отправления (заказ);
- разместить и подобрать товар с хранения;
- отсортировать и выдать получателям.
Пользователями разрабатываемых продуктов являются как автоматизированные сортировочные центры, через которые проходят миллионы заказов в месяц, так и небольшие пункты выдачи заказов.
Сейчас наши продукты работают в России и ОАЭ, но мы хотим развиваться в новые регионы, ближайшие запуски — Грузия, Армения, Польша.
Задачи, которые тебе предстоит решать
- Прорабатывать и оценивать задачи совместно с владельцем продукта, архитекторами и лидами других команд;
- Обеспечивать эффективную работы команды разработки (6+ человек):
- Необходимо декомпозировать задачи между людьми в своей команде, контролировать, что задача будет разработана к нужному сроку в нужном функционале. Что-то придется разрабатывать и самостоятельно.
- Развивать сотрудников внутри команды, выступать в качестве people-менеджера;
- Организовать процесс быстрого разрешения инцидентов;
- Участвовать в реализации части задач в качестве ведущего разработчика;
- Проводить code review и контролировать качества кода;
- Взаимодействовать с командами тестирования и DevOps.
Цели, которые будут стоять перед тобой в ближайшие 3-6 месяцев
- Через 3 месяца - полностью взять на себя управление командой разработки: самостоятельно декомпозировать, планировать и прорабатывать задачи с владельцем продукта и командой архитектуры.
- Через 6 месяцев - повысить эффективность работы команды:
- Обеспечить бесперебойной работу команды: внедрить учёт и мониторинг простоев, сбоев и ошибок, с прицелом на масштабируемость решения;
- Внедрить учёт и мониторинг производительности решения;
- Привести команду к выполнению задач в заявленные сроки.
Как понять, что ты подойдешь
- Управляешь командой разработки более 2-х лет;
- Знаешь, как проектировать решения в микросервисной архитектуре;
- Работаешь со стеком C# ASP.NET Core., .NET 5+, PostgreSQL и MSSQL;
- Будет плюсом - знание React (также полезно будет знать .NET Framework 4+ и WCF для работы с легаси);
- Умеешь разбираться в продукте и существующем коде;
- Будет плюсом: опыт разработки продуктов в логистике, работы над WMS/ERP/CRM системами.
Что мы предлагаем
- Ты сможешь развиваться как менеджер и развивать скиллы в управлении командой, при этом не теряя технической экспертизы - ты вместе с командой будешь искать наиболее эффективные решения для реализации задач продукта, при этом прокачивая свои навыки управления процессами разработки.
- У тебя будет возможность развивать свою команду так, как ты посчитаешь эффективным. Если твои решения целесообразны, мы предоставим тебе все необходимые ресурсы.
- Ты будешь участвовать в создании продукта, с которым работают пользователи в разных регионах мира.
- Мы сторонники горизонтальных коммуникаций: каждый в нашей команде, начиная от фаундеров, открыт к общению, готов ответить на возникающие вопросы и поделиться тем, что знает сам.
- Забота о сотрудниках. Мы поддерживаем взаимодействие между разными уровнями: в EMEX любой специалист может обратиться к руководителю напрямую. Мы внимательно относимся друг к другу и готовы помочь решить проблему. Например, если обстоятельства вынуждают сотрудника переехать в другой город или страну — мы всегда открыты к диалогу.
- Сотрудники EMEX самостоятельно выбирают где работать: уже много лет мы поддерживаем удаленный формат работы. Мы не контролируем рабочие часы — для нас важен результат. Мы готовы предложить тебе наиболее удобный для тебя способ оформления (в штат/через ИП), или, если ты находишься за пределами России, по договору с офисом нашей компании в Дубае. Если ты в РФ, мы сможем обеспечить тебя ДМС и предоставить всю необходимую технику для работы.
И еще немного о том, как мы работаем :)
О технологиях и процессах в разработке
Новые продукты мы разрабатываем в стеке React JS + C# .NET LTS + PostgreSQL:
- Для взаимодействия с пользователем разрабатываем web-приложения на react, работа с состоянием через redux, но рассматриваем разные варианты. Взаимодействуем с бэк через http/rest, web-socket, signalR. Общие компоненты распространяем через свой npm manager. Наши web-приложения:
- интерактивны - звуковое сопровождение, сканирование штрих-кодов, фотографирование и т.п.;
- кросс-платформенны и должны работать на смартфоне, PPC (КПК), laptop и desktop;
- мультиязычные т.к. используются по всему миру;
- масштабируемы и с низким временем отклика, т.к. операции сканирования и обработки должны выполняться мгновенно.
- Серверную часть разрабатываем на C# .NET LTS. Придерживаемся микросервисного подхода при разработке, хостим сервисы в docker. В качестве доступа к данным используем linq2db. Общий код и контракты распространяем через nuget пакеты. Для сбора логов и анализа используем elastic и posthog. Для конфигурирования используем consul. В качестве хранения данных используем PostgreSQL. В качестве межсервисного взаимодействия используем kafka или rabbitmq.
- Задачи команда ведет на доске в Azure DevOps Server (TFS). В качестве контроля версий используем git в Azure DevOps Server. CI/CD настраивается там же. Организацией, развертывания сервисов, сайтов и организацией тестовых стендов занимается команда Dev/Ops.
- Документацию ведем в notion и в репозитории.
Как мы работаем над продуктами?
- Задачи ставятся владельцем продукта и проходит архитектурную экспертизу, где конкретизируются функциональные и системные требования.
- Далее задача прорабатывается вместе с владельцами, архитекторами и лидами других команд. В проработку задачи входит - закрытие белых пятен в требованиях от владельца и архитекторов, обсуждение будущих макетов сайтов, мобильных или десктоп приложений вместе с дизайнером в figma, прототипирование - если это необходимо. В результате появляется оценка длительности, трудоемкости и стоимости задачи.
- Команды работают недельными итерациями: понедельник - планирование, вторник-четверг - митинги, пятница - демо.
- До выпуска в “бой”, проводится тестирование в тестовых средах. Разрабатываются автотесты на cypress, пишутся unit-тесты. Команда тестирования, помогает с тестированием кросс-командных разработок.
- Команда работает удаленно из разных регионов РФ и стран, но в московском часовом поясе.
При разработке новых продуктов используем современный стэк - выделяем время для работы с техдолгом, перехода на новые версии или прототипировании новых подходов.
Есть legacy на .NET, WCF, MS SQL, в котором необходимо разбираться.