Не упустите лучшие вакансии!
Подключите наш Telegram-бот и получайте мгновенные уведомления о новых предложениях из 10+ источников. Будьте первым, кто откликнется!
Подключить ботаSenior Fullstack-разработчик (Python / FastAPI / React / TypeScript)
О роли
IT-департамент Казахстанской федерации футбола развивает внутренний продукт для автоматизации и оптимизации процессов организации.
Ищем Senior Fullstack Developer с сильной backend-экспертизой, который будет развивать серверную часть на Python и FastAPI, пользовательские интерфейсы на React и TypeScript, интеграции и архитектуру продукта.
Предстоит работать со сложной бизнес-логикой, ролевой моделью доступа, большими объёмами табличных данных, фоновыми задачами и внутренними процессами федерации.
Основные обязанности
-
Разрабатывать и поддерживать REST API на Python и FastAPI и SPA на React и TypeScript.
-
Реализовывать бизнес-логику, вычисления, проверки данных и ролевую модель доступа.
-
Разрабатывать асинхронные операции и фоновые задачи.
-
Создавать сложные формы и редактируемые таблицы с валидацией, вычисляемыми значениями и автосохранением.
-
Реализовывать маршрутизацию и отображение интерфейса с учётом прав пользователя.
-
Проектировать структуру PostgreSQL, писать и оптимизировать запросы, поддерживать миграции.
-
Интегрировать продукт с брокерами сообщений, объектными хранилищами и внешними системами.
-
Реализовывать безопасную загрузку, хранение и выдачу файлов.
-
Интегрировать frontend с REST API, обрабатывать загрузку, кеширование, ошибки и повторные запросы.
-
Оптимизировать производительность API, больших списков и таблиц.
-
Писать unit-, integration- и компонентные тесты.
-
Участвовать в проектировании архитектуры, декомпозиции задач и code review.
-
Настраивать логирование и обработку ошибок.
-
Участвовать в контейнеризации и базовых CI/CD-процессах.
-
Поддерживать локализацию интерфейса.
Что мы ожидаем
Общий опыт
-
Высшее техническое образование.
-
Не менее 3 лет коммерческого опыта разработки web-приложений.
-
Сильный опыт backend-разработки на Python и уверенный опыт frontend-разработки на React и TypeScript.
-
Умение самостоятельно проектировать и реализовывать сложные задачи.
Backend
-
Уверенное знание Python: модель данных, type hints, коллекции, итераторы, генераторы, декораторы, контекстные менеджеры и обработка исключений.
-
Понимание устройства CPython, управления памятью, reference counting и garbage collector.
-
Уверенное знание asyncio: event loop, coroutines, tasks, futures, cancellation и обработка ошибок.
-
Понимание конкурентности, параллелизма, I/O-bound и CPU-bound задач.
-
Практический опыт разработки REST API на FastAPI.
-
Уверенное знание Pydantic v2 и проектирования API-контрактов.
-
Хорошее понимание REST, HTTP, JSON, кодов ответа, идемпотентности и OpenAPI.
-
Уверенное знание PostgreSQL и SQL: схемы, индексы, транзакции, блокировки и планы запросов.
-
Практический опыт с SQLAlchemy 2.x и Alembic.
-
Опыт реализации JWT-аутентификации, ролей и проверки прав.
-
Практический опыт с Celery и RabbitMQ и/или Redis.
-
Понимание retries, идемпотентности и обработки неуспешных фоновых задач.
-
Опыт работы с Amazon S3, MinIO или другими S3-совместимыми хранилищами.
-
Понимание безопасной загрузки и выдачи файлов.
Frontend
-
Уверенное знание JavaScript и TypeScript, включая generics, utility types и discriminated unions.
-
Хорошее знание React: компоненты, хуки, управление состоянием и особенности рендеринга.
-
Опыт разработки SPA с React Router и Vite.
-
Уверенное владение HTML и CSS.
-
Опыт работы с Tailwind CSS и shadcn/ui.
-
Понимание принципов построения переиспользуемых компонентов.
-
Практический опыт с TanStack Query.
-
Опыт работы с TanStack Table или аналогичными headless-решениями.
-
Умение реализовывать редактирование и валидацию ячеек, вычисляемые строки и клавиатурную навигацию.
-
Опыт разработки сложных форм с React Hook Form и Zod.
-
Умение находить лишние ререндеры и оптимизировать большие списки и таблицы с помощью мемоизации и виртуализации.
-
Понимание accessibility и адаптивной верстки.
Тестирование и качество кода
-
Опыт написания unit- и integration-тестов с pytest.
-
Опыт тестирования FastAPI и асинхронного кода с pytest-asyncio или AnyIO и HTTPX.
-
Опыт работы с Vitest и React Testing Library.
-
Понимание ООП, функционального программирования, SOLID, композиции, модульности и immutability.
-
Уверенное использование type hints, статической проверки типов, линтинга и форматирования.
-
Практический опыт с Ruff и mypy либо аналогами.
Инструменты и инфраструктура
-
Опыт работы с pyproject.toml, uv или Poetry.
-
Знание Node.js на уровне пакетных менеджеров, скриптов, зависимостей и сборки.
-
Уверенная работа с Git и участие в code review.
-
Практический опыт с Docker и Docker Compose.
-
Умение писать Dockerfile, использовать multi-stage build, переменные окружения, networks, volumes и health checks.
-
Базовое понимание CI/CD: линтинг, тестирование, сборка Docker-образов, миграции и развертывание.
Безопасность и коммуникация
-
Базовое понимание безопасности web-приложений и API: XSS, CORS, SQL injection, JWT, валидация данных и контроль доступа.
-
Грамотная письменная и устная речь на русском языке.
-
Английский язык на уровне чтения технической документации.
Будет преимуществом
-
Опыт работы в продуктовых IT-командах или крупных организациях.
-
Опыт с Apache Kafka и event-driven архитектурой.
-
Опыт использования Testcontainers.
-
Опыт применения raw SQL или asyncpg для сложных запросов.
-
Опыт генерации PDF- и XLSX-документов в фоновых задачах.
-
Опыт настройки логирования, мониторинга, метрик и distributed tracing.
-
Опыт разработки систем с аудитом изменений и чувствительными данными.
-
Опыт работы с Playwright, Redux Toolkit или Node.js.
-
Опыт генерации типизированного API-клиента по OpenAPI.
-
Опыт разработки мультиязычных приложений и работы с i18n.
-
Опыт развития дизайн-систем и интерфейсов с большим объёмом табличных или финансовых данных.
Условия
-
Официальное трудоустройство в городе Астана.
-
Испытательный срок - 3 месяца.
-
Заработная плата обсуждается по итогам собеседования.
-
Квартальные премии в размере одного месячного оклада.
-
Техническое собеседование проводится офлайн в офисе.
Для кандидатов, которые покажут уровень выше ожиданий на техническом этапе, готовы рассмотреть индивидуальные условия по заработной плате.
Ваше резюме увидят первым!
Автоматическое поднятие на HeadHunter каждые 4 часа. Увеличьте свои шансы на успех в 10 раз!
Подключить автоподнятие