About the Role
As a Full Stack Developer reporting to the CTO, 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.
Responsibilities
- Build and extend modules within a clean modular monolith architecture, including Domain, Application, Infrastructure, and API layers per module.
- Implement message-based integrations over RabbitMQ and HTTP, incorporating retry, dead-letter, and observability patterns.
- Design and own PostgreSQL schemas, migrations (Liquibase), and query optimization for compliance-grade data integrity.
- Write code test-first, including unit tests, integration tests with in-memory and real DB, and end-to-end API tests.
- Contribute to and enforce coding standards, participate in PR reviews, and influence architectural decisions.
- Build complex, accessible UI components and multi-path forms for compliance workflows.
- Maintain consistency with the design system and collaborate with the UX designer on new feature implementation.
- Integrate with the backend via typed API contracts, managing loading states, error boundaries, and optimistic updates.
- Use Claude Code as an active development tool, working with CLAUDE.md, SKILLS.md, and RULES.md context files for accurate codebase context.
- Translate Jira requirements and Notion design documents into structured Claude Code prompts to 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 rigor as human-written code, owning the output.
- Build and maintain Docker images for all services, adhering to security and size best practices.
- Deploy and manage workloads on Kubernetes clusters, including writing and reviewing manifests and 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.
Requirements
- 4+ years of professional .NET development (C#) with a strong understanding of clean architecture and SOLID principles.
- Solid React and TypeScript experience, writing readable, testable, and maintainable components.
- Genuine TDD discipline, writing tests before or alongside code and understanding the differences between unit, integration, and end-to-end tests.
- Hands-on experience with RabbitMQ or similar message brokers in production systems.
- PostgreSQL proficiency, including schema design, migrations, query analysis, and indexing.
- Practical Kubernetes experience, including reading and writing manifests, understanding pod scheduling, and debugging deployment issues.
- Docker fluency, including building lean, layered images and understanding multi-stage builds.
- Experience working in or contributing to a modular monolith or DDD-influenced codebase.
- Strong English communication skills, both written and verbal.
- Experience using AI coding assistants like Claude Code or GitHub Copilot 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.
Skills
- .NET
- C#
- Clean Architecture
- SOLID principles
- React
- TypeScript
- TDD
- Unit Testing
- Integration Testing
- End-to-End Testing
- RabbitMQ
- Message Brokers
- PostgreSQL
- Schema Design
- Migrations
- Query Optimization
- Kubernetes
- Docker
- Modular Monolith
- DDD
- Claude Code
- AI Coding Assistants
- GCP
- Playwright
- Knowledge Graphs
- Neo4j
Experience Level
- 4+ years of professional .NET development
About the Company
- Test coverage is a delivery requirement, not a nice-to-have. Core business logic ships with tests.
- PR reviews are substantive, commenting on architecture, not just typos.
- AI tooling is used to move faster, not to lower the quality bar; AI-generated code is reviewed like any other code.
- Decisions are documented via ADRs, Notion pages, and Claude Code context files.
- Issues are raised early; a blocker surfaced on day one is preferred over a missed deadline on day ten.
