Maya K.
Senior Full-Stack Developer
SuperGig Editorial Last updated July 2026 9 min read
A .NET developer job description works when it answers one question before anything else: which .NET. A greenfield ASP.NET Core API, a .NET Framework app that needs modernizing, and an internal Blazor tool are different hires with different must-have skills, and the generic template that blurs them is why good candidates skip your posting. Say which one you are hiring for, name the stack and cloud you already run, describe the first project, and publish a rate range. That posting gets fewer replies and far better ones.
Find your freelancer
PreviewYour top matches
2 of 3 can start this week All 3 available this month Flexible start dates
Senior Full-Stack Developer
Senior Backend Engineer
Mobile Developer
Product Designer
UX Designer
Brand Designer
Conversion Copywriter
Technical Writer
Content Strategist
Growth Marketer
SEO Specialist
Performance Marketer
Video Editor
Post-Production Editor
YouTube Editor
Small-Business Bookkeeper
Senior Bookkeeper
Freelance Accountant (CPA)
Executive Virtual Assistant
Operations Assistant
Social Media Assistant
Technical SEO Consultant
SEO Content Strategist
Link and Digital PR Lead
Google Ads Consultant
Paid Search Manager
PPC Specialist
Senior Data Scientist
ML Engineer
Analytics Data Scientist
Senior DevOps Engineer
Platform / SRE Engineer
Cloud Infrastructure Engineer
Social Media Manager
Content and Community Manager
Paid Social Strategist
Management Consultant
Operations Consultant
Financial / FP&A Consultant
Freelance CPA
Tax Accountant
Fractional Controller
Direct-Response Copywriter
Conversion Copywriter
Ad and Brand Copywriter
Senior QA Automation Engineer
SDET / Test Engineer
Manual and Exploratory QA Lead
Certified Salesforce Developer
Salesforce Technical Architect
Salesforce Admin and Consultant
Senior UX Designer
UI and Interaction Designer
UX Researcher
Senior Webflow Developer
Webflow Designer and Builder
Webflow Migration Specialist
Certified Legal Translator
Localization Specialist
Medical and Technical Translator
Senior Commercial Illustrator
Editorial and Spot Illustrator
Children's Book Illustrator
Example profiles for preview. Your real shortlist is hand-picked for your brief once your early-access spot opens.
Fund milestone 1 · $1,800 in escrow · $4,800 in escrow · $12,500 in escrow · released on your approval
The role
A .NET developer builds the server side your product runs on, in C#: the APIs, business logic, data access and background jobs that everything else depends on. The job also covers the parts nobody demos, meaning transactions, async concurrency, error handling and behavior under load, plus the scheduled jobs, reconciliation and audit logging that regulated US businesses depend on, where you also have to prove the controls are actually in place.
That description is accurate and almost useless for writing a posting, because it fits a contractor who wires up CRUD endpoints and a senior engineer who owns an insurance platform that cannot lose a transaction. The gap between them is not C# syntax. It is judgment about how data is modeled, where transaction boundaries sit, and what happens when two requests hit the same record at once. Your job description is the first place that judgment can be filtered for, so it should describe the system, not the language.
First decision
This is the change that improves a .NET posting the most, and it has no equivalent in most other stacks. "The .NET developer" hides a fork in the platform that decides who you should hire. Old .NET Framework 4.8 is Windows-only and in maintenance. Modern .NET (8 and 9) is cross-platform and where all new work happens. A candidate who is great at one is not automatically the right hire for the other, and moving between them is a migration project, not a version bump. Work out which row below you are in, then write only that row's requirements.
| If you are building | The real requirement | Proof to ask for |
|---|---|---|
| A new backend service or API | Modern C#, ASP.NET Core on .NET 8 or 9, relational data modeling with EF Core, REST or gRPC, async, testing. This is the most common .NET hire. | A repo or service with a real data model, tests and error handling, not just happy-path endpoints |
| Modernizing a .NET Framework app | Experience moving .NET Framework 4.x, WCF or Web Forms to current .NET, getting an untested app under test, incremental migration without a big-bang rewrite. | A specific migration they led and how they kept features shipping while they did it |
| An in-house web or desktop app | Blazor for interactive web UIs, .NET MAUI for cross-platform apps, or maintaining existing WPF or WinForms line-of-business tools. Different skills from a pure API build. | A working app you can open, plus how they handled state and offline behavior |
A strong ASP.NET Core backend developer is not automatically a Blazor or desktop specialist, and a modernization engineer who is brilliant at untangling old Web Forms may not be who you want greenfielding a new service at speed. If you genuinely need more than one, hire the primary role now and add the next when the work is real. If the front end is a separate JavaScript app rather than Blazor, post it on its own and hire React developers for it.
Template
Fill every bracket. A bracket you cannot fill is a scoping decision you have not made yet, and candidates will find it in the first call anyway.
About the work. We are [company, one line on what you sell and to whom]. We need a .NET developer to [build the API and data layer for our new product / migrate our .NET Framework app to current .NET / take over an ASP.NET Core backend a previous team left]. The stack is .NET [8 or 9 / Framework 4.8] with ASP.NET Core, [SQL Server, Postgres], [EF Core or Dapper], [Azure Service Bus or another broker if used], deployed on [Azure, AWS, on-prem]. The consumer of this API is [our React front end / Blazor app / mobile apps / partner integrations].
First project. In your first [two to six] weeks you will [ship the v1 of the X service, roughly [n] endpoints, against an agreed API contract and data model]. Success looks like [services deployed to staging, reviewed and merged, with tests, validation, and error handling for the failure paths].
You will. Design and build services in C# and ASP.NET Core. Own the data model and the transaction boundaries for the features you ship. Handle validation, error responses and async concurrency correctly, not as a follow-up ticket. Add logging, metrics and traces so the service is debuggable in production. Write tests that fail for the right reasons. Review pull requests and explain trade-offs in writing.
You have. [n]+ years building production .NET backends, strong ASP.NET Core, solid relational data modeling and SQL, a real understanding of transactions and async concurrency, and Git. [Add only the one specialism from the table above that this job actually needs.]
Nice to have. Azure or another cloud, Docker and Kubernetes, a message broker, gRPC, Blazor, performance profiling, and experience in [your industry, especially if it is regulated].
Terms. [$X to $Y per hour, roughly [n] hours per week / $X to $Y salary]. [Time zone overlap you need.] Paid in milestones you approve. To apply, send [a repo or service you built] and two lines on one backend decision you would make differently today.
That last line does more filtering than the rest of the posting combined. It cannot be answered by a template reply, and the answer tells you whether someone has run a system long enough to regret a data-model or architecture choice. For scoping the work itself, our freelance job brief template covers deliverables, milestones and acceptance criteria.
Skills
Require modern C# and current .NET, ASP.NET Core, relational data modeling with SQL and EF Core, a real grasp of transactions and async concurrency, REST API design, Git, and testing with xUnit. Treat Azure or another cloud, Docker and Kubernetes, message brokers, Blazor and gRPC as preferred, because requiring every one of them at once shrinks your candidate pool for no gain.
| Skill | Where it belongs | Why |
|---|---|---|
| ASP.NET Core on modern .NET | Required | It is the default for commercial .NET web services. Someone who only knows old .NET Framework will be relearning your stack on your time. |
| Data modeling, SQL and EF Core | Required | The schema outlives the code. A bad data model is the most expensive mistake in a .NET backend, and it is a judgment skill, not a framework. |
| Transactions and async concurrency | Required | .NET is chosen precisely for systems where two requests at once must not corrupt data. Blocking calls that starve the thread pool are a classic way this goes wrong. |
| Testing (xUnit, integration tests) | Required | Not for coverage numbers. For whether a contractor can hand the service back without your team being afraid to deploy it. |
| Azure (or your specific cloud) | Job-specific | Fair to require if you run on it. Demanding deep Azure when you host elsewhere just narrows the field for a platform they will not touch. |
| Kubernetes | Preferred | Useful, but if you run on App Service or a small cluster, requiring deep k8s filters out strong developers for infrastructure they will barely touch. |
| Blazor / MAUI | Job-specific | Require it only if the role builds a UI. On a pure API job it is noise that pushes away strong backend-only people. |
| Old .NET Framework / Web Forms | Drop it | Unless you are specifically hiring for legacy maintenance, requiring Web Forms or WCF signals a stack candidates do not want to join. |
| "Full stack" as an afterthought | Drop it | Tacking a separate front end onto a backend posting gets you two half-skills. Hire the interface role properly instead. |
If the front end is a real JavaScript app rather than Blazor, post it as its own role and hire React developers for it. Two specialists on defined milestones almost always beat one generalist stretched across both ends.
Seniority
Five or more years of professional backend work with at least three in C# and ASP.NET Core is the usual bar, but the years matter less than what they contain. A genuine senior has run a .NET service in production, debugged something that only failed under load, and made a data-model or architecture decision they can now explain the trade-offs of. Someone with six years of building similar CRUD services from a spec is a competent mid-level, not a senior.
| Level | What the posting should ask for | US contract rate |
|---|---|---|
| Junior (0 to 2 years) | Builds endpoints and CRUD from a clear spec, closes supervised tickets, asks before inventing patterns | $30 to $50/hr |
| Mid-level (2 to 5 years) | Owns a service end to end including the data model, transactions, tests and review | $60 to $100/hr |
| Senior (5+ years) | Sets backend architecture, draws service boundaries, owns performance and concurrency, mentors | $100 to $150/hr |
| Specialist (Azure, throughput, migrations) | Cloud architecture and cost rescue, high-throughput ASP.NET Core, large .NET Framework migrations | $145 to $200+/hr |
Published 2026 data puts the median US freelance .NET rate near $85 per hour, with seniors in the $100 to $150 range. For comparison, US employers report .NET backend salaries roughly in the $95,000 to $150,000 range depending on market and seniority, so a contractor at $110 per hour part time on a defined scope is often the cheaper way to get a backend built. Full cross-role numbers are in our freelance developer rates guide, and the role page has the detail: hire freelance .NET developers.
Red flags
These appear in nearly every copied template, and each one costs you good applicants without improving the ones you get.
Screening
You do not need a whiteboard. These four take about twenty minutes and separate people who have shipped and operated .NET from people who have finished a course.
A good answer reaches for optimistic concurrency with a rowversion column in EF Core, or a database constraint, and explains the trade-off with pessimistic locking under contention. A weak answer assumes it will be fine, or wraps everything in one big lock. This one question predicts more production incidents than any framework trivia.
Look for a diagnostic order rather than a fix list: check the actual SQL EF Core generated and the query plan first, look for N+1 queries and missing indexes, check connection pool and cache behavior, then profile the app only if the database is not the problem. Someone who leads with "scale out to more instances" is guessing.
Strong candidates ask questions before drawing tables, separate entities from attributes, and think out loud about the queries the model has to serve and where it will need to change. This is the skill that determines whether month four is calm or a rewrite, and it shows up in minutes when you ask.
The point is not the code. It is whether they can describe a trade-off they made under time pressure and what they would do differently. People who have owned production systems answer this easily. People who have only built greenfield demos usually cannot think of one.
If the posting goes out publicly, the bottleneck moves from writing it to reading the replies. A .NET posting on a large job board can pull several hundred applications in a week, most of them template matches, and it is worth using something that can read every inbound resume against your criteria before you spend evenings doing it manually. The general vetting checklist is in how to vet a freelancer.
Contract or employee
An employee job description sells a career: growth, team, ownership over time. A contract brief sells a defined piece of work, so three things change. Replace responsibilities with deliverables, because "own the backend" means nothing when the engagement is eight weeks. Replace the salary band with an hourly rate and an estimated weekly commitment. Add the practical terms: who owns the repository (yours, from day one), how milestones are approved and paid, what handoff includes, and what happens if scope changes.
Keep the classification clean while you are at it. A contractor sets their own hours, uses their own equipment and is paid per milestone or invoice, not on your payroll cycle. Our guide to 1099 vs W2 covers where US teams get that wrong, and what to include in a freelance contract covers IP assignment, which matters more than most first-time hirers expect when the deliverable is a service your business depends on.
FAQ
.NET Framework is the old Windows-only platform, at version 4.8, that Microsoft now only patches. Modern .NET (currently 8 and 9) is the cross-platform, actively developed successor that runs on Windows, Linux and macOS and is where all new work goes. Your job description has to say which one the role touches, because moving between them is a migration project, not a version bump, and it changes who you should hire.
Only if you actually run on Azure. Most .NET shops do, and if yours is one, requiring Azure App Service, Functions and Azure SQL experience is fair and useful. If you host on AWS, on-prem or a managed platform, demanding deep Azure filters out strong developers for a cloud they will not touch. Name the platform you run and ask for experience with that, not a generic cloud checkbox.
Backend developer is the broad role: server-side work in whatever language the project uses. .NET developer is that role narrowed to C# and the ASP.NET Core ecosystem, so you get depth in async concurrency, EF Core data modeling, and .NET performance. Hire a .NET developer when your backend is already .NET and you want someone productive in week one. Hire a general backend developer when the stack is undecided.
Add scope that a mid-level posting does not have: setting backend architecture, drawing service boundaries, owning the data model and performance across the system, making concurrency decisions, reviewing other people's work, and being accountable for how the system behaves under load. If none of that is in the job, you are describing a mid-level role at a senior price.
Aim for 400 to 600 words. Long enough to name the stack, which .NET, the first project, the requirements and the rate, short enough that a busy senior reads all of it. Anything past that is usually boilerplate about company culture that candidates skip, or a stack list that should have been cut to five to seven items.
A job description is worth writing when you plan to read applications. If you would rather see three people who already passed a screen, send the same brief to us instead. Every .NET developer in the pool has been through a four-stage vetting process that fewer than 1 in 20 applicants clear, you get a hand-picked shortlist within 48 hours, and payment sits in escrow until you approve the work. Pricing is a flat 10% project fee, shown on the pricing page.
Tell us what you need built, review a hand-picked top-1% shortlist within 48 hours, and pay only for work you approve.