{"id":60802,"url":"https://alion.io/job/getads-middle-backend-razrabotchik-haskell","title":"Middle backend-разработчик Haskell","company":{"id":20408,"name":"getads","domain":"getads.ru","url":"https://alion.io/company/getads","size_band":"11-50","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":"middle","employment_type":"full_time","work_mode":"remote","remote_scope":"stated_regions","remote_scope_basis":"board_field","remote_working_hours":null,"hiring_geo_confidence":"structured","locations":["Moscow, Russia"],"countries":["RU"],"hiring_countries":["RU","BY","KZ","KG","AM"],"hiring_countries_total":5,"salary":{"min":180000,"max":220000,"currency":"RUB","period":"month","gross":false,"usd_annual":30156},"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":"Git","optional":false},{"name":"Gitflow","optional":false},{"name":"GitHub","optional":false},{"name":"Haskell","optional":false},{"name":"PostgreSQL","optional":false},{"name":"Redis","optional":false},{"name":"Rest API","optional":false},{"name":"SQL","optional":false},{"name":"Amazon S3","optional":true},{"name":"Esqueleto","optional":true},{"name":"Kubernetes","optional":true}],"status":"live","first_seen_at":"2026-09-13T17:55:09Z","employer_posted_date":"2026-09-13","last_verified_at":"2026-10-31T10:38:56Z","board_verified":true,"closed_at":null,"days_open":48,"trust":{"level":"ok","repost_count":1,"flags":[],"days_open":47},"description":"Мы ищем middle backend-разработчика, который любит Haskell и хочет строить на нём высококачественные системы. Ты будешь работать в небольшой команде SAAS рекламной платформы: два back-end, три front-end разработчика и продакт-менеджер. Все продукты компании пишутся на Haskell - так что будет с кем обмениваться опытом.Задачи \n Разрабатывать и развивать backend-сервисы платформы на Haskell\n Проектировать и развивать REST API на Servant: согласованные типы запросов/ответов, аккуратные доменные модели\n Моделировать данные и вести миграции (Postgres), работать со справочными и иерархическими данными\n Работать с аналитикой и отчётностью на ClickHouse, оптимизировать запросы под нагрузку\n Делать интеграции с внешними системами и API\n Отвечать за надёжность и наблюдаемость сервисов (логирование, health/readiness probes), участвовать в разборе инцидентов\n Участвовать в архитектурных решениях и код-ревью; качество - ответственность команды, пишем тесты\n Требования \n Любовь к функциональным языкам и понимание их основ\n Обязательный опыт с Haskell (pet-проекты и open source тоже считаются)\n Опыт с базами данных (SQL и NoSQL) и понимание REST API\n Уверенная работа с Git: Git Flow, пулл-реквесты на GitHub, командная строка\n Любознательность, умение задавать вопросы и желание быстро и много учиться\n Уверенное использование AI-ассистентов и агентов в ежедневной работе для написания и рефакторинга кода, ревью, тестов и документации\n Будет плюсом \n Чистый, документированный код; понимание HTTP и архитектуры REST\n Знакомство с программированием на уровне типов в Haskell\n Опыт с ClickHouse\n Контейнеризация (Docker, Kubernetes)\n Работа с объектными хранилищами (CDN, S3)\n Опыт с nix\n Наш стек\nHaskell (servant, swagger, esqueleto), Postgres, Redis, ClickHouse, REST, nix","description_format":"text","description_chars":1777,"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":["TV Production","Cryptocurrencies"],"lifecycle":[{"event":"open","at":"2026-08-17T17:55:09Z"},{"event":"open","at":"2026-09-10T20:27:08Z"},{"event":"6","at":"2026-09-13T17:55:09Z"},{"event":"close","at":"2026-09-14T11:31:20Z"},{"event":"restore","at":"2026-09-14T22:46:23Z"}],"visa":[],"liveness":{"score":11,"band":"cold","label":"Long shot","p_open":1,"p_active":0.306,"p_room":0.35,"age_days":47,"expected_fill_days":7,"reasons":["conf:20","win:tail"],"computed_at":"2026-10-31T05:58:55Z"},"pay":{"stated_usd_annual":30156,"is_top_pay":false},"html_url":"https://alion.io/job/getads-middle-backend-razrabotchik-haskell","json_url":"https://alion.io/job/getads-middle-backend-razrabotchik-haskell.json","meta":{"generated_at":"2026-11-01T00:08:17Z","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":258,"day_limit":null,"remaining_today":null,"minute_limit":300,"resets_at":"2026-11-02T00:00:00Z"}},"offers":[{"id":"company.slices","title":"One company in depth, by slice","status":"live","price":{"credits":0.02,"usd":0.002,"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":20408},"rest":"https://alion.io/mcp/rest/get_company?id=20408"},"human":"https://alion.io/catalog?offer=company.slices&for=job%2Fgetads-middle-backend-razrabotchik-haskell"},{"id":"market.stats","title":"A market slice: pay, demand and time to fill","status":"live","price":{"credits":1,"usd":0.1},"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%2Fgetads-middle-backend-razrabotchik-haskell"},{"id":"job.search","title":"Open jobs by role, technology, place, pay and visa","status":"live","price":{"credits":0.02,"usd":0.002},"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%2Fgetads-middle-backend-razrabotchik-haskell"},{"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/getads-middle-backend-razrabotchik-haskell\", \"note\": \"what you need it for\"}"},"human":"https://alion.io/catalog?offer=company.verify&for=job%2Fgetads-middle-backend-razrabotchik-haskell"}],"agent":{"mcp":"https://alion.io/mcp/jobs","mcp_open":"https://alion.io/mcp/open","next":[{"tool":"get_job","arguments":{"id":60802}},{"tool":"search_jobs","arguments":{"company":"getads.ru","detail":"compact"}},{"tool":"match_people","arguments":{"job_id":60802},"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"}}