C# / .NET developer job description template (2026)
A complete C# / .NET developer job description you can copy, with ASP.NET Core and EF Core specifics, seniority levels and tips for hiring senior engineers.
By the Ryz Labs team · Updated October 2026
A C# / .NET developer job description should say which .NET you run. Modern .NET 8 or 9 on Linux containers and legacy .NET Framework 4.8 on Windows Server with IIS are different jobs, and senior engineers will ask about it on the first call if your post does not answer it. Specify the runtime version, whether the role is web APIs, desktop, background processing or a mix, your hosting (Azure, AWS or on-premises) and how much legacy migration is involved. The template below targets a senior C# developer building ASP.NET Core services on Azure. Copy it, fill in the brackets and remove anything that does not apply.
C# / .NET developer job description template
Job title
Senior C# / .NET Developer (ASP.NET Core, Azure)
Employment type: full-time or contract. Location: remote, with at least four hours of overlap with US Eastern time.
About the role
We are looking for a senior C# developer to build and run the backend services behind [product name]. You will design ASP.NET Core APIs and background workers that [customers / internal teams] use every day, work with product and front-end engineers, and help set our standards for code quality, testing and releases. Our platform runs .NET 8 on [Azure App Service / AKS / AWS ECS], with SQL Server and [Azure Service Bus / RabbitMQ]. Part of the role involves moving remaining modules off .NET Framework. You will join a team of [number] engineers and report to [title].
Responsibilities
- Design and build REST APIs with ASP.NET Core using controllers or minimal APIs, with clear versioning and OpenAPI documentation.
- Write data access with Entity Framework Core and Dapper, tune generated SQL and manage migrations safely.
- Build background processing with hosted services, Azure Functions or a message bus such as Azure Service Bus or MassTransit.
- Use async/await correctly throughout, avoiding sync-over-async deadlocks and thread pool starvation.
- Implement authentication and authorization with ASP.NET Core Identity, Microsoft Entra ID or OpenID Connect.
- Write unit and integration tests with xUnit or NUnit, using WebApplicationFactory and Testcontainers for realistic coverage.
- Diagnose production issues with Application Insights, dotnet-trace, dotnet-counters and memory dumps.
- Migrate legacy .NET Framework, WCF or Web Forms code to modern .NET in incremental, low-risk steps.
- Maintain CI/CD pipelines in Azure DevOps or GitHub Actions, including NuGet package management.
- Review pull requests and mentor developers on C# language features and design patterns.
Requirements
- 5+ years of professional software development, with at least 4 years writing production C#.
- Strong command of modern C# (10 to 12): records, pattern matching, nullable reference types, LINQ and Span-based APIs where relevant.
- Deep experience with ASP.NET Core: middleware pipeline, dependency injection lifetimes, configuration and options binding.
- Solid Entity Framework Core knowledge: change tracking, eager versus lazy loading, compiled queries and when to use raw SQL.
- Strong SQL Server skills, including indexing, execution plans and transaction isolation levels.
- Clear understanding of async/await, the Task model and the .NET thread pool.
- Experience deploying .NET services to Azure or another major cloud, in containers or managed app hosting.
- Experience with automated testing and CI/CD for .NET solutions.
- Clear written English for design docs, code review and async communication.
Nice to have
- Experience with Blazor, MAUI or WPF if your product has a client application.
- Migrating applications from .NET Framework to .NET 8 or later using the .NET Upgrade Assistant or a strangler pattern.
- Messaging libraries such as MassTransit or NServiceBus, and patterns like outbox and saga.
- Infrastructure as code with Bicep or Terraform.
- gRPC or SignalR for service-to-service or real-time communication.
- Performance work with BenchmarkDotNet and allocation-aware code.
Tech stack
C# 12, .NET 8, ASP.NET Core, Entity Framework Core 8, Dapper, SQL Server, Redis, Azure Service Bus, xUnit, Testcontainers, Docker, Azure (App Service, AKS, Functions, Key Vault), Azure DevOps, Application Insights. Replace this with your real stack and versions.
What success looks like in 6 months
- You own at least one service or bounded area of the codebase and have shipped several features through it.
- You have moved at least one legacy component onto modern .NET, or cleared a known blocker for doing so.
- You have fixed a real performance problem, such as an EF Core query generating poor SQL or a thread pool starvation issue.
- Your pull request reviews are trusted, and teammates come to you with questions about C# design and the .NET runtime.
How to apply and interview process
Send your resume or LinkedIn profile and a short note about a .NET system you built or modernized. Our process has four steps: a 30-minute intro call, a technical conversation about a system you have worked on, a practical exercise or pairing session on a realistic backend problem, and a final conversation with the team you would join. We aim to give feedback within a few days of each step.
Junior vs mid vs senior C# / .NET developer
.NET experience is not all the same. Ten years on Web Forms and two years on ASP.NET Core build different skills, so judge level by the scope a person has owned on the platform you run.
| Level | Scope | Typical experience | Key skills |
|---|
| Junior | Defined tickets in an existing ASP.NET Core solution, with close review | 0-2 years | C# fundamentals, OOP, LINQ basics, simple controllers, writing xUnit tests, basic SQL |
| Mid-level | Features end to end, including data access, background jobs and deployment | 2-5 years | ASP.NET Core and EF Core in depth, async/await, SQL Server tuning, Azure services, debugging with telemetry |
| Senior | Architecture of services and modules, modernization plans, technical direction for a team | 5+ years | Runtime and GC behavior, performance profiling, messaging patterns, legacy migration strategy, mentoring |
Tips for writing a C# / .NET developer job description that attracts senior talent
- Name the exact runtime. ".NET 8 on Linux containers" and ".NET Framework 4.8 on IIS" attract different candidates. If you have both, say what share of the work is in each.
- Be upfront about modernization. Many strong .NET engineers like migration projects. Describe the legacy pieces (WCF, Web Forms, Windows services) and the target, rather than hiding them.
- Say where you host. Azure-heavy roles need familiarity with Entra ID, Service Bus and Key Vault. AWS or on-premises roles need different knowledge, so be specific.
- Clarify the front end. Say whether the developer will touch Blazor, Razor Pages, a React app or nothing client-side. "Full stack .NET" means different things to different teams.
- Separate the data layer expectations. If the role involves heavy stored procedures and SSIS packages, say so. That is closer to a database role than application development.
- Mention tooling choices. Visual Studio or Rider, Azure DevOps or GitHub, and how often you deploy all tell senior engineers how the team works.
- Keep the Microsoft certification list short. Certifications can be a plus, but requiring several signals that you value badges over shipped work.
Skip the job post: hire a vetted senior C# / .NET developer
A well-written job description is only the start of a hiring process that can take months. If you need senior .NET capacity sooner, Ryz Labs can match you with senior C# developers from Latin America who work on your team, work in your repos and join your standups within an hour of US time zones. Only the top 1% of the engineers we interview make it through our vetting, which covers C# language depth, ASP.NET Core, data access and production debugging.
Through staff augmentation you can add one .NET developer or a group of them as your roadmap needs. Ryz engineers work on your team and report to your leads. Talk to us to scope the team you need. If you are running interviews yourself, our C# interview questions cover the topics we test and what strong answers sound like.
FAQ
What should a C# / .NET developer job description include?
A clear title with seniority, your .NET runtime version, hosting environment, the type of application (APIs, desktop, background services), specific responsibilities, realistic requirements, your tech stack, what success looks like after a few months and the interview steps.
Should I hire for .NET Framework or modern .NET experience?
Hire for where your code is going. If you plan to migrate, look for someone with strong modern .NET skills who has also worked with .NET Framework, since they understand both ends of the migration. A developer who only knows the legacy stack will need time to learn current patterns.
Is C# developer the same as .NET developer?
In practice, mostly. C# is the language and .NET is the runtime and libraries, and nearly all .NET backend work is done in C#. Using both terms in the title helps the post reach candidates who search for either.
Questions we didn't answer? Email info@ryzlabs.com.