Fullstack-разработчик (Go / Python / React) - геопоиск, OpenSearch, DevOps
Формат: удалённо, полная занятость
Отклики: только с указанием ожиданий по з/п и кратким описанием релевантного опыта по задачам ниже.
О проекте:
Мы строим classified-маркетплейс для рынка ЕС (web + mobile), где пользователи размещают объявления о товарах, недвижимости, услугах и вакансиях, находят нужное рядом с собой и договариваются напрямую. Продукт уже работает.
Бэкенд написан на Python/Django, новые сервисы пишутся на Go, и функциональность постепенно переносится туда. Поиск построен на OpenSearch.
Геолокация и мультиязычный поиск лежат в основе продукта.
Ищем опытного fullstack-разработчика, который закроет весь цикл: от схемы БД и Go-сервиса до React-интерфейса с картой и выкладки в Kubernetes. Нам нужен универсальный инженер с широким кругозором и ответственностью за результат, а не узкий специалист.
Чем предстоит заниматься
- Разработка и развитие сервисов на Go, участие в постепенном переносе функциональности с Django на Go.
- Поддержка и развитие существующего бэкенда на Python / Django / DRF.
- Разработка фронтенда на React + TypeScript: страницы объявлений, поиск, фильтры, личный кабинет.
- Геофункции: поиск по радиусу и bounding box, карта объявлений с кластеризацией, геокодирование адресов, работа с PostGIS.
- Развитие поиска на OpenSearch: mappings, анализаторы, многоязычный поиск, фильтры и фасеты, геозапросы, индексация.
- Проектирование API, межсервисного взаимодействия и фоновых задач (Kafka, Celery, Redis).
- Работа с PostgreSQL: схемы, индексы, оптимизация запросов под большие объёмы данных.
- DevOps: Docker, Kubernetes, Helm, GitLab CI/CD. Выкладка, диагностика по логам и метрикам (Prometheus, Grafana, Sentry), разбор упавших сборок и деплоев.
- Тесты, код-ревью, техническая документация.
Обязательные требования
1. От 5+ лет коммерческой разработки, опыт работы как на бэкенде, так и на фронтенде.
2. Уверенный Go: конкурентность, контексты, обработка ошибок, тестирование, опыт сопровождения сервисов в продакшене.
3. Практический опыт с Python, Django и Django REST Framework.
4. React + TypeScript: компонентный подход, управление состоянием, работа с API, производительность интерфейса.
5. PostgreSQL и SQL: транзакции, индексы, EXPLAIN, оптимизация запросов.
6. Продакшен-опыт с OpenSearch или Elasticsearch: индексы и mappings, поисковые запросы, фильтрация, индексация документов.
7. Опыт работы с геоданными: PostGIS, geohash или geo-запросы в OpenSearch/Elasticsearch, фильтрация по расстоянию и bounding box.
8. Опыт работы с картами на фронтенде: Leaflet, Mapbox GL / MapLibre или OpenStreetMap, включая маркеры, кластеризацию и синхронизацию карты с результатами поиска.
9. Понимание микросервисной архитектуры, HTTP / REST API и асинхронного взаимодействия.
10. Опыт с Redis, очередями сообщений и фоновыми задачами.
11. Docker и основные сущности Kubernetes (Pod, Deployment, Service, Ingress, ConfigMap, Secret). Умение посмотреть статусы, события и логи подов и разобраться с причинами перезапусков.
12. Умение поправить Helm chart или values и пайплайн GitLab CI/CD, разобраться с ошибкой сборки или развёртывания.
Будет плюсом:
13. Kafka: продюсеры, консьюмеры, гарантии доставки.
14. Next.js / SSR и SEO для страниц объявлений.
15. React Native или опыт мобильной разработки.
16. Геокодинг и маршрутизация: Nominatim, Photon, Google Maps / Mapbox API.
17. Векторный и гибридный поиск, ML-ранжирование.
18. Prometheus, Grafana, OpenTelemetry, настройка алертов.
19. Интеграции внешних API: платежи, переводы, телефония и подобные.
20. Антифрод и модерация контента.
Что мы ожидаем по работе в команде
- Внимательность к деталям и ответственность за результат своих изменений.
- Самостоятельность: вы доводите задачу от идеи до продакшена.
- Умение аргументированно объяснять технические решения.
- Понятные тикеты, комментарии к PR и документация.
Что предлагаем
- Участие в амбициозном продукте и место в core-команде.
- Реальное влияние на архитектурные и продуктовые решения.
- Минимум бюрократии, максимум доверия.
- Удалённая работа.
- Возможность последующей релокации в Европу (Люксембург, Германия, Франция, Бельгия).
Если ответственность и педантичность - ваш главный недостаток, вы требовательны к себе и качеству своей работы, вам близок дух стартапа и нравится быстро запускать продукты с прицелом на рост, будем рады пообщаться.
Отклики: только с указанием ожиданий по з/п и кратким описанием релевантного опыта.