Senior Automation QA Engineer
О продукте
Мы строим финтех-платформу в регулируемом домене: движение денег, ledger с двойной записью, KYC/KYT/AML-контуры и регуляторная отчётность. Инженерно это event-driven бэкенд на Python 3.14 / FastAPI (CDC-консьюмеры, Kafka/Redpanda, Temporal, PostgreSQL 17). Клиенты — веб-SPA онбординга на React/TypeScript и нативное iOS-приложение на Swift 6/SwiftUI.
Юрисдикцию, регуляторный режим и деталь продукта раскрываем на поздних этапах отбора.
О роли
Открыты две позиции Senior Automation QA Engineer. Функция тестирования строится с нуля — вы будете её строить и вести: задавать стратегию, поднимать автотест-фреймворк, вводить контрактное тестирование и quality gates в CI/CD. Это automation-first роль: ручное прокликивание — не наш формат.
Две позиции могут разойтись по фокусу (точное распределение обсудим на собеседовании):
- Бэкенд / API-автоматизация — pytest + async, интеграционные тесты на реальном Postgres в CI, контрактные тесты Kafka/event wire-форматов, тестирование CDC- и Temporal-пайплайнов, потоков регуляторной отчётности и интеграций с внешними провайдерами.
- E2E — сквозные сценарии веб-онбординга (React/TS SPA) и нативного iOS-приложения (Swift 6/SwiftUI).
Чем предстоит заниматься
- Построить и владеть автотест-фреймворком на Python (pytest): API-, контрактные и интеграционные тесты для async/event-driven системы.
- Поднять контрактное тестирование Kafka/event-форматов между сервисами — так, чтобы изменения схем и появление новых консьюмеров не проходили мимо CI.
- Тестировать durable-workflow и event-driven цепочки end-to-end: Kafka-консьюмеры (FastStream), Temporal workflows/activities, цепочки Debezium CDC (изменение в БД → WAL → Kafka → workflow → внешний API), интеграционные тесты на реальном Postgres в CI.
- Покрыть самый рискованный контур: исходящие платежи (pay-out), денежный ledger (available/pending/hold, двойная запись), FX и compliance-гейты на исходящие операции.
- Валидировать регуляторную корректность: разделение потоков отчётности, пороговые правила и агрегация по времени, снапшоты FX-курса, гарантия того, что внутренние риск-метрики не попадают в исходящие payload-ы.
- Проверять верификацию вебхуков внешних провайдеров (HMAC- и RSA-SHA256-подписи), anti-replay, идемпотентность и replay-safety; sandbox-флоу KYC/KYB/KYT.
- Тестировать полный онбординг для веба и мобайла: state-machine флоу, связку FE↔API, аутентификацию и выпуск сессии.
- Встроить тесты в CI/CD (GitHub Actions → container registry → Kubernetes/ArgoCD) и поднять quality gates по всем репозиториям.
Дорожная карта: продукту предстоит вырасти до ~37 интеграций с внешними поставщиками (identity, банковские рельсы, платёжные/AML-провайдеры, регуляторная подача). От QA ждём стратегию покрытия, рассчитанную на этот рост, а не точечные тесты под текущее состояние.
Требования (must-have)
- Senior-уровень Python (3.14), уверенный async/await.
- Построение и владение тест-фреймворком на Python (pytest): API-, контрактное и интеграционное тестирование async/event-driven систем, потоки с реальной БД и Kafka/Temporal.
- Опыт тестирования event-driven архитектуры: Kafka (Redpanda-класс), CDC (Debezium/outbox), durable workflows (Temporal или аналог).
- PostgreSQL на уровне понимания схем, миграций и транзакционной консистентности; знакомство с logical decoding/WAL — плюс.
- Опыт в финтехе/платежах или ином регулируемом домене: ledgers, движение денег, идемпотентность, KYC/KYT/AML, интеграции с платёжными/identity-провайдерами.
- Понимание верификации вебхуков (HMAC/RSA), anti-replay и resilience при интеграции внешних API.
- Docker; CI/CD на GitHub Actions; представление о cloud-деплое (AWS — EKS/Helm/ArgoCD большой плюс).
- Зрелость, чтобы вести и строить функцию тестирования и quality gates в CI: роль владеет тестированием, а не исполняет тикеты.
- Готовность работать в AI-driven инженерном процессе (agentic-тулинг, rules + skills) как в основном способе разработки.
- Рабочий английский: Jira/Confluence/документация в команде на английском.
Для E2E-фокуса дополнительно: автоматизация тестов для веба (React/TS SPA) и нативного iOS-приложения (класс XCUITest/Appium).
Мы ищем сильного, реалистичного senior'а — не «единорога». Закрывать все пункты на 100% не требуется; важны глубина в автоматизации event-driven систем и способность строить функцию.
Будет плюсом
- Temporal-специфика: Schedules, детерминизм, replay-safe activities.
- Крипто/VASP/blockchain: custody, Travel Rule, стейблкоины, L2.
- Compliance-инженерия: AML- и FX-отчётность в регулируемом домене.
- Frontend E2E на React/TS (FSD, RTK Query): Playwright/Cypress-класс.
- Опыт поднятия тестирования для greenfield-микросервисов и контрактных Kafka/event test-suite.
- Go и/или Swift для кросс-стек контрактной работы.
- Helm / ArgoCD / GitHub OIDC keyless CI; supply-chain-гигиена (provenance, подпись образов).
Наш стек
- Бэкенд: Python 3.14, FastAPI, SQLAlchemy 2.0 async (asyncpg) + Alembic, Pydantic; strict mypy, ruff, uv.
- Event-driven / durable: FastStream (Kafka/Redpanda), Temporal, Debezium CDC.
- Данные: PostgreSQL 17 (несколько изолированных БД; logical decoding/WAL).
- Тесты: pytest, включая интеграционные на реальном Postgres в CI.
- Инфра: контейнерная, курс на AWS EKS + Helm + ArgoCD; CI на GitHub Actions.
- Клиенты: React + TypeScript (Feature-Sliced Design, RTK Query, Vite); Swift 6 / SwiftUI / iOS 18+.
Условия — важно прочитать до отклика
- Работа из офиса (on-site). Remote-only не рассматривается.
- AI-driven процесс разработки (agentic-тулинг, rules + skills) — это то, как устроена инженерная работа, а не эксперимент; готовность работать так обязательна.
- Поставка за feature-флагами против незавершённых внешних контрактов. Часть интеграций находится в процессе подключения; работа идёт на mock/sandbox до завершения соответствующих регистраций и договоров. Нужна готовность тестировать и поставлять в таких условиях.
- Строгая дисциплина работы с чувствительными данными: никаких секретов и PII в репозиториях (enforced в CI); security-сознательность обязательна.
- Английский в Jira/Confluence/коммитах — стандарт команды.
Как проходит отбор
- Скрининг резюме и короткий разговор: ожидания, английский, согласие с условиями (офис, AI-driven процесс).
- Техническое интервью: автоматизация тестирования async/event-driven систем (pytest, контрактные тесты, Kafka/Temporal/CDC), PostgreSQL, подход к quality gates в CI.
- Практическая секция: проектирование тест-стратегии на близком к нашему кейсе (контрактный тест event-формата или e2e-цепочка CDC → workflow → внешний API).
- Финал с командой: построение и ведение функции тестирования, приоритезация покрытия под рост интеграций, культурный мэтч.