Mukesh Murugan | codewithmukesh.
com
everything you need to know
2023 version
@iammukeshm
Mukesh Murugan | [Link]
DEVELOPER BASICS
How does the internet work?
HTTP / HTTPS Protocols
Object Oriented Programming Knowledge
Basic Data Structures + Algorithms + Problem-Solving Skills
Should be fluent enough to search for solutions on
StackOverflow + ChatGpt
GIT for source code version control
GIT Platforms like GitHub / GitLab etc
@iammukeshm
Mukesh Murugan | [Link]
C#
Learn basics/changes in .NET 6 & 7
Learn the latest C# Language features.
Be fluent in using .NET CLI commands.
Be ready to migrate to .NET 8
Master IDEs like Visual Studio & Visual Studio Code
Learn Basic Code Optimization Techniques
Design Patterns
@iammukeshm
Mukesh Murugan | [Link]
CLEAN CODE
Improve Naming Conventions
Write De-Coupled Code
Learn SOLID Principles
Design Patterns
Engage in Peer Reviews to get more feedback
Keep It Simple Silly (KISS) - Do not complicate code.
@iammukeshm
Mukesh Murugan | [Link]
DATABASES
RDMS & NoSQL Fundamentals
Learn SQL Syntaxes & Stored Procedures (at least the basics)
Learn Database Optimizations
Work with RDBMSs like PostgreSQL, MS SQL, MySQL, etc.
Get familiarized with MongoDB. AWS DynamoDB, Azure
CosmosDB, and its C# packages.
Elastic Search & Redis
@iammukeshm
Mukesh Murugan | [Link]
[Link] CORE
Learn the following key concepts of [Link] Core (Backend)
How the [Link] Core Application handles a request.
Web API
Controllers
Minimal APIs
Middlewares
Routing
Filters & Attributes
Configuration
@iammukeshm
Mukesh Murugan | [Link]
Authentication
Authorization
Extension Methods to Simplify [Link]
Dependency Injection & Service Lifecycles ( Scoped, Transient &
Singleton).
REST API Conventions
@iammukeshm
Mukesh Murugan | [Link]
ORM
Now that you are aware of DBMS and .NET, learn how to simplify your
life and improve your developer experience by using ORMs to access
databases.
Entity Framework Core (Highly Recommended)
Code First, Database First
Automatic Migrations & .NET EF CLI commands
LINQ Knowledge
Various Data Loading Strategies
@iammukeshm
Mukesh Murugan | [Link]
Dapper (Prefer this for running RAW SQL Commands and SPs)
MongoDB Drivers and integrations.
@iammukeshm
Mukesh Murugan | [Link]
SYSTEM DESIGNS
Develop good system design knowledge to break down problems and
build systems that are scalable and easy to maintain.
Monolith vs Microservices & When to use which.
Building Scalable Services
Event-Driven Architecture with Messaging
Clean Architecture concepts - Feature Based Solution Designing
@iammukeshm
Mukesh Murugan | [Link]
CACHING
Very Crucial for improving your web application's performance!
Learns the benefits of Caching.
Learn Cache Invalidation Techniques.
Cache Expirations.
In-Memory Caching
Distributed Caching with Redis.
Application Level Caching (Response Caching, EF Caching).
@iammukeshm
Mukesh Murugan | [Link]
LOGGING
Helps improve the observability of your application and helps trace
out errors.
ILogger of Microsoft
Serilog: Honestly this is the only logging package you will ever
need.
NLog: A good alternative
@iammukeshm
Mukesh Murugan | [Link]
BACKGROUND TASKS
Native IHostedService & BackgroundService Interfaces for simple
task scheduling.
CRON Concepts
Hangfire
Quartz
@iammukeshm
Mukesh Murugan | [Link]
10
MESSAGE BROKERS & BUS
To Build Event Driven applications, you need to know a few of these
message brokers and buses.
RabbitMQ
Apache Kafka
ActiveMQ
Azure Service Bus
Masstransit - A beautiful abstraction for working with event
messages in microservice systems.
EasyNetQ
@iammukeshm
Mukesh Murugan | [Link]
11
API GATEWAY
You cannot avoid this if you need to build microservices.
Learn about Reverse Proxies, Routing & Gateways
YARP - Yet Another Reverse Proxy
Ocelot
Amazon API Gateway
KONG?
@iammukeshm
Mukesh Murugan | [Link]
12
CONTAINERS
This is going to make your deployments so much easier.
Learn about the benefits of Docker & Containerization.
Learn Docker & Docker Compose Concepts
DockerFile
Built-In Containerization feature in .NET 7+ (You no longer need a
Dockerfile)
Kubernetes & kubectl commands
Dapr: Provides essential building blocks for microservices.
Tye: Nice for running microservices locally.
@iammukeshm
Mukesh Murugan | [Link]
13
CLOUD
At a senior level, this is a mandatory path. It's best to have good
exposure to cloud tech, preferably with AWS or Azure. (AWS has a
better market share).
AWS Lambdas, EC2, ECS, DynamoDB, IAM, S3, and other core
services.
Serverless Knowledge.
Get yourself certified at a developer / DevOps / solution-
architect level.
Have good hands-on experience with real-life use-cases.
@iammukeshm
Mukesh Murugan | [Link]
14
CI/CD
Continuous Integrations & Deployments.
GitHub Actions (Easy to get started. Also, it's FREE)
AWS Code Pipelines
Azure Pipeline
Jenkins
Build Automation with Scripting
@iammukeshm
Mukesh Murugan | [Link]
15
IIS
DEPLOYMENTS
Learn Manual Deployment & Resource Provisioning into your
favorite Cloud Provider to get a good hand-on experience.
Once you are familiar with the workflow, automate it using
Infrastructure as Code tools.
Terraform
AWS CDK
Pulumi
@iammukeshm
Mukesh Murugan | [Link]
16
API TESTING
Default REST Testing in Visual Studio using .rest / .HTTP files.
Postman
Thunderclient Visual Code Extension (Recommended)
@iammukeshm
Mukesh Murugan | [Link]
17
TESTING
Although we don't really like writing test cases, it really helps you
ensure that the functionality of your code base isn't broken.
xUnit / NUnit
Moq for mocking in test cases.
FluentAssertions (Recommended)
Bogus for dummy data generation.
K6 for load testing
@iammukeshm
Mukesh Murugan | [Link]
18
OTHER CONCEPTS
Realtime Communication with SignalR
JWTs, OAuth (auth flows)
CURLs
OpenAPI Documentation with Swagger
API Versioning
Monitoring tools like Prometheus, Graffana, ELK Stack, AWS
Cloudwatch, Metrics, and CloudInsights
@iammukeshm
Mukesh Murugan | [Link]
MediatR & CQRS Patterns
Scrutor for Dynamic DI Injection
Request Validations using FluentValidation
Polly for Retry Mechanism
@iammukeshm
Mukesh Murugan | [Link]
19
PACKAGES
Here are the essentials packages for your .NET Applications.
Serilog
MediatR
FluentValidations
Mapster / Automapper
EntityFrameworkCore
Microsoft's Dependency Injection
@iammukeshm
Mukesh Murugan | [Link]
OpenIddict
[Link]
Guard Classes
[Link]
Hangfire
@iammukeshm
Mukesh Murugan | [Link]
CONGRATS!
On your new .NET Backend Job!
@iammukeshm
Mukesh Murugan | [Link]
LEARNING NEVER REALLY
STOPS!
Keep adding more to your
roadmaps and stay up to date
@iammukeshm
Mukesh Murugan | [Link]
You will learn only by building applications! Make sure that you
implement concepts soon as you learn them. Build your own Solution
Templates to ease your development time. Refer to the following
projects on GitHub to learn code implementations with clean
architecture.
Full Stack Hero - .NET 7 Web API Boilerplate (Search on Google)
eShopOnWeb & eShopOnContainers.
@iammukeshm
Mukesh Murugan | [Link]
WHICH STAGE OF THIS
ROADMAP ARE YOU ON?
Leave a comment!
@iammukeshm
Mukesh Murugan | [Link]
WAS THIS
HELPFUL?
Share with a friend who needs it!
Mukesh Murugan
[Link]
@iammukeshm
Follow me for more!
@reallygreatsite