Back-end разработчик (листинг-платформа недвижимости)

Местоположение и тип занятости

Можно удаленно

Описание вакансии

DubaiHouse — платформа, которая помогает быстро находить действительно выгодные объекты недвижимости: собираем рынок в одном месте и показываем ключевые параметры, чтобы пользователи могли принимать самостоятельные и взвешенные решения.

Формат

  • Part-time, гибкий удалённый график

  • Оплата по часам, ставка по договорённости

  • Онбординг от текущего разработчика, подробное ТЗ отправим кандидатам

Текущая задача проекта

1) Доработка листинга

  • Валидация и доводка существующего парсинга с 3 сайтов (ретраи, стабилизация, антибот-механики, очереди)

  • Дедупликация объектов (строковые метрики + эмбеддинги/векторный поиск), настройка порогов качества

  • Пайплайн изображений: выбор/интеграция AI-модели/API (remover watermark, upscale) и стратегия хранения

  • Развитие GraphQL-API каталога

2) Wishlist (Списки)

  • Анонимные пользователи: добавление объектов в системный список “Unsorted”, хранение в localStorage в пределах браузера, миграция в аккаунт при регистрации.

  • Зарегистрированные пользователи: создание/редактирование/удаление списков, перемещение объектов между списками, заметки и комментарии к объектам, фильтры/сортировка внутри списка; “Unsorted” не удаляется.

  • Шеринг и доступы: генерация ссылки на список (в т.ч. по токену), права доступа (просмотр / комментирование / редактирование), управление участниками.

  • Бэкенд-механики: middleware на права, API для альбомов/элементов/комментариев, endpoint миграции wishlist при регистрации.

Технологический стек

  • Back-end: NestJS + TypeScript, GraphQL, Prisma (PostgreSQL), Docker

  • Парсинг: Playwright, Cheerio, очереди/CRON

  • Данные/поиск: строковые метрики (Levenshtein/Jaro), косинусное сходство, эмбеддинги (OpenAI или аналоги), pgvector (или эквивалент)

  • Инфра/качество: GitHub Actions, pino/winston, Sentry/Prometheus (или аналоги)

  • Примечание по коду: часть текущего функционала на Next.js + Prisma; для парсинга используем/модерируем Playwright

Чем предстоит заниматься

  • Усиливать парсеры и листинг; навести наблюдаемость, алёрты, CI/CD

  • Проектировать и внедрять дедупликацию и векторный поиск

  • Спроектировать и интегрировать пайплайн изображений (watermark removal, super-resolution, хранилище)

  • Реализовать Wishlist-фичи (аноним/рег, шеринг, права, комментарии) и соответствующие API

Требования

  • Продакшн-опыт с NestJS/TypeScript, Prisma + PostgreSQL

  • Практический опыт веб-парсинга (Playwright/Puppeteer, Cheerio), очередей (BullMQ/RabbitMQ/Redis), CRON

  • Опыт с фаззи-метчингом/векторным поиском (pgvector, Qdrant, ES k-NN и пр.)

  • Понимание GraphQL и хорошего API-дизайна

  • Навык работы с логированием/мониторингом/тестами

Будет плюсом

  • Пайплайны обработки изображений (watermark removal, super-resolution, S3/MinIO/R2)

  • Антибот-защиты, прокси-ротация, fingerprinting

  • Опыт в листинг-платформах/каталогах