Sitemap

C# interview questions for web devs

14 min readAug 17, 2024

--

Press enter or click to view image in full size

Just a list of subjects, topics, and questions that I believe developers at junior, middle, and senior levels should know. You can use it as a roadmap, to prepare for an interview, or to conduct one 🙃.

Enjoy 😉

Code conventions

junior

  • knows programming language’s conventions

middle

  • can introduce changes to the codebase without breaking existing conventions

senior

  • can set up linting to automate code conventions (Roslyn Analysers, StyleCop, FxCop, SonarLint)

Refactoring

junior

middle

senior

Debugging

junior

  • debugging in Visual Studio
  • settings breakpoints
  • conditional breakpoints
  • changing runtime values

middle

senior

  • remote debugging
  • knows how to debug multi-thread app

Git

Press enter or click to view image in full size

junior

  • GitHub
  • basic operations (init, clone, fetch, pull, commit, push)
  • branching
  • .gitignore

middle

  • stash
  • rebase vs merge
  • branching models (GitFlow, GitHub Flow, etc)
  • git blame

senior

  • .gitattributes
  • checkout on a commit
  • cherry-pick
  • squash

Source Code Review

junior

  • knows what a Pull Request is

middle

  • knows how to conduct code review and provide useful and understandable feedback

senior

Data Structures

Press enter or click to view image in full size

junior

  • array
  • matrix
  • linked list
  • LIFO vs FIFO
  • stack
  • queue
  • binary tree

middle

  • hash table. how does a hash table behave when there is a collision?
  • hash function. what happens when mutable fields are used in the hash function? what is a collision in hash tables?

senior

  • graph

Algorithms

junior

  • O notation, space/time complexity
  • swap values in an array
  • min, max, average in an array
  • recursion
  • sorting (bubble sort, insertion sort, selection sort)
  • searching (linear search, binary search, knows precondition for binary search)

middle

  • quick sort

senior

  • tree traversal (with queue, with stack, NLR, LRN, RLN)
  • divide-and-conquer algorithms

Object-Oriented Programming

junior

middle

senior

Functional Programming

Press enter or click to view image in full size

junior

middle

senior

AI

Press enter or click to view image in full size

junior

  • can use AI tools (e.g., Copilot, ChatGPT) for code snippets, explanations, and documentation
  • can generate unit tests or boilerplate with AI

middle

  • can evaluate AI-generated output critically, refine prompts, and integrate AI into the development workflow
  • uses Claude for reasoning-heavy tasks (e.g., refactoring, architecture explanations)

senior

  • ensures compliance, privacy, and security in AI-assisted development
  • sets up automation with AI (code review, documentation generation, test generation)
  • can integrate AI APIs (OpenAI, Anthropic, local LLMs) into internal tools and workflows
  • evaluates new AI tools, models, and frameworks, guiding adoption strategically

.NET

junior

middle

  • .Net CLI
  • difference between compile time and runtime

senior

  • global.json
  • dotnet-tool.json
  • can create custom NuGet
  • CLR, CIL, CTS, CLS, GAC
  • DLL, EXE

Core C#

junior

  • basic types, enums, value types vs reference types
  • struct vs class
  • string, StringBuilder, interpolation, string.Format()
  • boxing, unboxing
  • type casting (is, as, type conversion operator)
  • method overload vs method optional parameters, named parameters
  • extension methods
  • in, ref, out, params
  • interface vs abstract class, inheritance
  • access modifiers (public, private, protected)
  • virtual vs new vs override
  • static class and static class members
  • indexers and properties
  • generics, generic constraints
  • exceptions, finally
  • linq. First() vs FirstOrDefault() vs Single() vs SingleOrDefault()
  • garbage collection, IDisposable vs Finalizer, using statement

middle

  • what’s new in C#?
  • sealed class, partial class
  • access modifiers (internal)
  • tuple, named tuple, deconstruction
  • const vs static readonly
  • understand regex and its usage
  • Equals(), inherit EqualityComparer<T>, Comparer<T>.Default
  • GetHashCode(), HashCode.Combine()
  • rethrowing exception (throw ex vs throw), when in a catch clause
  • deferred linq execution
  • basic of working with files. File, FileInfo, Streams (Stream, FileStream, etc)
  • HttpClient

senior

Collections

junior

  • array
  • generic collections (List<T>, LinkedList<T>, Dictionary<K, V>, HashSet<T>, Stack<T>, Queue<T>, PriorityQueue<T, P>)

middle

  • interfaces (ICollection<T>, IList<T>, IDictionary<K, V>)
  • readonly interfaces (IEnumerable<T>, IReadOnlyList<T>, IReadOnlyDictionary<K, V>)
  • ObservableCollection<T>
  • iterators, IEnumerator (MoveNext(), Current, Reset())

senior

Delegates

junior

  • delegates, lambda expressions
  • understand events
  • Action, Func, Predicate

middle

  • create custom delegate
  • local functions

