на главную
zarplata•4 ч. назад

Go-разработчик

Удалённо

Навыки и технологии

MongoDBGitLab CI/CDGrafanaGoDockerExpress.jsRedisPostgreSQLKubernetesElasticsearchTypeScript

Ключевая задача

Разработка и развитие высоконагруженных микросервисов на Go для систем сборки онлайн-заказов в магазинах и дарксторах X5.

Описание вакансии

Обязанности

  • Проектировать и разрабатывать высоконагруженные микросервисы на Go, участвовать в развитии сервисов на NestJS.
  • Продумывать архитектуру, структуры данных и взаимодействие сервисов между собой и с фронтендом.
  • Развивать существующие решения, находить узкие места, проводить рефакторинг монолита и микросервисов, оптимизировать критичные участки под нагрузку.
  • Проводить код-ревью, поддерживать стандарты разработки и следить за качеством кода.
  • Обеспечивать стабильность production-сервисов: участвовать в дежурствах, разбирать инциденты и устранять их первопричины.
  • Разрабатывать юнит- и сложные интеграционные тесты, развивать автоматизацию тестирования.
  • Исследовать и внедрять новые технологии и инструменты для разработки, тестирования и мониторинга.
  • Документировать технические решения и взаимодействовать с QA и продуктовыми командами.

Требования

  • Опыт коммерческой backend-разработки от 5 лет, в том числе от 2 лет на Go.
  • Опыт проектирования и разработки высоконагруженных микросервисов и распределённых систем.
  • Уверенное понимание принципов построения микросервисной архитектуры и взаимодействия между сервисами.
  • Опыт работы с Kafka или другими брокерами сообщений.
  • Практический опыт работы с PostgreSQL и другими SQL- и NoSQL-базами данных.
  • Знание Redis, MongoDB и gRPC.
  • Опыт работы с Docker, Kubernetes и CI/CD.
  • Навыки настройки и использования мониторинга и логирования, в том числе Grafana и ELK.
  • Опыт сопровождения production-систем, участия в дежурствах, анализа и устранения инцидентов.
  • Готовность работать с TypeScript и NestJS, поскольку часть сервисов реализована на этом стеке.
  • Умение писать тестируемый и поддерживаемый код, проводить код-ревью и аргументированно обсуждать технические решения.