C# developer interview questions and preparation.
Tags: programming, learning, career, csharp
Published: 2024-05-11 08:19:48


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1r612nokne2qgtgf9nvm.jpg)
The image was generated using a bot https://t.me/kandinsky21_bot

## C# developer interview questions and preparation.

**My mini story.**

I recently had a situation where I needed to change employers. 

Many people like to travel, so I decided I wanted to spend some time working remotely from anywhere in the world, but the company I worked for unfortunately could only allow me to work remotely within my own country.

In fact, I didn't want to leave my current place at all, the company was just  awesome and the team was just space.

The technology that was used really pleased me, of course not everything was top notch, but the fire in the eyes and the desire to move forward was very much felt.

In addition, I served as a Team Leader on the team (meaning Tech Lead).

**Interview Preparation.**

Turning to reputable search sources, I found so many articles, and all of the articles had their own history of interview questions.

If you summarize the various articles, you get a large folio of questions that could be studied for months.

Of course, I already knew the answers to some of these questions, but my study time was limited to two weeks.

The solution was to change the way these questions were filled out and to focus more on overlapping questions from different articles.

Plus add a more important priority on recent articles.

Once I had finalized my list and sorted out my outstanding questions, I started sending out my resumes to the companies I was interested in.

The responses were for various mid to senior level positions in C# Developer Backend/Full Stack as well as Tech Lead/Team Lead.

After I got past the first HR phase, they started calling me for technical interviews.

The results of my study were almost exactly the same as the data already available, but there were still some differences.

After about twenty interviews, I prepared a list of questions that were asked.

**A list of technical interview questions for C# developers.**

The most common questions are sorted in descending order at the top.

The list is categorized by language and related libraries.

**С#:**

- What are stack and heap?
- What is Dependency Injection and what is it for?
- Can you tell me about the Dependency Injection lifecycle?
- Can you tell me about the SOLID principle?
- What is multithreading?
- What is async?
- What is the difference between multithreading and async?
- What is thread pooling and where is it used?
- What is a thread?
- What types of locks do you know?
- What construct can serve as an alternative to the lock operator?
- What construct can serve as an alternative to the using operator?
- What are boxing and unboxing and what are they for?
- How do you solve problems with Deadlock?
- What are reference and meaningful types?
- Where are reference and meaningful types stored?
- What is a garbage collector and how does it work?
- What is the difference between an Array and a List?
- What is the difference between a Dictionary and a HashSet?
- What is LinkedList and why is it needed?
- What are overriding and overlapping, where are they used?
- What is the meaning of in, out, ref modifier in method parameters?
- What is the difference between string and stringBuilder?
- Tell us about the CQRS pattern?
- Can you implement the Singleton pattern?
- Can you name a couple of thread-safe types?
- Have you had experience writing autotests, which ones do you know?
- What ORMs have you used?
- What does the Code First approach mean?

---

Some companies use SQL queries to work with the database directly as SQL scripts through Entity Framework, Dapper or other ORMs.

This approach has its advantages and disadvantages, but let's not talk about them now and move on to the questions.

**SQL:**

- What types of locks do you know?
- What is the best way to solve problems related to locks?
- What is a transaction?
- What levels of isolation do you know?
- What are indexes?
- What indexes do you know?
- What types of indexes do you know?
- What is the difference between clustered and non-clustered indexes?
- How can you identify an unoptimized query?
- If you add an index on each field, will the query run faster?
- What is a query execution scheduler?
- What should you consider when looking at the query execution planner to optimize your query?
- What is the main difference between a procedure and a function?

---

The Full Stack Developer position requires different levels of expertise depending on the tasks.

Basically, I sent my resume, which requires a little bit of experience.

**React/JS:**

- What is the difference between var and let and which is better to use?
- What is the difference between a component and a class in React and which is preferable?
- What are hooks in React?
- What is useState?
- What is useEffect?
- What is useReducer?
- What is useContext?
- What is the difference between jsx and js?
- Explain the life cycle of a React component?
- How to create a reactive component using Hooks?
- How to implement the Stateful Component pattern in React?
- How to implement the Stateless Component pattern in React?
- How to manage child components in React?

---

Of course, companies can't do without a Git codebase repository or its analogs.

**GIT/Gitlab:**

- Can you tell me briefly about some git flow?
- How to roll back changes after migration?
- What is the difference between Rebase and Merge when updating a branch?
- What is Cherry-Pick and where can you use it?
- What is Commit changes?
- What is the difference between git pull and git fetch?
- What is Merge Request?
- What are Squash Commits in a Merge Request?
- How do you conduct a Code Review?

---

**Tech Lead/Team Lead position:**

- Can you briefly talk about Agile, Scrum, Kanban methodologies?
- Do you think Code Review should be conducted?
- Do you think it is mandatory to add automatic code testing?
- Have you had experience in architecture design, can you give an example?
- Do you consider grooming tasks to be part of the Tech Lead's responsibilities?
- How do you solve problems that programmers have during task grooming?
- How do you distribute tasks among programmers?
- How do you realize that this particular task pool needs to be solved for the next sprint?
- When do you realize that code refactoring is required?
- When are technical debt tasks solved and do they need to be solved?
- How do you train and support the development team in learning new technologies and approaches?

---

**The rest of the technology questions:**

- What containers have you worked with and have you had experience with Docker, Kubernetes?
- Have you had experience with REST or gRPC?
- Have you had experience with RabbitMQ or Kafka systems?
- Have you had experience with Graylog?

---

That's probably all for now. If the article was interesting, I'd be glad for any support.
USDT TRC20: TMMHMYQt5ve8vQ45SKvyXcdTk269sRrpcK
USDT BEP20: 0x5be98d43571a936f509106b13e78e55a28c9bda8
TON: UQBZR_fCLHUidygH4osRzD4GVXZqUbOlV2-1JevNjs3U5Lgv
[![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q3qfllvdee4wrtf56w7g.png)](https://destream.net/live/DenisTukhvatshin/donate)

**If anyone wants to see the answers to the questions, post a comment on this post, I'd be happy to answer the questions on this list in a separate post.**