Fundamentals of Backend Engineering
Fundamentals of Backend Engineering, available at $84.99, has an average rating of 4.7, with 56 lectures, based on 4348 reviews, and has 36303 subscribers.
You will learn about 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 This course is ideal for individuals who are Backend Engineers or FullStack Engineers or Frontend Engineers interested in the Backend (must have built a backend app) or Network engineers who want to get better at backend design or Site reliability engineers It is particularly useful for Backend Engineers or FullStack Engineers or Frontend Engineers interested in the Backend (must have built a backend app) or Network engineers who want to get better at backend design or Site reliability engineers.
Enroll now: Fundamentals of Backend Engineering
Summary
Title: Fundamentals of Backend Engineering
Price: $84.99
Average Rating: 4.7
Number of Lectures: 56
Number of Published Lectures: 56
Number of Curriculum Items: 56
Number of Published Curriculum Objects: 56
Original Price: $199.99
Quality Status: approved
Status: Live
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
Who Should Attend
- Backend Engineers
- FullStack Engineers
- Frontend Engineers interested in the Backend (must have built a backend app)
- Network engineers who want to get better at backend design
- Site reliability engineers
Target Audiences
- Backend Engineers
- FullStack Engineers
- Frontend Engineers interested in the Backend (must have built a backend app)
- Network engineers who want to get better at backend design
- Site reliability engineers
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.
Course Curriculum
Chapter 1: Introduction
Lecture 1: Welcome
Lecture 2: Who is this course for?
Lecture 3: Course Outline
Lecture 4: Course Notes
Lecture 5: Download all slides, source code and references
Chapter 2: Backend Communication Design Patterns
Lecture 1: Backend Communication Design Patterns Intro
Lecture 2: Request Response
Lecture 3: Synchronous vs Asynchronous workloads
Lecture 4: Push
Lecture 5: Polling
Lecture 6: Long Polling
Lecture 7: Server Sent Events
Lecture 8: Publish Subscribe (Pub/Sub)
Lecture 9: Multiplexing vs Demultiplexing (h2 proxying vs Connection Pooling)
Lecture 10: Stateful vs Stateless
Lecture 11: Sidecar Pattern
Chapter 3: Protocols
Lecture 1: Protocols Intro
Lecture 2: Protocol Properties
Lecture 3: OSI Model
Lecture 4: Internet Protocol
Lecture 5: UDP
Lecture 6: TCP
Lecture 7: TLS
Lecture 8: HTTP/1.1
Lecture 9: WebSockets
Lecture 10: HTTP/2
Lecture 11: HTTP/3
Lecture 12: gRPC
Lecture 13: WebRTC
Chapter 4: Many ways to HTTPS
Lecture 1: HTTPS Communication Basics Intro
Lecture 2: HTTPS over TCP with TLS 1.2
Lecture 3: HTTPS over TCP with TLS 1.3
Lecture 4: HTTPS over QUIC (HTTP/3)
Lecture 5: HTTPS over TFO with TLS 1.3
Lecture 6: HTTPS over TCP with TLS 1.3 and 0RTT
Lecture 7: HTTPS over QUIC with 0RTT
Chapter 5: Backend Execution Patterns
Lecture 1: Backend Execution Patterns Intro
Lecture 2: The Process and The Thread and how they compete for CPU time
Lecture 3: How The Backend Accepts Connections
Lecture 4: Reading and Sending Socket Data
Lecture 5: The Listener, The Acceptor and the Reader
Lecture 6: Single Listener, Acceptor and Reader Thread Execution Pattern
Lecture 7: Single Listener, Acceptor and Multiple Readers Thread Execution Pattern
Lecture 8: Single Listener, Acceptor, Reader with Message Load Balancing Execution Pattern
Lecture 9: Multiple Accepter Threads on a Single Socket Execution Pattern
Lecture 10: Multiple Listeners, Acceptors and Readers with Socket Sharding Execution Pattern
Lecture 11: Backend Idempotency
Lecture 12: Nagle's Algorithm
Chapter 6: Proxying and Load Balancing
Lecture 1: Proxy vs Reverse Proxy
Lecture 2: Layer 4 vs Layer 7 Load Balancers
Chapter 7: Extras
Lecture 1: How ChatGPT uses Server Sent Events
Lecture 2: How I design software
Lecture 3: The Journey of a Request to the Backend
Lecture 4: The Journey of a Request to the Backend (Video)
Lecture 5: JSON Web Token (JWT), its Pros and Cons
Chapter 8: Answering Your Questions
Lecture 1: How does the Kernel manage backend connections?
Instructors
-
Hussein Nasser
Software Engineer, Author
Rating Distribution
- 1 stars: 27 votes
- 2 stars: 34 votes
- 3 stars: 163 votes
- 4 stars: 1059 votes
- 5 stars: 3065 votes
Frequently Asked Questions
How long do I have access to the course materials?
You can view and review the lecture materials indefinitely, like an on-demand channel.
Can I take my courses with me wherever I go?
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!
You may also like
- Top 10 Language Learning Courses to Learn in November 2024
- Top 10 Video Editing Courses to Learn in November 2024
- Top 10 Music Production Courses to Learn in November 2024
- Top 10 Animation Courses to Learn in November 2024
- Top 10 Digital Illustration Courses to Learn in November 2024
- Top 10 Renewable Energy Courses to Learn in November 2024
- Top 10 Sustainable Living Courses to Learn in November 2024
- Top 10 Ethical AI Courses to Learn in November 2024
- Top 10 Cybersecurity Fundamentals Courses to Learn in November 2024
- Top 10 Smart Home Technology Courses to Learn in November 2024
- Top 10 Holistic Health Courses to Learn in November 2024
- Top 10 Nutrition And Diet Planning Courses to Learn in November 2024
- Top 10 Yoga Instruction Courses to Learn in November 2024
- Top 10 Stress Management Courses to Learn in November 2024
- Top 10 Mindfulness Meditation Courses to Learn in November 2024
- Top 10 Life Coaching Courses to Learn in November 2024
- Top 10 Career Development Courses to Learn in November 2024
- Top 10 Relationship Building Courses to Learn in November 2024
- Top 10 Parenting Skills Courses to Learn in November 2024
- Top 10 Home Improvement Courses to Learn in November 2024