other

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

20 октября 2026

От 250 000 до 350 000 руб.

Город: Москва. Станции метро: Киевская

Единый Агрегатор Торговли

Тип занятости: Полная занятость

Требуемый опыт: Опыт от 3 лет

Обязанности:

Ищем Middle Go Developer для разработки backend-сервисов. Предстоит самостоятельно реализовывать функции в принятой архитектуре, писать тесты и сопровождать код. Решения обсуждаем с архитектором и Senior-разработчиками. Рассматриваем также Senior-кандидатов с опытом из раздела «Будет преимуществом». Особые условия (обратить внимание): Формат работы: только офис Тип занятости: проектная работа до 30.07.2027. После выполнения проекта рассматривается возможность оформления в штат на постоянной основе. Чем предстоит заниматься Разрабатывать сервисы на Go, REST API, gRPC-взаимодействие, обработчики сообщений и операции с БД. Реализовывать транзакции, конкурентную обработку и фоновые задачи; работать с XML/XSD. Писать unit- и интеграционные тесты, проводить нагрузочное тестирование; исправлять ошибки и оптимизировать Go-код и SQL. Участвовать в code review, обсуждать решения с командой, поддерживать документацию API и компонентов. Обязательные требования От 3 лет коммерческой разработки на Go; опыт самостоятельной реализации и сопровождения функций в промышленной эксплуатации. Go. Структуры, указатели, slices, maps и interfaces; передача значений, общий backing array у slices и nil в интерфейсах. Небольшие интерфейсы, композиция, разделение обработчиков, прикладной логики и доступа к данным. Go modules и зависимости. Ошибки и ввод-вывод. Сохранение причины ошибки, errors.Is/As, defer, panic/recover. Работа с io.Reader/io.Writer, частичными чтениями; закрытие файлов и тел HTTP-ответов. Конкурентность. Goroutines, channels, select, sync.WaitGroup/Mutex; понимание data race и deadlock, защита общих данных, корректное закрытие channels и завершение задач. Применение ограничений параллелизма и очередей, контроль фоновых задач при остановке сервиса. Context. Передача context.Context в SQL и межсервисные вызовы, тайм-ауты и отмена, вызов cancel и освобождение ресурсов. Понимание, что отмена context не завершает goroutine автоматически. PostgreSQL. JOIN, группировки, подзапросы; PK/FK/UNIQUE/CHECK, индексы и чтение EXPLAIN. pgx/pgxpool или database/sql: параметризованные запросы, пул соединений, тайм-ауты, закрытие Rows, проверка ошибок итерации и обработка NULL. Контроль числа запросов и устранение N+1. Транзакции и миграции. ACID и конфликты конкурентных изменений; выполнение связанных запросов через один Tx, обработка Commit/Rollback и конфликтов записи. Отсутствие длительных сетевых вызовов внутри транзакции. Миграции goose/golang-migrate или аналогом с проверкой данных и совместимости схемы с кодом. REST и HTTP. Обработчики на net/http или фреймворке поверх него; OpenAPI, DTO, JSON, валидация, ошибки и пагинация. Переиспользование Client/Transport, тайм-ауты, ограничения размера запросов, обработка ошибок и ограниченные повторы с учётом идемпотентности. gRPC. Реализация методов по Protocol Buffers-контрактам, работа со сгенерированными клиентами, status codes, deadlines и cancellation. Сохранение совместимости сообщений. Доступ. Применение принятой аутентификации и авторизации, проверка прав на объект. Валидация JWT через библиотеку: подпись, допустимый алгоритм, issuer, audience и срок действия. Redis. Чтение и запись, TTL, правила ключей и инвалидации. Обработка отсутствующих и устаревших значений, тайм-аутов и отказа кэша с сохранением корректности приложения. Понимание отличий pipeline от атомарной операции. Kafka или RabbitMQ. Практика с одним брокером: topics/partitions/consumer groups/offsets либо queues/exchanges/routing keys/ack/nack. Публикация, обработка и подтверждения, повторная доставка, идемпотентность, дедупликация, ограниченные retry и DLQ. Применение существующего механизма согласования записи в БД и отправки сообщений. Состояния и фоновые задачи. Переходы по заданной модели, проверки допустимости, атомарные изменения, защита от повторных и конфликтующих операций. Работа с принятыми механизмами запуска, повторов и восстановления задач; расширение пакетов и обработчиков с сохранением контрактов. XML и XSD. encoding/xml, теги структур, пространства имён, атрибуты, кодировки и ограничения размера данных. Чтение и изменение XSD: типы, ограничения, include/import. Работа с подключённым валидатором или сервисом: ошибки проверки и контроль доступа к внешним ресурсам. Тестирование. testing, table-driven tests, subtests, подмена зависимостей через интерфейсы. Проверка граничных случаев, ошибок и отмены; go test -race и разбор гонок. Интеграционные тесты с PostgreSQL, Redis и брокером через Testcontainers for Go или аналог: rollback, повторы и доставка сообщений. httptest, проверка ошибок gRPC. Инструменты. Структурированные логи, stack trace, данные запросов и отладчик. Git, gofmt, go vet, статический анализ и code review. Будет преимуществом Для Middle — дополнительные навыки. Для позиции Senior эти навыки обязательны. Самостоятельное проектирование сервисов, границ компонентов, владения данными и контрактов; выбор синхронной или событийной модели. Переиспользуемые Go-пакеты и обоснованное применение generics. Go Memory Model, happens-before, sync.RWMutex, sync/atomic, errgroup. Диагностика сложных data race, deadlock и утечек goroutines. Проектирование worker pool, ограниченных очередей, backpressure и graceful shutdown. Потоковая обработка, частичные чтения и записи, контроль объёма данных в памяти. PostgreSQL: MVCC, уровни изоляции, CTE, оконные функции, SELECT FOR UPDATE, оптимистическая блокировка. Обработка deadlock и ошибок сериализации; EXPLAIN (ANALYZE, BUFFERS), составные и частичные индексы. Оптимизация пула соединений, пакетных операций и COPY. Миграции схем и данных с учётом блокировок и одновременно работающих версий приложения. Проектирование REST/gRPC-контрактов, совместимая эволюция Protobuf, interceptors. OAuth 2.0/OpenID Connect, ротация ключей проверки токенов, retry с backoff и jitter. Стратегии кэширования и инвалидации, singleflight и защита от массового обновления значения; транзакции Redis, Lua-скрипты и ограничения блокировок на основе TTL. Надёжная обработка сообщений: порядок и rebalance в Kafka, prefetch и publisher confirms в RabbitMQ; Transactional Outbox, границы at-least-once/exactly-once для брокера, БД и внешних вызовов. Идемпотентность через ключ операции, ограничения уникальности и сохранение результата; обработка частичного выполнения и неопределённого результата удалённого вызова. Проектирование фоновых задач с сохранением состояния, восстановлением после перезапуска и защитой от захвата несколькими экземплярами сервиса. Temporal или аналоги, компенсации многошаговых операций. Потоковая обработка больших XML через Decoder; проектирование и версионирование XSD, выбор и интеграция валидатора. Самостоятельная интеграция с КриптоПро: CMS/CAdES, XMLDSig, присоединённая и отсоединённая подпись, каноникализация XML, кодирование подписываемых данных. cgo: передача указателей, память Go/C, освобождение нативных ресурсов. Тестирование переполнения очередей, остановки и восстановления сервиса с управляемой синхронизацией; fuzzing парсеров и преобразований, benchmarks и benchmem. pprof, go tool trace: CPU-, heap-, goroutine-, mutex- и block-профили. Аллокации, escape analysis, GC, удержание backing arrays, лишние копирования; применение sync.Pool после измерений. Инструментирование кода через OpenTelemetry: метрики, трассировка, перенос контекста через HTTP/gRPC и сообщения; диагностика задержек во взаимодействующих сервисах. Практика NATS JetStream, OpenSearch/Elasticsearch, ClickHouse или S3-совместимого хранилища; проектирование схем данных и API. Мы предлагаем Разработка нового продукта вместе с архитектором и опытными разработчиками; возможность развивать технические навыки и брать более сложные задачи. Оформление по ТК РФ. Уровень вознаграждения обсуждается по результатам собеседования.

Показать контакты

Имя не указано

Пожаловаться ID: 160125202

Похожие вакансии

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

Договорная

Москва. Станции метро: Киевская

Лига Цифровой Экономики

Ведущий Go-разработчик

Договорная

Москва. Станции метро: Киевская

VK

Go/PHP разработчик

От 300 000 до 400 000 руб.

Москва. Станции метро: Киевская

БТЕ

Младший разработчик GO

Договорная

Москва. Станции метро: Киевская

БАЗИС

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

Договорная

Москва. Станции метро: Киевская

ЗащитаИнфоТранс, ФГУП

Backend-разработчик (Go)

Договорная

Москва. Станции метро: Киевская

ФГУП ПВС МВД России