{"id":24675,"url":"https://alion.io/job/control-risks-full-stack-developer","title":"Full Stack Developer","company":{"id":6732,"name":"Control Risks","domain":"controlrisks.com","url":"https://alion.io/company/control-risks","size_band":"1001-5000","is_staffing_agency":false,"employer_type":"direct","is_intermediary":false,"listed_via":null,"ats_vendor":"Workable","truth_index":{"grade":"B","score":82,"open_postings":14,"ghost_share":0,"stale_share":0.714,"repost_share":0,"time_to_fill_p50_days":35,"computed_at":"2026-11-06T05:58:05Z"}},"role":"Backend","role_family":"Backend","seniority":null,"employment_type":"full_time","work_mode":"hybrid","remote_scope":null,"remote_scope_basis":null,"remote_working_hours":null,"hiring_geo_confidence":"structured","locations":["Madrid, Spain"],"countries":["ES"],"hiring_countries":[],"hiring_countries_total":0,"salary":null,"salary_estimate":null,"experience_years_min":null,"visa_sponsorship":false,"relocation_package":false,"has_equity":false,"technologies":[{"name":"C#","optional":false},{"name":"CI/CD","optional":false},{"name":"Claude","optional":false},{"name":"Claude Code","optional":false},{"name":"Clean Architecture","optional":false},{"name":"Copilot","optional":false},{"name":"Docker","optional":false},{"name":"GCP","optional":false},{"name":"Google Cloud Run","optional":false},{"name":"Helm","optional":false},{"name":"Jira","optional":false},{"name":"Knowledge Graph","optional":false},{"name":"Kubernetes","optional":false},{"name":"Liquibase","optional":false},{"name":"Neo4j","optional":false},{"name":"Notion","optional":false},{"name":"Playwright","optional":false},{"name":"PostgreSQL","optional":false},{"name":"RabbitMQ","optional":false},{"name":"React.js","optional":false},{"name":"TypeScript","optional":false},{"name":"Vertex AI","optional":false},{"name":"Java","optional":true},{"name":"JavaScript","optional":true}],"status":"live","first_seen_at":"2026-11-06T16:17:14Z","employer_posted_date":"2026-11-06","last_verified_at":"2026-11-06T19:56:37Z","board_verified":true,"closed_at":null,"days_open":0,"trust":{"level":"ok","repost_count":1,"flags":[],"days_open":0},"description":"Reporting to the CTO, as a Full Stack Developer you will work across the full platform - a modular monolith built in .NET 10 on the backend and React on the frontend. You will own features from requirement to production, working in a small, high-trust team where your decisions have direct product impact.\nPlease submit your CV in English.\nRequirements\nWhat You’ll Work On\nBackend (.NET / Modular Monolith)\nBuild and extend modules within a clean modular monolith architecture - Domain, Application, Infrastructure, and API layers per module\nImplement message-based integrations over RabbitMQ and HTTP, with proper retry, dead-letter, and observability patterns\nDesign and own PostgreSQL schemas, migrations (Liquibase), and query optimisation for compliance-grade data integrity\nWrite code test-first - unit tests, integration tests with in-memory and real DB where appropriate, and end-to-end API tests\nContribute to and enforce coding standards, PR reviews, and architectural decisions.\nFrontend (React / TypeScript)\nBuild complex, accessible UI components and multi-path forms for compliance workflows\nMaintain consistency with our design system and work closely with our UX designer on new feature implementation\nIntegrate with the backend via typed API contracts, handling loading states, error boundaries, and optimistic updates correctly\nAI-Augmented Development\nUse Claude Code as an active development tool - you will work with CLAUDE.md, SKILLS.md, and RULES.md context files to give the AI accurate codebase context\nTranslate Jira requirements and Notion design documents into structured Claude Code prompts that produce high-quality, testable code\nMaintain and improve the Claude Code context layer as the codebase evolves, treating it as first-class documentation\nEvaluate AI-generated code with the same rigour as human-written code - you own the output\nPlatform & Deployment\nBuild and maintain Docker images for all services, following security and size best practices\nDeploy and manage workloads on Kubernetes clusters - writing and reviewing manifests, Helm charts, and managing config/secrets\nCollaborate with DevOps on CI/CD pipelines, environment configuration, and production readiness\nParticipate in on-call rotation for production incidents (light, given our scale).\nWhat We’re Looking For\nMust-have\n4+ years of professional .NET development (C#), with strong understanding of clean architecture and SOLID principles\nSolid React and TypeScript experience - you write components that are readable, testable, and maintainable\nGenuine TDD discipline - you write tests before or alongside code, not as an afterthought; you understand the difference between unit, integration, and end-to-end tests\nHands-on experience with RabbitMQ or similar message brokers in production systems\nPostgreSQL proficiency - schema design, migrations, query analysis, and indexing\nPractical Kubernetes experience - you can read and write manifests, understand pod scheduling, and debug deployment issues\nDocker fluency - you build lean, layered images and understand multi-stage builds\nExperience working in or contributing to a modular monolith or DDD-influenced codebase\nStrong English communication skills - written and verbal\nStrong advantage\nExperience using Claude Code, GitHub Copilot, or similar AI coding assistants as a genuine productivity tool in a professional codebase\nFamiliarity with structuring AI context files (CLAUDE.md-style) to guide code generation effectively\nExperience with GCP (Cloud Run, Cloud Storage, Pub/Sub, Vertex AI)\nPlaywright or similar e2e test framework experience\nExposure to knowledge graphs, Neo4j, or graph-based data modelling\nOur Engineering Ethos\nWe are direct about what we expect. These are not aspirational values - they are how we work:\nTest coverage is a delivery requirement, not a nice-to-have. Core business logic ships with tests.\nPR reviews are substantive. We comment on architecture, not just typos.\nWe use AI tooling to move faster, not to lower the quality bar. AI-generated code gets reviewed like any other code.\nWe document decisions. ADRs, Notion pages, and Claude Code context files are part of the job.\nWe raise issues early. A blocker surfaced on day one beats a missed deadline on day ten.\nBenefits\n\n Control Risks offers a competitively positioned compensation and benefits package that is transparent and summarised in the full job offer.\n We operate a discretionary global bonus scheme that incentivises, and rewards individuals based on company and individual performance.\n Control Risks supports hybrid working arrangements, wherever possible, that emphasise the value of in-person time together - in the office and with our clients - while continuing to support flexible and remote working.\n Working with our clients, from day one our people are given direct responsibility, career development and the opportunity to work collaboratively on fascinating projects in a rewarding and inclusive global environment.\n The Company is committed to further its diversity, inclusion and equity agenda and as an employee you have access to various business resource groups in the Company including the Company's LGBT+ network called MOSAIC, the Women's Network, and Synergy - a people network to celebrate and promote ethnic diversity at Control Risks\n Control Risks is committed to a diverse environment and is proud to be an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, colour, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age or veteran status.\nIf you require any reasonable adjustments to be made in order to participate fully in the interview process, please let us know and we will be happy to accommodate your needs.","description_format":"text","description_chars":5822,"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":"English","level":"Upper-Intermediate (B2)","optional":false}]},"benefits":["Equity","Hybrid work"],"hiring_locations":[{"name":"Spain","iso":"ES","kind":"country"}],"hiring_excludes":[],"relocation_offered":false,"industries":["Security Services","Management Consulting"],"lifecycle":[{"event":"open","at":"2026-05-22T00:00:00Z"},{"event":"close","at":"2026-08-12T01:06:26Z"},{"event":"reopen","at":"2026-11-06T12:39:38Z"}],"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":35,"reasons":["conf:0","win:early"],"computed_at":"2026-11-06T20:35:40Z"},"pay":null,"html_url":"https://alion.io/job/control-risks-full-stack-developer","json_url":"https://alion.io/job/control-risks-full-stack-developer.json","meta":{"generated_at":"2026-11-06T20:35:40Z","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":4908,"day_limit":null,"remaining_today":null,"minute_limit":300,"resets_at":"2026-11-07T00: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":6732},"rest":"https://alion.io/mcp/rest/get_company?id=6732"},"human":"https://alion.io/catalog?offer=company.slices&for=job%2Fcontrol-risks-full-stack-developer"},{"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%2Fcontrol-risks-full-stack-developer"},{"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%2Fcontrol-risks-full-stack-developer"},{"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/control-risks-full-stack-developer\", \"note\": \"what you need it for\"}"},"human":"https://alion.io/catalog?offer=company.verify&for=job%2Fcontrol-risks-full-stack-developer"}],"agent":{"mcp":"https://alion.io/mcp/jobs","mcp_open":"https://alion.io/mcp/open","next":[{"tool":"get_job","arguments":{"id":24675}},{"tool":"search_jobs","arguments":{"company":"controlrisks.com","detail":"compact"}},{"tool":"match_people","arguments":{"job_id":24675},"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"}}