Требования:
Ключевые компетенции Golang
Язык и стандартная библиотека:
- Знание синтаксиса языка и идиоматичных подходов
- Знание основных механизмов и опыт использования пакетов стандартной библиотеки: горутины (goroutines), каналы (channels), указатели и сборщик мусора (gc); context, io, net/http, database/sql, log/slog, sync, testing.
- Умение писать документацию для кода и эндпоинтов через Swagger
- Знание базовых принципов версионирования модулей
- Умение пользоваться Git
Знание основных видов архитектуры и паттернов:
- Clean architecture
- DDD
- Microservices. Брокеры сообщений, веб-серверы (nginx, apache)
- REST API
- Принципы SOLID
- Паттерны: репозиторий, фабрика, middleware и другие
Специализация по инфраструктуре и данным
Системы управления базами данных:
- Знание синтаксиса SQL (PL/SQL)
- Понимание транзакций (ACID-принципы), индексов
- Опыт работы с PostgreSQL и любыми NoSQL решениями
Сеть:
- Знание сетевого стека TCP/IP
- Глубокое понимание протокола HTTP (семантика, структура запроса/ответа, настройка HTTPS, настройка CORS, принципы REST в связке с HTTP, работа с файлами, auth, cookie, SSE)
- Опыт работы с WebSocket
- Умение пользоваться инструментами браузера в контексте backend разработки
Production и эксплуатация
Docker:
- Опыт работы с Docker (docker compose, multi-stage build)
- Умение минимизировать размер образа
- Понимание работы сервисов docker compose и их основных настроек
- Использование сетей и подключаемых томов
- Знание основных команд Docker CLI
Безопасность:
- Понимание принципов работы аутентификации и авторизации
- Опыт работы в реализации auth с использованием JWT-токена и понимание принципа его работы
- Знание OWASP Top 10
Операционные системы:
- Опыт работы с любой операционной системой из семейства Linux
- Знание основных команд оболочки bash (перемещение между каталогами, работа с файлами, пайплайны и т.п.)
- Опыт использования SSH
Тестирование:
- Умение покрывать код unit тестами
Работа в команде:
- Проактивность
- Умение проводить код-ревью конструктивно, принимать критику, аргументировать технические решения
- Умение декомпозировать задачи
Будет преимуществом:
- Опыт работы с Kubernetes, Ansible, Makefile, протоколом gRPC
- Опыт настройки CI/CD (Jenkins, Gitlab CI)
- Опыт работы с third-party модулями и пакетами: golang-migrate; golang-jwt/jwt; gorilla/mux; sqlx; Masterminds/squirrel; segmentio/kafka-go; swaggo/http-swagger
Условия:
-
График работы: (full time) пн.– чт. с 09:00 до 18:00, пятница с 09.00 до 16.45
-
Современный офис в центре Минска
-
Качественное оборудование для комфортной работы
-
Пространство для профессионального и карьерного роста
-
Корпоративное обучение и развитие сотрудников
-
Добровольное медицинское страхование
- Бонусы по результатам работы
- Социальная политика с продвинутыми опциями, актуальными для IT компаний
- Материальная помощь к отпуску
- Дополнительные выплаты к ключевым жизненным событиям