Нур-Султан (Астана), проспект Бауыржана Момышулы, 5А
О роли
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 месяца.
Заработная плата обсуждается по итогам собеседования.
Квартальные премии в размере одного месячного оклада.
Техническое собеседование проводится офлайн в офисе.
Для кандидатов, которые покажут уровень выше ожиданий на техническом этапе, готовы рассмотреть индивидуальные условия по заработной плате.
Банк Развития Казахстана
Астана
Не указана