Hire a pro

.NET Developer

C#, ASP.NET Core and Entity Framework, plus the older Framework applications nobody wants to open. The stack that quietly runs a large share of the internal software in finance, logistics, healthcare and manufacturing.

Shortlist
Within 24 hours
Deployed
Inside 2 weeks
Seniority
5+ years C#
Rate
Flat monthly
Wrong fit
Replaced, not billed twice
What they do

Most of this work is somebody else’s code.

Very little .NET work starts from an empty solution. It starts from a system that has been running for eight years, has one person who understands it, and cannot be stopped.

The controller is thin, the service holds the logic, and the ORM is where the performance goes to die. A good .NET engineer watches the generated SQL.
Day to day

Reads before writing

The existing solution has reasons for what it does, some of them good. Understanding which is most of the first fortnight.

Day to day

Watches what EF generates

Entity Framework is excellent until a lazy-loaded navigation property inside a loop turns one page into four hundred queries.

Day to day

Keeps async honest

Async all the way down, no blocking on results, and an understanding of why the mixed version deadlocks in the worst possible way.

Day to day

Handles the Framework to Core question

Some applications should be migrated, some strangled a piece at a time, and some left alone. This is a judgement, not a policy.

Day to day

Writes tests around the risky part

Not everywhere. Around the calculation the business depends on, before changing it.

What they know

The tools, grouped by what they are for.

Nobody on the bench knows all of this. We shortlist against what your problem actually needs, and tell you where the gaps are.

Core
C#.NET 8/9ASP.NET CoreMinimal APIsBlazor
Data
EF CoreDapperSQL ServerPostgreSQLMigrations
Legacy
.NET FrameworkWebFormsWCFStrangler migration
Platform
AzureApp ServiceService BusDockerApplication Insights
Quality
xUnitMoqIntegration testsSerilog
How we vet

Four exercises, all of them from real work.

No algorithm puzzles. Every exercise below is a task this role does in a normal week, and we watch the method more than the answer.

Find the N+1

A real controller action that issues hundreds of queries. We want the profiler or the logged SQL, not a guess.

Around 40% never look at the generated SQL.

Async deadlock

Code that blocks on an async call. Explain why it hangs and fix it properly rather than with ConfigureAwait scattered everywhere.

Modernisation judgement

A described legacy system. Migrate, strangle or leave. A candidate who always says rewrite is expensive to employ.

Domain modelling in C#

Given a business rule, where does it live. We are watching for anaemic models with all the logic in a service.

Interview signals

Four questions for when you interview them yourself.

You interview every candidate we put forward, so these are yours to use. They separate somebody who has run this in production from somebody who interviews well.

Ask: how do you find a performance problem in an EF Core application?
A strong answer

Logs the generated SQL or attaches a profiler, and looks at query count before query duration. Knows that Include, projection and AsNoTracking each solve different problems.

A worrying answer

Suggests caching or a bigger database server. Both hide a query pattern that will come back at the next data volume.

Ask: async or sync for this data access?
A strong answer

Async throughout, and can explain that the benefit is thread pool availability under load rather than making any single request faster.

A worrying answer

Says async is faster. It is not, for one request, and an engineer who believes that will be surprised by their own benchmarks.

Ask: we are on .NET Framework 4.8. What now?
A strong answer

Asks what the application does and how often it changes before recommending anything. Often recommends strangling one module at a time rather than a big-bang migration.

A worrying answer

Recommends a full rewrite in the first two minutes. Sometimes correct, never knowable that fast, and usually the most expensive available option.

Ask: where do you put business logic?
A strong answer

In the domain or a service layer, with the controller doing routing and validation only. Can say why, in terms of testability rather than tidiness.

A worrying answer

In the controller, because it is fewer files. It is also untestable without spinning up the whole web stack.

Honestly

When this is the right hire, and when it is not.

Ask for this when

Good fit

  • An existing .NET system that needs work and has one remaining expert.
  • A Framework application you need moved to Core without stopping the business.
  • Microsoft-shop internal tooling, integrations or line-of-business software.
Ask for something else when

Poor fit

  • A greenfield consumer product with no Microsoft dependency.
  • You want the cheapest possible hourly rate. This is senior work.
  • The real problem is the database rather than the application.
Questions

Before you ask for a shortlist.

Yes, and we screen specifically for it because the older applications are where the business risk usually sits. Engineers who only know modern .NET Core are common; ones comfortable in both are not.

No. A lot of .NET runs on IIS on a server in a cupboard, or on Linux containers, or on AWS. We match to what you actually run rather than what the certification assumes.

For an internal application in a .NET shop, often yes, because one language across both halves is a real saving. For a public site with strict performance requirements, we would usually still reach for a JavaScript framework and say why.

Next step

Describe the problem, not the job title.

Thirty minutes, and a shortlist within a day. If a .net developer is the wrong hire for what you described, you will hear that instead.