Tourvisor - ведущая система поиска туров и отелей для туристов и агентств в России и СНГ.
Основное направление работы-это создание системы поиска туров, а также предоставление поисковых модулей для сайтов туристических компаний. Решения компании позволяют любому турагентству открыть полноценный интернет-магазин туров с функцией оплаты туров банковской картой всего за несколько дней.
Наша платформа помогает пользователям находить и бронировать идеальные туры по всему миру. Мы создаем интуитивно понятный интерфейс для поиска и сравнения туров по десяткам параметрам, интегрируем данные от сотен туроператоров.
В связи с развитием продукта и растущим объёмом задач, нам нужен новый игрок в нашу дружную команду. Мы ищем Go-разработчика, который будет играть ключевую роль в создании сложных и высоконагруженных digital-продуктов.
Наш технологический стек: Go, Node.js, JavaScript, TypeScript, React, Redux, React Router, SASS, Webpack, Cordova
Храним код в Gitlab, каждый merge request проходит через code review, для трекинга задач используем Jira, документируем в Confluence.
О нашей команде:
Мы ценим дружескую атмосферу: обсуждаем идеи, делимся опытом и иногда играем в настольные игры и теннис в перерывах, а так же весело проводим время вместе вне стен офиса.
Чем предстоит заниматься:
- Разрабатывать и поддерживать backend-сервисы высоконагруженной системы поиска пакетных туров, которой ежедневно пользуются миллионы туристов и тысячи турагентств.
- Разрабатывать новые сервисы, API и внутренние инструменты для развития продукта.
- Участвовать в проектировании архитектуры новых компонентов и доработке существующих решений.
- Оптимизировать производительность сервисов, снижать время отклика и повышать стабильность работы системы.
- Проводить рефакторинг существующего кода, повышать его качество, читаемость и поддерживаемость.
- Разрабатывать unit- и интеграционные тесты, обеспечивать надежность и качество программного кода.
- Участвовать в code review, делиться экспертизой и поддерживать единые стандарты разработки.
- Работать с Docker-контейнерами и участвовать в поддержке CI/CD-процессов в GitLab.
- Взаимодействовать с аналитиками, frontend-разработчиками, тестировщиками и другими командами при реализации новых функций.
- Участвовать в обсуждении технических решений, предлагать способы повышения производительности, надежности и масштабируемости системы.
- Выявлять технический долг, предлагать пути его устранения и участвовать в улучшении архитектуры продукта.
- Участвовать в развитии инженерных практик команды, помогать менее опытным разработчикам и участвовать в принятии технических решений.
Наши требования:
Язык Go и бэкенд-разработка:
- Уверенное знание Go: синтаксис, стандартная библиотека, идиомы, паттерны проектирования.
- Глубокое понимание многопоточности (goroutines, channels, sync primitives) и умение избегать race conditions.
- Понимание работы сборщика мусора (GC) и базовые навыки профилирования (pprof).
- Опыт написания чистого, поддерживаемого кода, понимание принципов SOLID и базовых паттернов (Clean Architecture, Dependency Injection).
- Опыт разработки API: REST (понимание идемпотентности, статусов).
Базы данных (MySQL и Redis):
- MySQL: Умение писать сложные SQL-запросы. Глубокое понимание работы индексов, планов выполнения запросов (EXPLAIN), транзакций и уровней изоляции (ACID). Опыт работы с миграциями БД.
- Redis: Понимание сценариев использования (кэширование, pub/sub, распределенные блокировки, очереди). Знание основных структур данных и проблем (cache stampede, memory fragmentation).
Инструменты и инфраструктура:
- Git: Уверенное владение (rebase, merge, cherry-pick). Понимание стратегий ветвления (GitFlow).
- Docker: Умение писать оптимизированные `Dockerfile` (multi-stage builds) и `docker-compose.yml` для локальной разработки и тестов.
- GitLab CI/CD: Понимание принципов работы CI/CD пайплайнов. Умение читать, дебажить и при необходимости дорабатывать `.gitlab-ci.yml` (линтеры, сборка, прогон тестов, деплой).
Тестирование и качество кода:
- Культура написания тестов: Unit-тесты, интеграционные тесты. Понимание, что и как нужно моковать (использование `testify`, `gomock` или `go-mocket`).
- Участие в Code Review: умение давать конструктивную обратную связь и аргументированно отстаивать свою точку зрения.
Мы ценим:
- Самостоятельность: Умение взять фичу от стадии обсуждения до выката в прод. Способность самостоятельно дебажить проблемы на проде.
- Проактивность: Замечаете "костыли" или узкие места в архитектуре/БД — предлагаете решения, а не просто ждете тикетов.
- Работа с неопределенностью: Умение задавать правильные вопросы аналитикам и бизнесу, если требования кажутся неполными или противоречивыми.
- Командная игра: готовность делиться знаниями, помогать джунам и совместно отвечать за стабильность сервиса.
Будет большим плюсом:
- Понимание Observability (Наблюдаемости): опыт работы с Prometheus, Grafana, Jaeger / OpenTelemetry (умение не только писать код, но и понимать, как его мониторить и трейсить).
- Базовые знания Linux / Bash (умение зайти на сервер, посмотреть логи, понять, почему контейнер упал с OOM).
Мы предлагаем:
- Работу над масштабными и интересными задачами, где ваши решения имеют реальное влияние на бизнес-результат;
- Современный технологический стек и возможность профессионального роста в области высоких нагрузок и сложной архитектуры;
- Участие в запуске новых продуктов и фич «с нуля»;
- Минимум бюрократии и адекватный менеджмент;
- Помощь и наставничество от опытных коллег;
- Оформление по ТК РФ, компания входит в реестр аккредитованных IT-компаний;
- Полный социальный пакет и конкурентную заработную плату, ДМС после испытательного срока;
- Гибкое начало рабочего дня в офисе (возможна частичная удаленная работа), уютный офис с панорамным видом на город;
- Целеустремленный коллектив, в котором приятно работать.