senior

  • lambda closures
  • combine delegates
  • create event, EventHandler, EventArgs
  • event forwarding (add, remove keyword)

Reflection

junior

  • basic understanding of reflection
  • attributes
  • .GetType() vs typeof()

middle

  • create a custom attribute, AttributeUsage

senior

  • capable of applying reflection
  • expression trees
  • Activator.CreateInstance<T>(), Activator.CreateInstance(Type t)
  • invoking instance’s methods, invoking static methods

Multithreading

junior

  • being able to use Task

middle

senior

Libraries

junior

middle

senior

Networking

Press enter or click to view image in full size

junior

middle

senior

ASP .NET API

junior

middle

senior

ASP.NET MVC

junior

middle

senior

Web Security

junior

middle

senior

SQL Databases

junior

middle

senior

NoSQL Databases

junior

  • NoSQL concepts

middle

  • SQL vs NoSQL. Advantages/disadvantages of NoSQL Databases over Relational Databases

senior

  • BASE
  • can review and use NoSQL databases based on a project needs
  • has experience with MongoDb/Elasticsearch/Redis etc

Entity Framework

Press enter or click to view image in full size

junior

  • what is DbContext
  • configuring the DB model. data annotations vs FluentAPI
  • EF approaches (Code First, Database First, Model First)
  • implement CRUD
  • one-to-one, one-to-many, many-to-many relations conventions
  • configure relations with FluentAPI
  • load data: lazy vs explicit vs eager
  • IEnumerable vs IQueryable
  • create and apply a migration

middle

senior

Monitoring

junior

middle

senior

Performance

Press enter or click to view image in full size

junior

  • can find performance issues in the app?

middle

  • can optimize algorithms
  • can optimize memory usage

senior

Cache

junior

middle

senior

Tests

junior

middle

senior

Design patterns

junior

middle

senior

Architecture

Press enter or click to view image in full size

junior

  • breaking a problem into multiple functions

middle

senior

Domain Driven Design

junior

middle

senior

Microservices

junior

  • 🤷‍♂️

middle

senior

Cloud computing

junior

  • 🤷‍♂️

middle

  • on-premise vs cloud deployment
  • benefits and drawbacks of going cloud
  • cloud models (PaaS vs IaaS vs SaaS)

senior

  • serverless concept
  • vertical/horizontal scaling
  • cold start problem in lambdas
  • blob storage
    types of resources (an account, a container, a blob)
    access tiers (hot, cool, cold, archive)
  • vendor lock-in

DevOps

Press enter or click to view image in full size

junior

  • 🤷‍♂️

middle

senior

Containers

junior

  • 🤷‍♂️

middle

senior

Software development methodologies

Press enter or click to view image in full size

junior

  • basics of work organization using ticket management software (i.e., Jira or Trello)

middle

  • SCRUM basics: roles, meetings, processes, artifacts
  • Kanban basics: Kanban board, tickets processing
  • pair programming
  • task hierarchy
    - epic
    - user story
    - task

senior

  • set-up Scrum or Kanban on the project
  • work breakdown structure (WBS)

Estimation

junior

  • knows fibonacci numbers
  • knows T-shirt sizes

middle

  • pocker estimation. What is the etalon story (a reference user story or a baseline story)?

senior

  • critical path method
  • three-point estimation
  • knows when an investigation is required
  • include in the estimate
    - task estimate
    - risk estimate
    - tests
    - investigation/documentation

Project documentation

Press enter or click to view image in full size

junior

  • functional specification
  • can gather requirements from stakeholders

middle

  • understand technical specifications (how to setup/configure project, development process, branch names)
  • understand functional specification (sequence diagrams, use-case diagrams, etc)
  • release-notes
  • when task considered to be completed? acceptance criteria
  • UML. different types of diagrams
  • Entity–Relationship model

senior

  • non-functional specification
  • deployment specification
  • can write project documentation
  • C4 model. Difference between Container and Components
  • Architecture Decision Record
  • GDPR compliance

For the End

I hope I didn’t upset anyone because the list does not match their expectation 😅. It’s simply my personal perspective, and it’s perfectly fine if you have a different view.

Get iamprovidence’s stories in your inbox

Join Medium for free to get updates from this writer.

Do not worry if you don’t know something, and do not get arrogant if you master a section before somebody else. Remember that everybody learns stuff at a different pace. The labels of junior, mid-level, and senior do not mean anything. As practice shows, what a junior developer has not learned yet, a senior developer has already forgotten 😁.

💬 Let me know in the comment sections what other topics deserve to be on the list

⬇️ Check out my other articles

👏 Don’t forget to clap

☕️ You can buy me a coffee with a link below

✅ Subscribe

🙃 And stay awesome

--

--

iamprovidence
iamprovidence

👨🏼‍💻 Full Stack Dev writing about software architecture, patterns and other programming stuff https://www.buymeacoffee.com/iamprovidence