Программист Фуллстек

Дата размещения вакансии: 25.08.2026
Работодатель: Этажи Федеральная компания
Уровень зарплаты:
от 80000 RUR
Город:
Тюмень
Суходольская улица 16
Требуемый опыт работы:
не требуется

О компании:
Мы — E-soft, IT-подразделение компании «Этажи». Мы занимаемся разработкой внутренних сервисов и автоматизированных систем, которые ежедневно используют тысячи сотрудников. Наш фокус: сайт, международные проекты, ИИ, BI-аналитика, CRM-системы и DevOps.

О проекте

Продукт «Прогноз» – система повышения производительности отдела продаж. Сейчас бэкенд построен на Firebase Cloud Functions, а данные частично подтягиваются через скрипты из Google Docs. Ключевая задача – перенести бэкенд-логику с Firebase на собственную Python-инфраструктуру, полностью взять работу с данными внутрь компании, и параллельно доводить до состояния «нормально сделано» фронтенд-часть продукта.

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

  • Спроектировать и реализовать перенос бэкенда с Firebase Cloud Functions на внутренний Python-сервис (FastAPI);

  • Перенести и валидировать данные при миграции между хранилищами (Firestore → MongoDB / PostgreSQL), проверяя корректность и целостность после переноса;

  • Настроить асинхронную обработку задач через taskiq (замена триггеров Cloud Functions на очереди/воркеры);

  • Спроектировать модели данных и API-контракты с Pydantic;

  • Писать вспомогательные CLI-утилиты и инструменты для миграций/обслуживания на Click;

  • Дорабатывать и приводить в порядок фронтенд на React + TypeScript с использованием Shadcn/ui и Tailwind CSS – компоненты, формы, отображение данных из нового бэкенда;

  • Разбираться в унаследованном коде и скриптах (Cloud Functions, интеграции с Google Docs) и переносить их логику на новый стек;

  • Синхронизироваться с командой фронта/бэка, уточнять нечёткие требования и помогать команде договориться о терминологии;

  • Активно использовать AI-инструменты (Copilot/Cursor/Claude и подобные) для быстрого погружения в чужой код, ускоренной разработки и разбора незнакомых участков системы.

Что необходимо от тебя:

  • Backend:

  • Python – уверенное владение, опыт продакшен-разработки;

  • FastAPI – построение REST API, работа с зависимостями, middleware;

  • Pydantic – валидация данных, схемы, сериализация;

  • taskiq (или похожие асинхронные очереди задач: Celery/arq/dramatiq) – плюс, если есть опыт именно с taskiq;

  • Опыт миграции данных между СУБД, в идеале – опыт работы с Firebase/Firestore;

  • Базы данных:

  • MongoDB – модели документов, агрегации, индексы;

  • PostgreSQL – SQL, сложные запросы, оптимизация, миграции схем;

  • Frontend:

  • React + TypeScript;

  • Shadcn/ui, Tailwind CSS;

  • Понимание REST-взаимодействия фронта с бэком, работа с формами и отображением данных;

  • Инфраструктура:

  • Git/GitHub – перенос репозиториев, работа в корпоративном контуре, ветвление, code review;

  • Плюсом: опыт с Docker, CI/CD (например GitLab CI).

    Софт-скиллы:
  • Быстрая адаптивность: сегодня разбирает чужой Cloud Function, завтра – компонент на React, и не теряется при переключении контекста;

  • Активное и осмысленное использование AI-инструментов для скорости – не как «костыль», а как рабочий метод разбора legacy-кода и ускорения разработки;

  • Готовность разбираться с наследием: старые скрипты, недокументированные интеграции, нечистые данные;

  • Системное мышление: не просто написать код, а проверить корректность переноса данных, покрыть валидацией на стороне бэка;

  • Коммуникабельность: способность договариваться с командой, уточнять нечёткие постановки задач, вносить ясность в терминологию.

Условия:

  • Официальное трудоустройство с первого дня работы (льготная ипотека для сотрудников, отсрочка от армии);

  • Дополнительные дни к больничному за счет компании;

  • Гибкий график: 5/2, на выбор: с 8:00 до 17:00 / с 9:00 до 18:00 / с 10:00 до 19:00. Возможность удаленной работы;

  • Профессиональное развитие: конференции и обучение за наш счет (софинансирование до 50%);

  • Быстрое карьерное развитие: пересмотр грейда возможен каждые три месяца;

  • Уровень заработной платы готовы обсуждать по итогам собеседования, ориентируясь на ваш опыт и навыки;

  • Релокационный пакет обсуждается индивидуально;

  • Присоединяйся к нам! Будем рады ответить на твои вопросы и встретить тебя в нашей команде!