Senior .Net Developer
Senior .NET Developer
We are The Citation Group - a collective of businesses dedicated to supporting small and medium-sized enterprises across a range of essential services. We know that running a business means juggling a lot. Our mission is to ease these pressures by providing expertise, guidance, and solutions that enable business leaders to focus on what they do best. From HR and Health & Safety to Cybersecurity, E-Learning, and ISO compliance, we’ve got you covered.
Citation Group has achieved strong growth through a combination of organic expansion and strategic acquisitions, continually broadening our expertise, services, and reach to create a one-stop shop that supports businesses across the UK, Canada and Australia.
Role Purpose
This is a hands-on engineering role in a squad that has already transformed how it builds, owns, and delivers software, and now holds itself to that standard every day. You will be a core contributor with real influence over the quality and direction of the work.
We have moved to CI/CD on GitHub with GitHub Actions, we practise trunk-based development, we have brought our code into team-owned boundaries, and we have embedded AI into how the team thinks and delivers. This is not a role where you maintain the status quo. You will work alongside a Tech Lead to deepen what we have built, raise the bar further, and bring strong .NET craft and an AI-native approach to everything you ship.
Our new build-out is on .NET 10, and it sets the direction for everything ahead: server-rendered ASP.NET Core (MVC and Razor Pages) with HTMX for rich, responsive interfaces, backed by SQL Server on Azure. We have chosen hypermedia and server-side rendering over heavy client-side JavaScript frameworks because we value simplicity, maintainability, and shipping working software quickly. The right person is excited by that philosophy, not in spite of it.
While the way we work is settled, our platform is mid-journey. Production today spans three generations: a legacy application on .NET Framework 4.8.1 (VB.NET Web Forms, DevExpress); modern .NET 8 services (a Razor/MVC web application and a business-tier Web API); and our new .NET 10 build-out with HTMX, which is where new development is heading. That new world is taking shape as multiple modular monoliths in a single monorepo, moving away from the tiered separation we have today. A real part of this role is helping move the platform forward: incrementally modernising the legacy estate onto our modern .NET stack while keeping it stable and delivering value throughout. You will be comfortable working in older code as readily as greenfield, and you will see migration not as a chore but as engineering worth doing well.
The right person for this role takes genuine pride in their work, wants to grow in a team that holds itself to a high standard, and is excited by the idea of building something better rather than just keeping things running.
You'll join a tight-knit, welcoming team that holds a high standard without holding onto egos. We care more about reaching the best answer than about who had it, we take a consensus-based approach to the decisions we make, and we disagree well and move forward together.
Key Responsibilities
Hands-on Delivery
Write production-quality C# and .NET code every day across the full stack: ASP.NET Core backend, Razor/HTMX front-end, and the Azure infrastructure that supports it.
Take ownership of features and workstreams from design through to deployment, delivering working software in shippable increments.
Contribute to technical design and architecture discussions, bringing well-reasoned input and a practical perspective.
Run technical spikes and proofs-of-concept to explore approaches and reduce uncertainty before committing to a direction.
Manage your own technical debt responsibly, keeping the codebase in a state you are proud of.
Platform Modernisation
Help modernise our legacy application (.NET Framework 4.8.1, VB.NET Web Forms, DevExpress) towards our modern .NET architecture, working incrementally so the system stays stable and keeps delivering value throughout.
Work confidently across both worlds: maintaining and improving legacy code where needed while building its replacement in modern .NET.
Make pragmatic migration decisions — what to rewrite, what to strangle, what to leave alone for now — and bring others along with clear reasoning.
Reduce risk as you go through testing, observability, and incremental delivery rather than big-bang rewrites.
Platform Ownership
Own and evolve team-owned .NET modules, taking pieces of work end to end and delivering them with care. Our target shape is multiple modular monoliths in a single monorepo, so clear module boundaries and internal structure matter as much as the code inside them.
Work within our CI/CD setup on GitHub Actions, improving pipelines, writing automated tests, and working trunk-based by default.
Build with observability in mind from the start, using Serilog for structured logging shipped via sinks to New Relic, where the team queries logs and builds dashboards to see what their systems are doing in production.
Take operational responsibility for the systems you build, contributing to the team's DevOps capability on Azure.
Code Quality and Engineering Practice
Write clean, testable, secure C# and hold that standard consistently, not just when it is convenient.
Practise test-driven development with xUnit and contribute to a culture where good testing is the norm, using AI to generate scaffolding and explore edge cases as part of that workflow.
Make sound data-access decisions: use EF Core for the bulk of the work and know when to drop to Dapper for performance-critical paths.
Participate actively in code review, giving and receiving feedback that improves the work and raises the bar for the whole team, and keep our SonarQube quality gates green on coverage, static analysis, and code smells.
Apply secure coding practices as a matter of course: NuGet dependency management, threat awareness, and security testing.
AI-Native Engineering
Use AI natively in your engineering work, as part of how you think through problems, generate and review code, and build and test solutions. We use Claude Code alongside GitHub Copilot day to day.
Work human-in-the-loop: AI accelerates the work, but you stay in control of it, ensuring the codebase moves in a direction the team both controls and genuinely understands.
Contribute to AI-powered workflows that improve the team's delivery capability, whether in automation, testing, code generation, or observability.
Engage actively with the team's AI agents and tooling, helping to refine and improve them as your understanding of what works deepens.
Bring a critical eye to AI-generated output, verifying quality and maintaining the standards you would apply to anything else you ship.
Collaboration and Growth
Work closely with your Tech Lead and teammates through pairing, mob programming, and shared problem-solving.
Support less experienced engineers where you can, sharing knowledge through code review, pairing, and day-to-day conversation.
Contribute to planning, refinement, stand-ups, reviews, and retrospectives as an engaged and thoughtful team member.
Take an active interest in your own development, staying current with the technologies and practices the team uses and bringing new ideas back to the team.
Get stuck into our quarterly hackathons, where we explore new technologies, find fresh ways to work with our dataset, and prototype ideas that could deliver value and show the wider business what's possible.
Required Experience and Skills
Technical
Solid, demonstrable experience as a .NET software engineer, with a proven ability to deliver complex features on production systems using C# and modern .NET (.NET 8 and .NET 10).
Strong full-stack capability with ASP.NET Core (MVC and Razor Pages) and server-rendered, hypermedia-driven front-ends. Exposure to HTMX is useful but not essential — it's quick to get to grips with — so what matters more is comfort with server-side rendering and minimal-JavaScript, progressive-enhancement approaches. A good working knowledge of front-end JavaScript is also useful for the interactive work that sits alongside HTMX.
Strong data-layer experience with SQL Server, EF Core, and Dapper, including the judgement to know which tool fits which problem. Good database design skills are important here — schema design, indexing, and query performance, with a focus on keeping IO optimal and data integrity sound.
Practical experience with CI/CD pipelines (we use GitHub Actions), trunk-based development, automated testing, and infrastructure-as-code (Bicep or Terraform).
Working knowledge of Azure (Azure SQL, Blob Storage, Key Vault). We host on IIS on Azure VMs today and expect to move to Azure Container Apps in time, so an understanding of containerisation with Docker is valuable. Direct Azure experience is ideal, but strong experience with another major cloud provider (AWS or GCP) is equally welcome — the core concepts transfer readily.
Experience instrumenting applications for observability with structured logging (Serilog or similar) and a log/monitoring platform such as New Relic, including querying logs and building dashboards.
Sound security fundamentals: secure coding, NuGet dependency management, static analysis (we use SonarQube), and awareness of common vulnerabilities (OWASP Top 10).
Experience working on evolving systems, including refactoring and improving existing codebases. Familiarity with incremental modernisation patterns such as the Strangler Fig — building facades over existing areas of the system and routing through them until the new shape gradually takes over — is particularly valuable here.
Experience modernising or migrating legacy .NET Framework applications onto modern .NET, and comfort working in older code (VB.NET and Web Forms experience is a strong advantage).
A working knowledge of message queuing — how message production and consumption work, and the patterns around reliable, asynchronous processing.
AI-Native Engineering Practice
Demonstrable experience using AI as a genuine part of your engineering workflow, not just as a code-completion tool. Hands-on experience with agentic coding tools such as Claude Code or GitHub Copilot is a strong advantage.
Comfortable working with AI-generated output critically and human-in-the-loop, knowing how to verify, refine, and take responsibility for what ships.
Behavioural
High standards: you care about the quality of your work and take pride in shipping something you can stand behind.
Collaborative: you work well with others, share openly, and make the people around you better.
Self-directed: you can take a piece of work, make sensible decisions, and see it through without constant oversight.
Comfortable with change: you adapt well when priorities shift or approaches evolve, and you contribute positively to that process.
Curious and committed to learning: you keep developing your skills and bring new thinking back to the team.
Nice to Have
Experience in B2B SaaS or Citation domains such as HR, Health and Safety, Compliance, Certification, or eLearning.
Experience building or contributing to AI agents or automated workflows in a production context.
Experience designing event-driven architectures or reactive systems.
Experience with DevExpress component libraries.
Contributions to open source or active participation in technical communities.
- Locations
- SMAS Worksafe
- Remote status
- Fully Remote
About Citation Group
The Citation Group provides mission-critical compliance, HR and health & safety services and software to over 120,000 businesses across the UK, Australia and Canada. Professionals with personality - serious about what we do, brilliant to work with. Backed by Hg, KKR and HarbourVest.