Fundamentals of Backend Engineering

Understand backend communication design patterns, protocols, execution and proxying

4.69 (3694 reviews)
Udemy
platform
English
language
Software Engineering
category
instructor
Fundamentals of Backend Engineering
31,256
students
16 hours
content
Feb 2024
last update
$94.99
regular price

What you will learn

Learn the fundamentals of backend engineering

Backend communication design patterns

Understand how backend communication protocols work

Comprehend how OS Kernel communicate with Backend Applications

Operating System fundamentals (Thread, Process, async IO in linux)

Learn HTTP/1.1, HTTP/2, HTTP/3

Learn gRPC, WebRTC, WebSockets

Learn TLS 1.2, TLS 1.3, QUIC 0RTT

Why take this course?

Backend engineering is an art. During my 18 years career working with and building backend applications, I discovered that certain communication design patterns keep emerging. There are only handful of ways clients communicate with backend applications, although they might be more, I believe the patterns I discuss in this course are the most common. Examples of these patterns are request-response, publish-subscribe, short and long and push.

Based on these communication design patterns, engineers may use a number of protocols for concrete communication. While core transport vehicles are limited to either TCP or UDP, tons of industry specific protocols are built on top of these two to address certain problems and use cases. Examples of these high level protocols are HTTP/1.1, HTTP/2, HTTP/3, gRPC, WebRTC and many more. Other transport protocols like QUIC was built on top of UDP to bring HTTP/2 streaming down at the transport level. Each protocol has its pros and cons and fits certain use cases. In the course, I discuss the top common protocols and provide examples and demos where applicable.

Before the client can send a request, it has to establish a connection to the backend. Understanding how the connection is established, and what parts of connection establishment is done at kernel and what parts are done at the backend application process is critical. How the connection is then accepted by the backend application and how it can accept connections as fast as possible so the kernel queue doesn’t get full otherwise clients can no longer connect.

After the connection is established the client sends the request, but what happens exactly in the backend application to read the request? What exactly is a request? Understanding the cost of parsing a request based on the protocol makes the engineer appreciate the work done and equip her with better tools to troubleshoot performance problems or bugs.

Once the request reaches the backend, the application has to execute the request. The backend has a buffet of design choices when it comes to the style of execution it can choose. Understanding the difference between a process and a thread, multi-process, multi-threaded and the correlation to the number of CPU cores or hardware threads is crucial to pick the right execution pattern. One does not have to stick with these patterns but can invent new ones that suits their needs.

This course is designed for engineers who have built backend applications, it is an intermediate — advance level course, certain programming and networking knowledge is required so I recommend taking my fundamentals of network engineering course before taking this course if you don’t have the networking skills. I hope you enjoy this course, and thank you so much for considering it.

Screenshots

Fundamentals of Backend Engineering - Screenshot_01Fundamentals of Backend Engineering - Screenshot_02Fundamentals of Backend Engineering - Screenshot_03Fundamentals of Backend Engineering - Screenshot_04

Reviews

yurcifer
July 5, 2023
I love the topics covered here, but 40 minutes video might be twice as short with all the same useful information
Andrii
July 2, 2023
That's a perfect course for the backend engineers who want to understand what is happening behind the scene when the client sends a request and the server processes it. This understanding gives a lot of brain hooks, making it easier to understand other more high-level stuff. And one more thing - this course is definitely not for beginner level
Zahin
July 2, 2023
The instructor gives so many examples across all operating system and applications. Its shows how broad experience and knowledge he had. Love it.
Chandan
June 27, 2023
simplistic presentation and explanation of a complex backend system to small pieces and then connect those very artistically!!
Youssef
June 25, 2023
Hussain is one of my favorite software engineering content creators, his experience and the way he explains things in simple terms definitely makes this course one that you rarely find anywhere else. Thanks Hussain and please continue making courses like these
Mohab
June 23, 2023
More Than Perfect course , covering topics that is very important for me as backend engineer to know about
Ahmedgamalelazab
June 23, 2023
I've been coding for more than 2 years and i'm working as backend engineer and I've been searching in books and everywhere for a way to learn tricky concepts that's related to backend engineering and system design and finally with eng.Hussin Nasser i finally started to grasp what was missing from the books i've read or the code that i've written so far .
Ferdi
June 12, 2023
It can be better, with animation and more presentation step by step. after he confused me, I foun lots of usefull simple videos. Unfourtanely, I cannot advice this course although he is a great mentor generally.
Ademola
June 9, 2023
It’s a very good course and it helps intermediate backend developers get basic understanding and move to the next level. I would advise shortening the length of some of the videos due to the fact that some people might skip parts just because of the length
Moaz
May 19, 2023
I like the presentation and the vast variety of topics covered. Although the topics are not covered in a great details but it would be helpful for to dig deeper into every topic and learn.
Fahim_Arif
May 15, 2023
I am glad that I bought this course. Moreover, Nasser is a great teacher that knows all the underlined concepts of backend engineering. Great course.
Mostafa
May 13, 2023
The way Hussein has so much passion and good grasp of the subjects we mentions makes me eager to learn more.
Noé
May 5, 2023
Perfectly explained! The instructor explains every concept in a very concise way, and the examples clearly demonstrate the goal of the lecture.
Adam
May 1, 2023
Hate to admit it but I was a little iffy when I saw the instructor's name, I usually find it very hard to learn when the majority of my energy goes into understanding the person teaching you. Man was I wrong! Hussein is very knowledgeable, interesting to listen to and he actually has an outstanding professor kind of style which keeps you hooked and on top of that his voice is good to listen to. I think I found a new favorite instructor! Thank you!
Milos
April 26, 2023
It's chaotic. Like talking without any concept, jumping from topic to topic. It would be better if it is concise, and tightly coupled with the topic. Of course, I like to hear a lot of things you talk about, but sometimes it's just overwhelming, and there is so much information to process.

Charts

Price

Fundamentals of Backend Engineering - Price chart

Rating

Fundamentals of Backend Engineering - Ratings chart

Enrollment distribution

Fundamentals of Backend Engineering - Distribution chart
4953660
udemy ID
10/30/2022
course created date
11/5/2022
course indexed date
Bot
course submited by