Senior Frontend Developer в EMEX
Прямой работодатель EMEX ( emex.ru )
Опыт работы любой
Привет! Меня зовут Олег, я руковожу front-end разработкой в группе компаний EMEX и ищу Senior Frontend Developer в свою команду.
О компании EMEX
EMEX — международный холдинг, который включает торговый, доставочный и информационный бизнесы: торговая площадка EMEX.DWC в ОАЭ, логистический оператор HWC, и EMEX.ru — первый профессиональный маркетплейс автозапчастей в России.
- Наша цель — экспансия на новые рынки: мы работаем над созданием глобальной доставочной и информационной сетью. Мы представлены на рынках Ближнего Востока и СНГ, и исследуем, куда выходить дальше: мы рассматриваем как развивающиеся рынки, например, в африканских странах. Так и развитые — в европейских странах.
- EMEX — стабильный бизнес: на протяжении 20+ лет мы прибыльны каждый квартал. Сейчас у EMEX $500+ миллионов годового оборота, и мы продолжаем активно расти.
О команде
Команда твоего проекта (emex.ru) состоит из 8 человек: 3 backend, 1 frontend, 2 QA, teamlead, product manager. Вместе мы занимаемся разработкой новых фич, доработками, закрытием техдолга и оптимизацией.
О технологиях и процессах в разработке
Новые продукты мы разрабатываем в стеке React JS + C# .NET LTS + PostgreSQL:
- Для взаимодействия с пользователем разрабатываем web-приложения на Next.js, работа с состоянием через Redux/react-context, но рассматриваем разные варианты. Взаимодействуем с бэком через 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, прототипирование - если это необходимо. В результате появляется оценка длительности, трудоемкости и стоимости задачи.
- Команды работают двухнедельными итерациями: первый день — планирование, последний — демо.
- До выпуска в “бой” проводим тестирование в нескольких окружениях.
- Команда работает удаленно из разных регионов РФ и стран, но в московском часовом поясе.
При разработке новых продуктов используем современный стэк, выделяем время для работы с техдолгом, перехода на новые версии или прототипировании новых подходов.
Кого и зачем мы ищем
Сейчас мы в поиске опытного React разработчика на наш существующий проект Emex (маркетплейс), где сначала нужно будет заниматься техдолгом и оптимизацией, вести документацию, предлагать решения и идеи по улучшению продукта.
Помимо этого, в компании существует несколько frontend проектов, и параллельно мы создаём новые. Мы разрабатываем общие решения для компании: есть корпоративный линтер стилей и JS, свой ui-kit, npm-пакеты. Погрузившись в один проект, автоматически понимаешь все остальные и присоединяешься к работе над ними.
Тебе нужно будет
- Участвовать в разработке высоконагруженного продукта – каждый день через emex.ru проходит 35-40k заказов;
- Участвовать в разработке новых и поддержке существующих frontend приложений (SPA, ui-kit, npm-пакеты);
- Проводить code review и контролировать качества кода;
- Вести документацию по проекту: мы пишем либо в Notion, либо ADR;
- Заниматься исследовательскими задачами — мы всегда ищем варианты для развития, пробуем что-то новое, ставим эксперименты. По результатам принимаем решения - стоит внедрять какую-то технологию или нет.
Цели, которые будут стоять перед тобой в ближайшие 3 месяца
На первом этапе у тебя будет один большой проект, который нужно поддерживать и разрабатывать новые фичи. Тут ты сможешь погрузиться в проект, наши процессы
Через 3 месяца:
- Разбираешься в проекте Emex, можешь писать новые бизнес фичи, фиксить текущий код;
- Понимаешь и знаешь как мы пишем frontend в компании;
- Изучил наши документы в Notion, понимаешь специфику ведения документации по проекту: где, как и когда стоит ее вести;
- Освоился в Azure, понимаешь как поднимать стенды, где лежат репозитории проектов.
Как понять, что ты подойдешь
- Ты уже больше 5 лет работаешь над коммерческими проектами на React: знаешь основы и тонкости работы с данным фреймворком, понимаешь, как он работает под капотом;
- У тебя есть опыт работы/понимание как работать с Next.js, а также ты готов разобраться в новых фичах и последних версиях Next.js;
- Умеешь писать документацию быстро и без негатива - мы не пишем документы просто так, этот пункт не означает, что всегда приходится писать много. Документация в нашем случае - это способ поделиться решениями, опытом, ADR;
- Работаешь и имеешь глубокую экспертизу по стеку: typescript, next.js, react, redux, redux-toolkit, redux-saga, jest+rtl.
Будет плюсом:
- Опыт с Docker, Azure (написание pipeline);
- Опыт работы с C#;
- Знаком с microfrontends: понимаешь проблему общего состояния, можешь предложить хорошее решение.
Что мы можем предложить
- Ты можешь развиваться как разработчик вместе с нашим быстрорастущим продуктом и решать неординарные проблемы.
- У тебя будет возможность решать задачи так, как ты посчитаешь эффективным. Если твои решения целесообразны, мы предоставим тебе все необходимые ресурсы.
- Ты будешь участвовать в создании продукта, с которым работают пользователи в разных регионах мира.
- Мы сторонники горизонтальных коммуникаций: каждый в нашей команде, начиная с фаундеров, открыт к общению, готов ответить на возникающие вопросы и поделиться тем, что знает сам; любой специалист может обратиться к руководителю напрямую.
- Забота о сотрудниках. Мы внимательно относимся друг к другу и готовы помочь решить проблему. Например, если обстоятельства вынуждают сотрудника переехать в другой город или страну — мы всегда открыты к диалогу. Если ты работаешь в РФ, мы сможем обеспечить тебя ДМС и предоставить всю необходимую технику для работы.
- Сотрудники EMEX самостоятельно выбирают где работать: уже много лет мы поддерживаем удаленный формат работы (по времени ориентируемся на московский часовой пояс). Во-первых, мы не контролируем рабочие часы — для нас важен результат. Во-вторых, ты можешь работать, находясь за пределами России, оформив договор с офисом нашей компании в Дубае.