{"id":4008898,"url":"https://alion.io/job/aya-group-backend-razrabotchik","title":"Backend-разработчик","company":{"id":6115,"name":"AYA Group","domain":"aya.ru","url":"https://alion.io/company/aya-group","size_band":"51-200","is_staffing_agency":false,"employer_type":"direct","is_intermediary":false,"listed_via":null,"ats_vendor":"HeadHunter","truth_index":null},"role":"Backend","role_family":"Backend","seniority":null,"employment_type":null,"work_mode":"remote","remote_scope":"stated_regions","remote_scope_basis":"board_field","remote_working_hours":null,"hiring_geo_confidence":"inferred","locations":["Moscow, Russia"],"countries":["RU"],"hiring_countries":["RU","BY","KZ","KG","AM"],"hiring_countries_total":5,"salary":null,"salary_estimate":null,"experience_years_min":null,"visa_sponsorship":false,"relocation_package":false,"has_equity":false,"technologies":[{"name":"Apache Kafka","optional":false},{"name":"ClickHouse","optional":false},{"name":"Docker","optional":false},{"name":"GCP","optional":false},{"name":"GitLab CI","optional":false},{"name":"Google Cloud Run","optional":false},{"name":"GraphQL","optional":false},{"name":"Node JS","optional":false},{"name":"PostgreSQL","optional":false},{"name":"RabbitMQ","optional":false},{"name":"Redis","optional":false},{"name":"Rest API","optional":false},{"name":"Sentry","optional":false},{"name":"SQL","optional":false},{"name":"TypeScript","optional":false},{"name":"WebSockets","optional":false},{"name":"Zod","optional":false},{"name":"JavaScript","optional":true}],"status":"live","first_seen_at":"2026-11-10T08:51:24Z","employer_posted_date":"2026-11-10","last_verified_at":"2026-11-11T00:42:51Z","board_verified":true,"closed_at":null,"days_open":0,"trust":{"level":"ok","repost_count":null,"flags":[],"days_open":0},"description":"Мы развиваем финтех-продукты: банковские карты, мультивалютные счета, платежи и криптооперации. Это действующая система с реальными деньгами и десятками тысяч пользователей. Команда небольшая, поэтому разработчик напрямую участвует в технических и продуктовых решениях, работает с техлидом, frontend, mobile и QA и может вести задачи от бизнес-требования до production.\n Стек: TypeScript (strict), Bun/Node.js, PostgreSQL (raw SQL, pgtyped, PL/pgSQL, функции и триггеры), GraphQL Yoga и codegen, REST, WebSocket, Redis, Kafka, GCP Pub/Sub, ClickHouse, Docker, GitLab CI, GCP Cloud Run и Cloud Functions, Sentry, Zod, Biome.\n Обязанности:\n Разрабатывать сервисы карт, счетов, операций, подписок, реферальной системы и комиссий - от схемы данных до API и фоновых обработчиков.\n\n Работать с денежной логикой в PostgreSQL: разбираться в функциях и триггерах, сохранять инварианты балансов, проектировать транзакции, блокировки, индексы и безопасные миграции.\n\n Развивать обработчики Kafka и Pub/Sub: обеспечивать идемпотентность, дедупликацию, корректные повторы и восстановление после частичных сбоев.\n\n Поддерживать общий Kafka controller и прикладные событийные потоки.\n\n Развивать GraphQL и REST API, а также события WebSocket. Сохранять обратную совместимость с независимо выпускаемыми клиентскими приложениями.\n\n Интегрироваться с карточными, KYC, крипто- и почтовыми провайдерами, обрабатывать вебхуки и корректно разбирать случаи, когда результат внешнего вызова неизвестен.\n\n Вести подсистему целиком: уточнять бизнес-правила, проектировать решение, выпускать его, проверять результат и документировать важные сценарии.\n\n Планировать изменения схемы и данных без остановки критичных production-сценариев.\n\n Разбирать инциденты на уровне приложения по цепочке API → БД → очередь → провайдер и безопасно восстанавливать незавершённые операции.\n\n Участвовать в code review и технических решениях; вместе с QA улучшать проверки, с frontend и mobile согласовывать контракты.\n\n Требования: От 4 лет коммерческой backend-разработки на TypeScript/Node.js. Опыт Bun полезен, но не обязателен.\n\n Сильный PostgreSQL: SQL руками, планы запросов, индексы, транзакции, блокировки и уровни изоляции; умение разбираться в большой существующей схеме.\n\n Опыт с PL/pgSQL, триггерами и хранимыми функциями либо готовность быстро освоить этот слой. База данных здесь не только хранит данные: в ней реализована часть денежных правил.\n\n Понимание систем с денежным состоянием: проводки и двойная запись, удержания, статусы операций, мультивалютность, конвертации, точность округлений, сверка и компенсация.\n\n Опыт с Kafka, Pub/Sub или RabbitMQ: at-least-once доставка, повторная обработка, дедупликация и понимание границ между очередью, БД и внешним сервисом.\n\n Опыт GraphQL и/или REST. Плюсом будет schema-first подход и кодогенерация типов.\n\n Умение безопасно менять живую систему: сохранять обратную совместимость, планировать порядок миграции и деплоя, ограничивать rollout и проверять результат после выпуска.\n\n Самостоятельность: способность получить задачу в бизнес-терминах, уточнить недостающие правила, спроектировать решение и довести его до production.\n\n Инженерная аккуратность: строгая типизация, статический анализ, тесты в наиболее рискованных местах, понятные сценарии проверки и актуальная документация.\n\n Умение расследовать сбои по конкретным идентификаторам и данным, отделять факт от гипотезы и не повторять денежную или внешнюю операцию без сверки результата.\n\n Будет плюсом: ClickHouse, GCP Cloud Run, Pub/Sub и Cloud Functions, Docker, GitLab CI, Redis, WebSocket, Sentry, опыт в финтехе или криптопродуктах.\n\n Что мы предлагаем:\n 1. Профессиональный рост и развитие:\n Работа над задачами в международном финтех-продукте\n\n Бюджет на обучение, конференции и профессиональную литературу\n\n 2. Условия работы:\n График работы 5/2 с гибким началом рабочего дня\n\n Удаленный формат работы по миру\n\n Компенсация ДМС после испытательного срока\n\n Два дополнительных выходных дня в год\n\n 3. Корпоративная жизнь:\n Яркие корпоративные мероприятия, от онлайн-квизов до выездов на природу\n\n Поддержка спортивных увлечений команды\n\n Отсутствие формализма и бюрократии, мы ценим результат и здравый смысл","description_format":"text","description_chars":4194,"description_truncated":false,"requirements":{"experience_years_min":null,"management_years_min":null,"team_size_min":null,"manages_managers":false,"education":null,"security_clearance":false,"languages":[{"language":"Russian","level":"Advanced (C1)","optional":false}]},"benefits":[],"hiring_locations":[{"name":"Russia","iso":"RU","kind":"country"},{"name":"Belarus","iso":"BY","kind":"region"},{"name":"Kazakhstan","iso":"KZ","kind":"region"},{"name":"Kyrgyzstan","iso":"KG","kind":"region"},{"name":"Armenia","iso":"AM","kind":"region"}],"hiring_excludes":[],"relocation_offered":false,"industries":["Custom Software Development"],"lifecycle":[{"event":"open","at":"2026-11-10T08:56:07Z"}],"visa":[],"liveness":{"score":86,"band":"hot","label":"Hiring now","p_open":1,"p_active":0.86,"p_room":1,"age_days":0,"expected_fill_days":30,"reasons":["conf:4","win:early"],"computed_at":"2026-11-11T05:41:06Z"},"pay":null,"html_url":"https://alion.io/job/aya-group-backend-razrabotchik","json_url":"https://alion.io/job/aya-group-backend-razrabotchik.json","meta":{"generated_at":"2026-11-11T05:41:06Z","cache_seconds":300,"methodology":"https://alion.io/methodology","terms":"https://alion.io/terms","contact":"https://alion.io/contact","api":"https://alion.io/developers","about":"Alion is a live layer of people, companies and AI agents: who they are, whether they are real and active right now, what they do and how to work with them, readable by people and by agents and paid per call.","catalog":"https://alion.io/catalog.json","usage":{"tier":"crawler_verified","counted_by":"address","units_charged":1,"used_today":7581,"day_limit":null,"remaining_today":null,"minute_limit":300,"resets_at":"2026-11-12T00:00:00Z"}},"offers":[{"id":"company.slices","title":"One company in depth, by slice","status":"live","price":{"credits":0.1,"usd":0.01,"plus_per_slice":{"credits":0.05,"usd":0.005}},"unit":"per company, plus each slice with data","note":"the employer in depth","call":{"mcp_tool":"get_company","arguments":{"id":6115},"rest":"https://alion.io/mcp/rest/get_company?id=6115"},"human":"https://alion.io/catalog?offer=company.slices&for=job%2Faya-group-backend-razrabotchik"},{"id":"market.stats","title":"A market slice: pay, demand and time to fill","status":"live","price":{"credits":2,"usd":0.2},"unit":"per slice","note":"pay, demand and time to fill for this role and place","call":{"mcp_tool":"market_stats"},"human":"https://alion.io/catalog?offer=market.stats&for=job%2Faya-group-backend-razrabotchik"},{"id":"job.search","title":"Open jobs by role, technology, place, pay and visa","status":"live","price":{"credits":0.1,"usd":0.01},"unit":"per posting in a list","note":"similar open postings","call":{"mcp_tool":"search_jobs"},"human":"https://alion.io/catalog?offer=job.search&for=job%2Faya-group-backend-razrabotchik"},{"id":"company.verify","title":"Is this company real and active right now","status":"pilot","price":null,"unit":"per company","request":{"url":"https://alion.io/catalog/request","method":"POST","body":"{\"offer\": \"company.verify\", \"for\": \"job/aya-group-backend-razrabotchik\", \"note\": \"what you need it for\"}"},"human":"https://alion.io/catalog?offer=company.verify&for=job%2Faya-group-backend-razrabotchik"}],"agent":{"mcp":"https://alion.io/mcp/jobs","mcp_open":"https://alion.io/mcp/open","next":[{"tool":"get_job","arguments":{"id":4008898}},{"tool":"search_jobs","arguments":{"company":"aya.ru","detail":"compact"}},{"tool":"match_people","arguments":{"job_id":4008898},"note":"people open to offers who fit this vacancy"}],"note":"The same data through MCP tools: https://alion.io/mcp/open needs no sign-in (compact searches, postings, people); https://alion.io/mcp with an Alion account has everything. Docs: https://alion.io/developers"}}