Talana Labs
EN RU Написать
Все вакансии

FullStack Developer

Senior Полная занятость — удалённо Опубликовано 6 ноября
Откликнуться ↓

Talana Labs делает продукты, которыми люди пользуются каждый день, чтобы интернет работал так, как должен. Продуктов несколько: часть связана в общую сеть, часть развивается самостоятельно.

Ты попадёшь в продуктовую команду одного из направлений. Продукт живёт в Telegram — Mini App плюс бот: пользователь выбирает услугу, оплачивает её с внутреннего баланса, получает результат и управляет им прямо в мини-аппе. Всё развивается быстро: в бэклоге одновременно находятся и новые фичи, и задачи по улучшению кодовой базы.

Работа идёт под руководством тимлида: он расставляет приоритеты, проводит ревью и помогает в спорных ситуациях. После постановки макрозадач декомпозиция, защита решения, реализация и доведение до продакшена остаются на тебе. Нужен человек, который самостоятельно ведёт фичу от схемы БД и миграции до рабочего экрана в Mini App в уже существующей кодовой базе.

AI (Cursor, Claude или другой) у нас — привычный рабочий инструмент, и пользоваться им нужно. Но архитектуру на аутсорс AI-моделям не отдают: диффы проверяешь перед отправкой на ревью, существующие абстракции не обходишь и не коммитишь то, чего сам не понимаешь. На ревью решение защищаешь сам, а не ссылаешься на AI.

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

  • Вести фичи целиком: от схемы БД и миграции до экрана в Mini App в существующей кодовой базе.

  • Разрабатывать новые пользовательские и административные фичи.

  • Улучшать кодовую базу: проводить рефакторинг, выравнивать абстракции, устранять прежние костыли.

  • Исправлять баги, в том числе на стыке оплаты, внешнего провайдера, фронтенда и бэкенда.

  • Профилировать узкие места: запросы, рендеры, очереди, синхронизацию данных с провайдером.

  • Писать тесты (модульные, интеграционные, при необходимости нагрузочные) как обязательную часть работы над фичей.

Что мы ожидаем

Уровень

Senior. Middle, Junior и Intern на этой позиции не рассматриваем.

TypeScript

  • Уверенное владение TypeScript: дженерики, discriminated unions, сужение типов, работа в strict-режиме без обхода типизации через as any.

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

  • Git: осмысленные коммиты, понятные PR, умение разрешать конфликты в монорепозитории.

Backend

  • NestJS: модули, DI, guards, pipes, interceptors, фоновые processors.

  • PostgreSQL на практике: транзакции, уникальные ограничения, индексы по делу, статусы сущностей, идемпотентные вебхуки, понимание того, что произойдёт при повторной доставке события.

  • Query builder / SQL: готовность работать с query builder без ORM.

  • Интеграции с внешними HTTP API: подписи / HMAC, пагинация, маппинг внешней модели во внутреннюю, таймауты и обработка ошибок.

  • Очереди (BullMQ + Redis) и понимание того, чего нельзя делать синхронно в HTTP-запросе.

Frontend

  • React: хуки, контекст, store.

  • Маршрутизация (React Router), серверное состояние (TanStack Query).

  • Vite, Tailwind + shadcn/ui, аккуратная вёрстка под мобильный WebView.

  • Тесты UI-логики (Testing Library / Vitest или аналоги), готовность внедрить тестовый контур, если его ещё нет.

  • Понимание экосистемы Telegram как продуктового канала: Mini App и бот.

Что для нас важно в работе

  • Общаться конструктивно: если с чем-то не согласен, приходишь к тимлиду с аргументами, а не молча нарушаешь конвенции.

  • Поддерживать качество: типы, понятные PR, тесты на рискованные места, отсутствие мёртвого кода.

  • Принимать решения в условиях неполного ТЗ, не откладывать задачу на неделю ради анализа и не ждать идеальной спецификации.

  • Отличать решение на час от решения на несколько дней.

  • Самостоятельно эскалировать блокеры: неясные продуктовые требования, пробелы в доменной модели, финансовые риски, сомнения в гайдлайнах.

  • Писать коротко и по делу: контекст, варианты, рекомендация, что уже сделано.

  • Не пропадать в задаче — статус должен быть понятен без дополнительных расспросов.

  • Защищать свои технические решения на ревью: отвечать на вопросы и задавать свои.

  • Закрывать задачу целиком — и фронтенд, и бэкенд, когда это необходимо.

Кого мы не ищем

  • Frontend-only или backend-only разработчика без готовности закрыть соседний слой в рамках той же задачи.

  • Человека, которому нужна пошаговая постановка каждой задачи.

  • Того, кто месяцами проектирует сервисы, но не доводит фичи до мержа.

  • Разработчика, который каждое изменение начинает с внедрения нового фреймворка, ORM или state-менеджера.

  • Тех, кто игнорирует гайдлайны, не обсуждает решения с тимлидом и не умеет их защищать.

  • Исполнителя, который бездумно переносит сгенерированный AI код без понимания его работы.

  • Тех, кто считает тесты, Docker и работу с манифестами Kubernetes чужими задачами.

Формат работы

  • Стек: Nx + pnpm-монорепозиторий, TypeScript strict, Node.js / NestJS, React + React Router + Telegraf + TanStack, PostgreSQL, Docker, Kubernetes (самостоятельно настраивать не придётся — есть DevOps, но иногда разбираться в инфраструктуре необходимо).

  • Режим: удалённая работа, асинхронное взаимодействие с понятными статусами задач. Регулярная связь с тимлидом, вопросы решаются по ходу работы.

  • Язык: русский (рассмотрим и кандидатов с хорошим английским). Интерфейс продукта — RU / EN.

  • Стек и домен уже заданы: ты их развиваешь, а не выбираешь заново.

  • Без зоопарка микросервисов: несколько отдельных процессов с общей доменной моделью и shared-пакетами.

  • Есть гайдлайны разработки (архитектура, стиль, границы модулей, работа с AI, Git). Их нужно читать и соблюдать. Если гайдлайн мешает решению задачи, это повод обсудить его с тимлидом, а не молча обойти.

Что предлагаем

  • Оклад на уровне рынка с пересмотром по итогам Performance Review.

  • Команду сильных инженеров, сплочённых идеей создания цифровых продуктов.

  • Удалённую работу, полный рабочий день с гибким графиком.

  • Компенсацию расходов на обучение.

Откликнуться на вакансию

Расскажите о себе и приложите резюме. HR свяжется с вами, если опыт подходит.

Резюме *
Выберите PDF или перетащите файл сюда PDF, до 10 МБ

Смотрите также

Другие открытые позиции в командах Talana Labs.

Все вакансии →