Node.js-разработчик (gaming)
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
Overgear — это международная торговая платформа в сфере игровых услуг.
Какие проблемы мы решаем?
С одной стороны, есть pro-игроки, которые довольно долго и хорошо играют в те или иные онлайн игры, и теперь хотели бы монетизировать свой скилл. С другой стороны, есть люди, которые любят игры, им скорее всего от 25 до 35 лет, в основном из Европы и Америки, у которых не так много свободного времени для того, чтобы заниматься монотонными вещами в игре, или им нужна помощь с прохождением сложных моментов.
Здесь появляемся мы в виде платформы, на которых одни находят других — помогаем клиенту найти исполнителя на свою задачу. Также выступаем в роле гаранта, проверяя качество выполнения услуги.
Мы используем две модели:
- Типичный маркетплейс, где исполнители размещают услуги, а клиенты с помощью фильтров находят нужного для себя исполнителя.
- Формат убера или магазина. Клиент просто выбирает услугу, покупает её у нас, а мы в свою очередь подбираем для него исполнителя, гарантируя повышенное качество сервиса.
Мы не смотрим на себя как на компанию одного продукта. Сейчас мы прорабатываем запуск и других околоигровых сервисов. Один из них — коучинг в играх, другой — поиск тиммейтов.
На данный момент мы покрываем услуги в дисциплинах WoW, Destiny, PoE, а наш ежемесячный оборот превышает 1 000 000 $.
Как все начиналось?
Активная разработка велась с 2018 года, изначально как MVP. В середине 2019 года стало понятно, что идея работает, и появились крупные партнёры. Со второй половины 2019 начался бурный рост клиентской базы. С конца 2019 года началась формироваться новая команда разработки с целью развития приложения в надежный, масштабируемый и поддерживаемый сервис. В конце весны 2020 вышли на окупаемость. 2020 год — можно назвать годом стабилизации и адаптации под большой рост пользователей.
2021 будет связан со значительными изменениями инфраструктуры и архитектуры приложения для масштабируемости и повышения качества.
Подробнее об истории компании можно прочитать здесь, фаундеры проекта искренне делятся воспоминаниями и планами на будущее.
Что и как мы используем в разработке?
На бэкенде есть монолит и несколько сервисов. В целом стремимся к микросервисной архитектуре и от монолита планомерно отказываемся.
Монолит реализован на NodeJS, Koa, использует RethinkDB. Новые сервисы пишем на NestJS в связке с MongoDB. Для ряда сервисов планируем использовать PostgreSQL. В качестве коммуникаций между сервисами используем REST и RabbitMQ. Для кэша Redis. Для сборки, разворачивания, оркестрации: Jenkins, Docker, Kubernetes, Rancher. Для мониторинга, алертов, логов используем Datadog для прода, для остального Grafana, Loki, Prometheus. Для трекинга ошибок - Sentry.
На фронте React, Redux, TypeScript. Для стилизации используем Styled components в связке со Styled system. С дизайнером взаимодействуем через Figma. Свой UI-Kit держим в Storybook. Тесты на Jest.
Наши приоритетные задачи
На бэкенде — это проработка и реализация архитектуры с учётом больших нагрузок, надёжности, масштабируемости разработки. Разбираем монолит на микросервисы и разрабатываем много новых фич. В качестве примера: система рекомендаций услуг, автоматический подбор исполнителей с учётом значительного количество критериев, чат боты для взаимодействия с исполнителями и клиентами.
Ближайшие задачи: переработка основных страниц, главная, страницы игр, пересобираем весь процесс работы с заказом после покупки, развиваем возможности приложения для предоставления большего количества услуг и игр.
Чем предстоит заниматься:
- проектирование архитектуры приложений. Сейчас это международный сервис по обучению и помощи в онлайн-играх, но это только начало;
- разработка сервисов на NodeJS. В основном используем NestJS — но есть и Koa;
- проектирование структур БД. Используем RethinkDB и MongoDB — от первой планируем отказаться. Для ряда задач возможно подключим PostgreSQL, также есть Redis;
- проектирование и разработка взаимодействия с frontend-частью. В основном это Socket.IO и REST, пробуем GraphQL;
- написание UNIT-тестов;
- написание технической документации;
- участие в проведении собеседований.
Требования:
- 3+ года написания JS-приложений (2+ года с использованием ExpressJS/Koa2/NestJS);
- SQL/NoSQL базы данных(MongoDB/RethinkDB/PostregreSQL);
- опыт покрытия своего кода тестами;
- TypeScript;
- безопасность приложения и основные типы уязвимостей.
Будет плюсом:
- опыт разработки реалтайм-приложений (Socket.IO/WebSockets);
- Docker;
- GraphQL (Apollo Server v2). Знание основных проблем и принципов их решения;
- Redis/RabbitMQ;
- английский уровня Upper-Intermediate;
- активный Github/Gitlab профиль.
Примеры задач:
- Чат, в котором происходит вся коммуникация на платформе: покупателей с продавцами, поддержки со всеми пользователями, менеджеров компании с пользователями;
- сервисы работы с продуктами(услугами и товарами). Возможность задания опций, вариантов и категорий товаров;
- сервисы работы с заказами. Жизненный цикл заказа;
- сервис работы с выплатами;
- Discord-бот, который тесно интегрирован с платформой, автоматизирует работу менеджеров и доставляет уведомления пользователям.
Условия работы:
- тихий, комфортный офис в новом комплексе «Фили Град» (модное место, где можно прямо в комплексе снять квартиру и ходить на работу в соседний дом);
- ДМС, оформление по ТК;
- рост вместе с проектом, бонусы за высокие результаты и особо приятные бонусы за сверхрезультаты;
- необычные задачи и работа над живым продуктом, которым пользуются здесь и сейчас, с возможностью пообщаться напрямую с пользователями;
- уникальная теплая ламповая атмосфера с игрой в покер / стикеры по пятницам.
Бонусы
Про внутренние процессы и культуру :)
Мы работаем по скраму, в двухнедельных спринтах. Релизимся 2-3 раза в спринт, но стремимся к тому, чтобы это делать чаще. Развиваем автоматизацию. Большинству из команды разработки удобно работать из офиса (Москва, БЦ Фили-Град), но все процессы отлажены для эффективной удаленной коммуникации.
Сейчас в команде пять разработчиков, в планах на год — вырасти вдвое. Развиваем направление QA внутри, а роль PO на данный момент выполняет CEO.
Открыто делимся опытом с рынком и продолжаем прокачивать экспертизу через внешних экспертов. У тебя тоже будет возможность выступать на конференциях, выбирать темы для внутренних митапов или найти себе ментора.