Essential .NET and C# interview preparation advice
Published: Monday 22 April 2024
Are you a .NET and C# developer thinking about getting a new job?
Whether you're currently in a position or not, there are a lot of hurdles to overcome in the job interview process before you land that all important offer.
C# coding challenges
Here are the stages you'll need to go through:
Applying for the job
Before getting an interview, you need to find some jobs that are suitable for you and that you are qualified for.
Here are some things to consider:
Do you really want a new job?
You had a bad day at work? Or maybe you ain't fulfilled with the technology stack you're working with?
It's common to feel like you've had enough in your job. But ask yourself if you really want to move on from your current position?
Think about the things you like and dislike in your current role. Then see if these reasons are a good enough for you to move on and find something different.
You don't want to go through the whole job process, only to turn down the offer at the end because you want to stay in your current role.
What is the salary range?
Think about what salary you want in your next job. Do you want a 10% increase? Or maybe a 20% addition?
When searching for jobs, see if there is a salary range in the job advert. If there is one, see if the range matches your expectations. If it falls well short, it's best to look at the next job advert.
However, if the salary is consistent across multiple jobs that are in your area and that you're qualified for, that is probably the market rate for your position.
Where will I be working?
The pandemic forced a lot of us to work from home.
However, a number of companies have recently issued return to office mandates where they expected you to go into the office two or three days a week. In some circumstances, they expect you to go in for the full five-day week which is what's happening with the UK health & beauty retailer and pharmacy chain, Boots.
Think about your ideal location to work? Would you want to work from home 100% of the time? Or would that get too lonely and you would prefer to be with your work colleagues some of the week?
Then compare it to the job description and see if it matches. If it's an on-site or hybrid position, see where the office is located and check that you're able and willing to commute.
At this point, you need to be careful with ambiguous information in job adverts if you are wanting to work remotely 100% of the time.
Some jobs say they are remote when searching for them, only to say that they expect you in the office a couple of times a week in the job description.
If in doubt, try to get clarity from the recruiter who posted the job advert.
What technology stack will you be working with?
Go through the job description and see if the job matches what you want to do and what you're qualified for.
A lot of .NET and C# job adverts will post what technologies they are using, whether it's Blazor or ASP.NET Core Web API.
As well as that, have a look to see if there is any front-end development and DevOps experience expected in the role and whether that's something you want to do?
Sending your application
Once you are happy you have found a suitable job that you're qualified for, you'll need to apply for it.
You'll often have to fill out a form with your personal details, and attach your resume to the application.
In some instances, job application forms are excessively long where it seems they want to know everything about you. If the form is several pages long, think to yourself if it's worth the spending all that time filling out the application.
Interview with a recruiter
Congratulations. You've got an interview. The first stage is usually a meeting with either a recruiter, or a representative from HR.
This is usually done through a video or phone call and is an opportunity for the recruiter to tell you a bit more about the job description, the location of the role and what your job roles and responsibilities will be.
This is also an opportunity for you to find out more details about the job, and this is what you need to find out:
Salary expectations
The recruiter should ask you what you're salary expectations are at this stage. Think very carefully as to how much you want as the number you give here will more than likely be the maximum amount you are going to receive in an offer. It's also not uncommon for a company to offer you 10% less then this number.
Also think about this number and see if you would be happy with it in two or three years time? Unless you are lucky enough to get a quick promotion, you'll likely to be subjected to small yearly increases, like a inflation increase on your salary and maybe a bonus. You might not get any of these if the company starts to have financial issues.
So think to yourself how much you want from this job as it will be very difficult to negotiate upwards at the offer stage.
Be realistic though. If you're a junior developer, you are not going to be offered the same salary as a senior developer with 10+ years of experience. And if the job advert came with a salary range, the higher amount is likely to be the maximum that the company is going to offer.
Technology stack
Find out what technology stack you are expected to be working on. Ask what versions of .NET and C# they are using.
Also find out if there is any legacy technology systems that you're be expected to be working on. Is there some .NET framework systems lurking about, or maybe an ancient classic ASP application?
Recruiters aren't usually technically minded people so can't always answer the questions at that point, but they can speak to the hiring manager to get more clarity on what you'll be working on.
Notice period in your current position
If you're currently employed, the recruiter will likely ask you what you're notice period is in your current job.
Make sure you have this information to hand by checking your current job contract, or asking your manager in your current position.
If you are lucky enough to get a job offer and you accept, your current employer may expected you to work out your full notice period and give relevant handover notes to your colleagues.
So make sure you are clear on your notice period.
Get clarity on the place of work
Ensure that the recruiter gives you information on where you are expected to work.
If you're after a fully remote position, ensure that you clarify with the recruiter that it is a 100% fully remote position that you have applied for.
If it's an on-site or hybrid position, find out the location of where you are expected to work.
How many stages in the interview?
Most .NET and C# job application processes are at least two stages. These usually consist of a face-to-face interview with a couple of members from the technical team and some sort of technical test.
But some have many more stages before they even consider an offer. Some companies may want you to have a culture-fit meeting, alongside separate meetings with the CTO, the CEO and then HR.
Treat the interview process as a elimination tournament. If you lose one stage, you are eliminated from the process and you will not be getting a job offer from that company.
And you don't really know how many offer candidates you are up against at each stage. The more stages there are, the more chance of you getting eliminated and the less chance of you landing that job.
If it's more than three stages, unless it's a company you really want to work for, or the money is out of this world, move on to the next company.
Other information
Other information you should be able to find out is your working days and hours, alongside how much paid vacation you get. They should also be able to give you any health and insurance benefits that come with the job.
Hold firm with recruiters
Recruiters are sales people and can be very persuasive as they want to fill the job role as soon as possible.
However if you know that there is something wrong with the job, whether it's the salary, job description or the location, see if there is any room for negotiation.
For example, if they expect you go into the office one day a week but the office is 100 miles away, see if you can go in once a month?
If there isn't any room for negotiation, don't be afraid to let them down and move on to the next company.
Interview with the team
So you've passed the interview with the recruiter and this is where the work begins.
One of the stages will be meeting with the hiring manager and other people from the technical team who will ultimately decide whether you are going to receive an offer at the end of the process.
They will talk you through in more detail about the your job roles, what systems you'd be expected to work on and what technology stack they use.
Then they will come onto you and ask you some questions and here are some of the popular questions that are asked in job interviews:
Tell me about yourself
This is an opportunity for you to talk about your career to date. How did you eventually become a .NET developer?
Before the interview, it's good to have a look back on how it all started. Did you get a Computing qualification at college? How did you get into the industry and what technologies have you used over the years?
Think back to some of the projects and milestones that you have worked on in the past. Did you start off working with classic ASP, before moving up to Web Forms and MVC?
Then reflect on the more recent projects that you have working on, the technology stack and what roles you played a part in. For example, where you the person who was in charge of the CI/CD pipelines? Or maybe you were in charge of how the data was going to be structured in the database.
It's important to give as much information as you can at this stage so they can get an idea of how you could be suited to the job.
Why do you want to work for this company?
Before the interview, have a look at the job description to see what parts you like about a job. Maybe they are using an up-to-date technology stack? Or maybe they have some exciting projects that you are looking forward to working on.
Maybe you'll get an opportunity on working on unfamiliar areas that you are not exposed to in your current job, such as CI/CD pipelines and Azure DevOps? Maybe they have thrown in a bit of Docker and Kubernetes into the role?
For this question, try to talk about the job roles and responsibilities, and not about the money or benefits.
Why do you want to leave your current role?
This is usually a difficult question to answer because you don't want to be too negative in your response.
You don't get on with your manager, or the money is too low. But try to give reasons that are specify to the job and things that you have little or no control over.
Maybe you want to work with the latest .NET version, but the company's main system is written using .NET Framework and they have no ambition to upgrade it to .NET Core?
Or maybe you've been forced into working with technologies that you don't really want to work with. If you're going for a full-stack developer, it might be that you are using jQuery or Vue.js in your current role, but the job role you are going for uses Angular, which is more up your street.
It could also be that you've got too comfortable in your role and you don't feel that you are expanding your learning curve enough.
There are many reasons why you want to leave your current role, so have a think as to what they might be before the interview.
What challenges have you faced?
There are times in our work life where we have to face extreme challenges.
Maybe there was a short timeframe to get a big piece of work over the line? Or maybe you have had to deal with critical issues with a system?
There might have been disagreements with your team as to how a fix a problem. Your team might have been in favour of using nUnit, but you wanted to use xUnit for unit testing? Think about these disagreements and what how you came to a resolution.
Before the interview, reflect on all the challenges you have faced so far in your career so you can give examples when asked.
Do you have any questions for us?
The hiring manager is likely to invite you to ask any questions that you have about the job. It's important that you think of a list of questions before the interview.
With a lot of interviews being conducted via video call, you can prepare a list of questions before hand and have them by your side ready to ask. Here are some of the questions to ask:
- What other systems are used in the company and what technology stack do they use?
- Are there any background or cron jobs that get run?
- What database do you use?
- What unit testing framework do you use?
- How do you handle end-to-end and regression testing?
- What is the procedure for deployments? Do you use CI/CD pipelines?
- How often do deployments take place?
- What project management tool do you use?
- If they use Scrum, how often are the sprints, and is there a kick-off, retrospective meeting alongside a daily scrum?
Sometimes the hiring manager will leave a section at the end to ask questions. Other times, they will invite you to ask questions earlier on in the process.
If there is an opportunity to ask questions earlier on, see if you can cease the opportunity and ask as many questions as you can. It could be that you end up being the main person who is asking the questions rather then the other way around.
Watch the video
Watch our video where we'll go through some interview questions and how to answer them.
We'll also guide you through the process of applying for a job and what to expect when it comes to salary expectations and work environment.
Other interviews
You'll also most certainly have to do some sort of technical task to show off your skills in the process.
If you are successful in that, you'll hopefully get a job offer and confirm when you are able to start working for your new company.