Ищем Go разработчика.
Грейд: Middle
Локация специалиста: РФ
Задачи на проекте:
- Реализовывать новые функции продукта, дорабатывать существующие сервисы, исправлять баги, писать вспомогательные микросервисы (REST/GRPC).
- Проектировать архитектуру сервисов, учитывая шардирование, репликацию, консенсус (RAFT) и требования к консистентности.
- Описывать и реализовывать публичные и внутренние API (Protobuf/GRPC, OpenAPI), обеспечивать их совместимость с другими сервисами платформы.
- Писать юнит тесты, интеграционные тесты, нагрузочные тесты; поддерживать покрытие кода, использовать test driven development (TDD) по возможности.
- Проводить профилирование, находить узкие места в CPU, памяти, сети, I/O, предлагать и внедрять улучшения (алгоритмы, структуры данных, кеширование).
- Сотрудничать с архитекторами, SRE, QA, продукт-менеджерами; участвовать в планировании спринтов, ревью кода и постмортем анализах.
- Оформлять техническую документацию: архитектурные решения, схемы взаимодействий, описание API, гайдлайны по развертыванию и эксплуатации.
Требования:
- Опыт разработки на Go не менее 3 лет; опыт поддержки и масштабирования production-кода, участие в code-review, знание Go 1.20 и выше.
- Реальный опыт проектирования, реализации и эксплуатации сервисов на базе gRPC + Protobuf и REST-API (OpenAPI/Swagger): создание сервисных контрактов, версионирование, интеграция с клиентскими приложениями.
- Практический опыт проектирования схем PostgreSQL, написания оптимизированных SQL-запросов, применения индексов, транзакций и профилирования (EXPLAIN/ANALYZE) в высоконагруженных системах.
- Опыт построения автотестов (unit, integration, load) с использованием Go-testing, Testify и их интеграции в CI/CD-пайплайн.
- Опыт проектирования, внедрения и эксплуатации Redis: репликация, кластеры, Lua-скрипты, мониторинг и оптимизация производительности.
- Подтверждённый опыт написания чистого, модульного и легко тестируемого системного кода (SOLID, code-style, static-analysis), поддерживаемого в продакшн не менее 12 мес.
- Практический опыт разработки и внедрения алгоритмов и структур данных (деревья, хеш-таблицы, очереди, графы) с подтверждённой эффективностью (benchmark).
- Опыт мониторинга на базе Prometheus + Grafana и распределённой трассировки (OpenTelemetry, Jaeger): метрики, алерт-правила, дашборды, анализ цепочек запросов.
- Практический опыт проектирования распределённых систем: шардирование, репликация, консенсус (RAFT), обеспечение согласованности и отказоустойчивости.
- Опыт развертывания и администрирования кластеров Apache Kafka, разработки продюсеров/консьюмеров, управления топиками и репликацией.
- Опыт создания Docker-образов, написания Docker-Compose/Helm-чартов и автоматизации развертывания (CI/CD, Kubernetes, GitOps).
- Опыт профилирования Go-приложений и системных компонентов с использованием pprof, perf, bpftrace; выявление и оптимизация узких мест в продакшне.
- Практический опыт работы с Linux, настройкой сетевых стеков и протоколов TCP/UDP, диагностики сетевых проблем (tcpdump, ss, iptables).
- Опыт работы с англоязычной технической документацией и создания документации в Markdown/Confluence/ReadTheDocs.