Full Stack Developer

Control Risks
Municipality of Madrid, Spain
yesterday

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Shift work
Languages
English
Experience level
Senior

Job location

Municipality of Madrid, Spain

Tech stack

.NET
Multitier Architecture
API
Artificial Intelligence
Business Logic
JIRA
Automation of Tests
Unit Testing
C Sharp (Programming Language)
Cloud Storage
Code Coverage
Code Generation
Data Integrity
Software Debugging
Software Design Documents
DevOps
Programming Tools
Graph Database
PostgreSQL
Liquibase
Message Broker
Neo4j
Software Architecture
Query Optimization
RabbitMQ
E2e Testing
TypeScript
GitHub Copilot
React
Kubernetes Helm Charts
Indexer
Backend
Material Design
Integration Tests
Solid Principles
Kubernetes
Playwright
Google Cloud Functions
Codebase
Front End Software Development
Api Management
Docker

Job 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. Please submit your CV in English. What You'll Work On Backend (.NET / Modular Monolith) - Build and extend modules within a clean modular monolith architecture - Domain, Application, Infrastructure, and API layers per module - Implement message-based integrations over RabbitMQ and HTTP, with proper retry, dead-letter, and observability patterns - Design and own PostgreSQL schemas, migrations (Liquibase), and query optimisation for compliance-grade data integrity - Write code test-first - unit tests, integration tests with in-memory and real DB where appropriate, and end-to-end API tests - Contribute to and enforce coding standards, PR reviews, and architectural decisions.

Requirements

Frontend (React / TypeScript) - Build complex, accessible UI components and multi-path forms for compliance workflows - Maintain consistency with our design system and work closely with our UX designer on new feature implementation - Integrate with the backend via typed API contracts, handling loading states, error boundaries, and optimistic updates correctly AI-Augmented Development - Use 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 - Translate Jira requirements and Notion design documents into structured Claude Code prompts that produce high-quality, testable code - Maintain and improve the Claude Code context layer as the codebase evolves, treating it as first-class documentation - Evaluate AI-generated code with the same rigour as human-written code - you own the output Platform & Deployment - Build and maintain Docker images for all services, following security and size best practices - Deploy and manage workloads on Kubernetes clusters - writing and reviewing manifests, Helm charts, and managing config/secrets - Collaborate with DevOps on CI/CD pipelines, environment configuration, and production readiness - Participate in on-call rotation for production incidents (light, given our scale). What We're Looking For Must-have - 4+ years of professional .NET development (C#), with strong understanding of clean architecture and SOLID principles - Solid React and TypeScript experience - you write components that are readable, testable, and maintainable - Genuine 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 - Hands-on experience with RabbitMQ or similar message brokers in production systems - PostgreSQL proficiency - schema design, migrations, query analysis, and indexing - Practical Kubernetes experience - you can read and write manifests, understand pod scheduling, and debug deployment issues - Docker fluency - you build lean, layered images and understand multi-stage builds - Experience working in or contributing to a modular monolith or DDD-influenced codebase - Strong English communication skills - written and verbal Strong advantage - Experience using Claude Code, GitHub Copilot, or similar AI coding assistants as a genuine productivity tool in a professional codebase - Familiarity with structuring AI context files (CLAUDE.md-style) to guide code generation effectively - Experience with GCP (Cloud Run, Cloud Storage, Pub/Sub, Vertex AI) - Playwright or similar e2e test framework experience - Exposure to knowledge graphs, Neo4j, or graph-based data modelling Our Engineering Ethos - Test coverage is a delivery requirement, not a nice-to-have. Core business logic ships with tests. - PR reviews are substantive. We comment on architecture, not just typos. - We use AI tooling to move faster, not to lower the quality bar. AI-generated code gets reviewed like any other code. - We document decisions. ADRs, Notion pages, and Claude Code context files are part of the job. - We raise issues early. A blocker surfaced on day one beats a missed deadline on day ten.

Apply for this position