Wildberries — это крупнейший маркетплейс России, 30 млн пользователей, и масштабные технологические задачи.
В связи с активным ростом департамента Инфраструктура находимся в поиске Tech Lead Go в сервис хранения пользовательских данных.
User-Storage-высоконагруженное файловое хранилище собственной разработки, написанное на языке Go. Это решение отличаются шардированием, репликацией и линейной масштабируемостью, что обеспечивает 100% доступность файлов. Эти файлы играют ключевую роль в процессе совершения покупок клиентами через мобильное приложение и на сайте Wildberries, а также в пунктах выдачи заказов компании.
Продукт обрабатывает более 28 тысяч запросов в секунду, обеспечивая бесперебойную работу 24/7, 365 дней в году.
Количество клиентов сервиса измеряется в миллионах. Мы являемся гарантами синхронизации пользовательских данных на всех платформах Wildberries.
Данные, которые мы храним:
- Корзины пользователей;
- Доставки пользователей;
- Настройки приложения пользователей;
- Кэш пользователя;
- Системная информация по корзине, заказам, пользователям и так далее.
Особенность сервиса заключается в том, что данные для хранения могут быть представлены в любой модели данных, и мы никак не ограничиваем клиентов в сохранении пользовательских файлов в сервисе.
Как мы работаем:
- Пишем на последних версиях Go;
- Используем Kafka для межсервисного взаимодействия;
- В сервисе нет базы данных, данные хранятся в файловой системе на серверах, но в будущем возможно появление ClickHouse;
- Используем Elasticsearch, Grafana, Alertmanager и Kubernetes;
- Все приложения упакованы в Docker и деплоятся нажатием одной кнопки;
- У нас отличный CI/CD запускаем тесты, проверки безопасности и стиля на каждый pull request;
- Все pull request проходят обязательное code review;
- Участвуем в разработке и проектировании архитектурных решений, а также в реализации бизнес-задач.
Задачи:
- Проектировать и управлять архитектурой решений, улучшать существующую микросервисную архитектуру;
- Совершенствовать подходы и процессы разработки, писать новые и развивать существующие сервисы на Go;
- Руководить технической стороной команды разработки: декомпозировать и ставить задачи разработчикам, контролировать выполнение решений, проводить код-ревью, управлять приоритетами работ;
- Участвовать в планировании с менеджером проекта для реализации задач разработки продуктов;
- Согласовывать с бизнес-заказчиками требования, а также ставить приоритеты задачам;
- Участвовать в процессе найма и наставничества разработчиков.
Ожидания от кандидата:
- Опыт коммерческой разработки на Go от 4 лет;
- Отличное знание базовых алгоритмов и структур данных;
- Способность самостоятельно разбираться в сложных вопросах, проактивность в решении задач, умение консолидировать усилия свои и команды для достижения целей;
- Опыт написания провайдеров и библиотек для подключения к базам данных, брокерам сообщений и другим инфраструктурным компонентам, а не только логики приложения;
- Опыт работы с системами логирования и мониторинга: Kibana/OpenSearch, Grafana;
- Уверенные навыки работы в Unix/Linux: глубокие знания операционной системы (ядро, память, процессы), умение диагностировать проблемы, например, определять причины состояния D-state у процесса и анализировать системные вызовы;
- Опыт разработки высоконагруженных систем 100k rps+
- Практика работы с контейнерами (Docker, Kubernetes) и микросервисной архитектурой;
- Уверенные знания Web/HTTP. Понимание и опыт работы с gRPC;
- Опыт работы с системами обмена сообщениями, такими как Kafka и NATS;
- Опыт работы с реляционными базами данных (PostgreSQL, ClickHouse) на уровне написания сложных запросов, оптимизации, транзакций;
- Приветствуется опыт работы с NoSQL решениями (Redis, MongoDB, Etcd).
Что у нас есть и чем мы готовы делиться:
Оформление по ТК РФ с первого дня.
Гибкие бизнес-процессы, минимум бюрократии и согласований.
Разные бонусы компании: партнерские программы по обучению и фитнесу, корпоративное питание для сотрудников в офисе.