Welcome to the Backend Engineering Show podcast with your host Hussein Nasser. If you like software engineering you’ve come to the right place. I discuss all sorts of software engineering technologies and news with specific focus on the backend. All opinions are my own. Most of my content in the podcast is an audio version of videos I post on my youtube channel here http://www.youtube.com/c/HusseinNasser-software-engineering Buy me a coffee https://www.buymeacoffee.com/hnasr 🧑🏫 Courses I Te ...
…
continue reading
1
Six stages of a good software engineer
39:27
39:27
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
39:27
You get better as a software engineer when you go through these stages. 0:00 Intro 1:15 Understand a technology 7:07 Articulate how it works 15:30 Understand its’ limitations 19:48 Try to build something better 27:45 Realize what you built also has limitations 32:48 Appreciate the original tech as is Understand a technology We use technologies all …
…
continue reading
1
This new Linux patch can speed up Reading Requests
18:12
18:12
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
18:12
Fundamentals of Operating Systems Course https://oscourse.winVery clever! We often call read/rcv system call to read requests from a connection, this copies data from kernel receive buffer to user space which has a cost. This new patch changes this to allow zero copy with notification. “Reading' data out of a socket instead becomes a “notification”…
…
continue reading
1
Cloudflare's 150ms global cache purge | Deep Dive
1:02:21
1:02:21
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
1:02:21
Cloudflare built a global cache purge system that runs under 150 ms. This is how they did it. Using RockDB to maintain local CDN cache, and a peer-to-peer data center distributed system and clever engineering, they went from 1.5 second purge, down to 150 ms. However, this isn’t full picture, because that 150 ms is just actually the P50. In this vid…
…
continue reading
1
MySQL is having a bumpy journey
28:34
28:34
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
28:34
Fundamentals of Database Engineering udemy course https://databases.winMySQL has been having bumpy journey since 2018 with the release of the version 8.0. Critical crashes that made to the final product, significant performance regressions, and tons of stability and bugs issues. In this video I explore what happened to MySql, are these issues getti…
…
continue reading
1
How many kernel calls in NodeJS vs Bun vs Python vs native C
20:41
20:41
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
20:41
Fundamentals of Operating Systems Course https://oscourse.winIn this video I use strace a performance tool that measures how many system calls does a process makes. We compare a simple task of reading from a file, and we run the program in different runtimes, namely nodejs, buns , python and native C. We discuss the cost of kernel mode switches, sy…
…
continue reading
Fundamentals of Operating Systems Course https://os.husseinnasser.comWhen do you use threads?I would say in scenarios where the task is either 1) IO blocking task2) CPU heavy3) Large volume of small tasksIn any of the cases above, it is favorable to offload the task to a thread.1) IO blocking taskWhen you read from or write to disk, depending on ho…
…
continue reading
1
Frontend and Backends Timeouts
25:23
25:23
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
25:23
I am fascinated by how timeouts affect backend and frontend programming. When a party is waiting on something you can place a timeout to break the wait. This is useful for freeing resources to more critical processes, detecting slow operations and even avoiding DOS attacks. Contrary to common beliefs, timeouts are not exclusive to request processin…
…
continue reading
1
Postgres is combining IO in version 17
27:39
27:39
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
27:39
Learn more about database and OS internals, check out my courses Fundamentals of database engineering https://databases.win Fundamentals of operating systems https://oscourse.win This new PostgreSQL 17 feature is game changer. You see, postgres like most databases work with fixed size pages. Pretty much everything is in this format, indexes, table …
…
continue reading
Fundamentals of Operating Systems Course https://os.husseinnasser.comWhy Windows Kernel connects slower than Linux I explore the behavior of TCP/IP stack in Windows kernel when it receives a RST from the backend server especially when the host is available but the port we are trying to connect to is not. This behavior is exacerbated by having both …
…
continue reading
1
Running out of TCP ephemeral source ports
20:06
20:06
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
20:06
In this episode of the backend engineering show I describe an interesting bug I ran into where the web server ran out of ephemeral ports causing the system to halt. 0:00 Intro 0:30 System architecture 2:20 The behavior of the bug 4:00 Backend Troubleshooting 7:00 The cause 15:30 Ephemeral ports on loopback…
…
continue reading
Fundamentals of Operating Systems Course https://os.husseinnasser.comLinux I/O expert and subsystem maintainer Jens Axboe has submitted all of the IO_uring feature updates ahead of the imminent Linux 6.10 merge window.In this video I explore this with a focus on what zerocopy. 0:00 Intro0:30 IO_uring gets faster 2:00 What is io_uring7:00 How Normal…
…
continue reading
1
They made Python faster with this compiler option
29:04
29:04
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
29:04
Fundamentals of Operating Systems Course https://oscourse.winLooks like fedora is compiling cpython with the -o3 flag, which does aggressive function inlining among other optimizations.This seems to improve python benchmarks performance by at most 1.16x at a cost of an extra 3MB in binary size (text segment). Although it does seem to slow down some…
…
continue reading
1
How Apache Kafka got faster by switching ext4 to XFS
33:52
33:52
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
33:52
https://oscourse.win Allegro improved their Kafka produce tail latency by over 80% when they switched from ext4 to xfs. What I enjoyed most about this article is the detailed analysis and tweaking the team made to ext4 before considering switching to xfs. This is a classic case of how a good tech blog looks like in my opinion. 0:00 Intro 0:30 Summa…
…
continue reading
1
Google Patches Linux kernel with 40% TCP performance
14:24
14:24
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
14:24
Get my backend course https://backend.win Google submitted a patch to Linux Kernel 6.8 to improve TCP performance by 40%, this is done via rearranging the tcp structures for better cpu cache lines, I explore this here.0:00 Intro0:30 Google improves Linux Kernel TCP by 40%1:40 How CPU Cache Line Works6:45 Reviewing the Google Patchhttps://www.phoron…
…
continue reading
0:00 Intro 2:00 File System Block vs Database Pages 4:00 Torn pages or partial page 7:40 How Oracle Solves torn pages 8:40 MySQL InnoDB Doublewrite buffer 10:45 Postgres Full page writes
…
continue reading
1
Cloudflare Open sources Pingora (NGINX replacement)
31:05
31:05
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
31:05
Get my backend course https://backend.win Cloudflare has announced they are opening sources Pingora as a networking framework! Big news, let us discuss 0:00 Intro 0:30 Reasons why Cloudflare built Pingora? 3:00 It is a framework! 7:30 What in Pingora? 11:50 Security in Pingora 13:45 Multi-threading in Pingora 21:00 Customization vs Configuration 25…
…
continue reading
https://backend.win https://databases.win I’m a big believer that database systems share similar core fundamentals at their storage layer and understanding them allows one to compare different DBMS objectively. For example, How documents are stored in MongoDB is no different from how MySQL or PostgreSQL store rows. Everything goes to pages of fixed…
…
continue reading
1
The Beauty of Programming Languages
18:17
18:17
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
18:17
In this video I explore the type of languages, compiled, garbage collected, interpreted, JIT and more.
…
continue reading
1
The Danger of Defaults - A PostgreSQL Story
11:34
11:34
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
11:34
I talk about default values and how PostgreSQL 14 got slower when a default parameter has changed. Mike's bloghttps://smalldatum.blogspot.com/2024/02/it-wasnt-performance-regression-in.html
…
continue reading
Background writing is a process that writes dirty pages in shared buffer to the disk (well goes to the OS file cache then get flushed to disk by the OS) I go into this process in this video
…
continue reading
1
The Cost of Memory Fragmentation
39:07
39:07
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
39:07
Fragmentation is a very interesting topic to me, especially when it comes to memory. While virtually memory does solve external fragmentation (you can still allocate logically contiguous memory in non-contiguous physical memory) it does however introduce performance delays as we jump all over the physical memory to read what appears to us for examp…
…
continue reading
1
The Real Hidden Cost of a Request
13:08
13:08
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
13:08
In this video I explore the hidden costs of sending a request from the frontend to the backend Heard https://medium.com/@hnasr/the-journey-of-a-request-to-the-backend-c3de704de223
…
continue reading
1
Why create Index blocks writes
13:02
13:02
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
13:02
Fundamentals of Database Engineering udemy course (link redirects to udemy with coupon)https://database.husseinnasser.com Why create Index blocks writesIn this video I explore how create index, why does it block writes and how create index concurrently work and allow writes.0:00 Intro1:28 How Create Index works4:45 Create Index blocking Writes5:00 …
…
continue reading
1
The Problems of an HTTP/3 Backend
13:52
13:52
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
13:52
HTTP/3 is getting popular in the cloud scene but before you migrate to HTTP/3 consider its cost. I explore it here.0:00 Intro HTTP/3 is getting popular3:40 HTTP/1.1 Cost5:18 HTTP/2 Cost6:30 HTTP/3 Costhttps://blog.apnic.net/2023/09/25/why-http-3-is-eating-the-world/
…
continue reading
1
Encrypted Client Hello - The Pros & Cons
33:17
33:17
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
33:17
The Encrypted Client Hello or ECH is a new RFC that encrypts the TLS client hello to hide sensitive information like the SNI. In this video I go through pros and cons of this new rfc.0:00 Intro2:00 SNI4:00 Client Hello8:40 Encrypted Client Hello11:30 Inner Client Hello Encryption18:00 Client-Facing Outer SNI21:20 Decrypting Inner Client Hello23:30 …
…
continue reading
1
The Journey of a Request to the Backend
52:58
52:58
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
52:58
From the frontend through the kernel to the backend process When we send a request to a backend most of us focus on the processing aspect of the request which is really just the last step. There is so much more happening before a request is ready to be processed, most of this step happens in the Kernel. I break this into 6 steps, each step can theo…
…
continue reading
1
They Enabled Postgres Partitioning and their Backend fell apart
33:38
33:38
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
33:38
In a wonderful blog, Kyle explores the pains he faced managing a Postgres instance for a startup he works for and how enabling partitioning sigintfically created wait events causing the backend and subsequently NGINX to through 500 errors.We discuss this in this video/podcasthttps://www.kylehailey.com/post/postgres-partition-pains-lockmanager-waits…
…
continue reading
1
WebTransport - A Backend Game Changer
15:01
15:01
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
15:01
WebTransport is a cutting-edge protocol framework designed to support multiplexed and secure transport over HTTP/2 and HTTP/3. It brings together the best of web and transport technologies, providing an all-in-one solution for real-time, bidirectional communication on the web. Watch full episode (subscribers only) https://spotifyanchor-web.app.link…
…
continue reading
1
Your SSD lies but that's ok | Postgres fsync
30:04
30:04
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
30:04
fsync is a linux system call that flushes all pages and metadata for a given file to the disk. It is indeed an expensive operation but required for durability especially for database systems. Regular writes that make it to the disk controller are often placed in the SSD local cache to accumulate more writes before getting flushed to the NAND cells.…
…
continue reading
1
The problem with software engineering
17:39
17:39
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
17:39
ego is the main problem to a defective software product. the ego of the engineer or the tech lead seeps into the quality of the product. Fundamentals of Backend Engineering Design patterns udemy course (link redirects to udemy with coupon)https://backend.husseinnasser.com
…
continue reading
1
2x Faster Reads and Writes with this MongoDB feature | Clustered Collections
27:01
27:01
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
27:01
Fundamentals of Database Engineering udemy course (link redirects to udemy with coupon)https://database.husseinnasser.com In version 5.3, MongoDB introduced a feature called clustered collection which stores documents in the _id index as oppose to the hidden wiredTiger hidden index. This eliminates an entire b+tree seek for reads using the _id inde…
…
continue reading
1
Prime Video Swaps Microservices for Monolith: 90% Cost Reduction
35:58
35:58
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
35:58
Prime video engineering team has posted a blog detailing how they moved their live stream monitoring service from microservices to a monolith reducing their cost by 90%, let us discuss this0:00 Intro2:00 Overview10:35 Distributed System Overhead21:30 From Microservices to Monolith 29:00 Scaling the Monolith32:30 Takeawayshttps://www.primevideotech.…
…
continue reading
1
A Deep Dive in How Slow SELECT * is
39:23
39:23
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
39:23
Fundamentals of Database Engineering udemy course (link redirects to udemy with coupon)https://database.husseinnasser.comIn a row-store database engine, rows are stored in units called pages. Each page has a fixed header and contains multiple rows, with each row having a record header followed by its respective columns. When the database fetches a …
…
continue reading
1
AWS Serverless Lambda Supports Response Streaming
13:14
13:14
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
13:14
Lambda now supports Response payload streaming, now you can flush changes to the network socket as soon as it is available and it will be written to the client socket. I think this is a game changing feature 0:00 Intro 1:00 Traditional Lambda 3:00 Server Sent Events & Chunk-Encoding 5:00 What happens to clients? 6:00 Supported Regions 7:00 My thoug…
…
continue reading
1
The Cloudflare mTLS vulnerability - A Deep Dive Analysis
43:13
43:13
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
43:13
Cloudflare released a blog detailing a vulnerability that has been in their system for nearly two years. it is related to mTLS or mutual TLS and specifically client certificate revocation. I explore this in details 0:00 Intro3:00 The Vulnerability7:00 What happened?8:50 Certificate Revocation12:30 Rejecting certain endpoints 17:00 Certificate Authe…
…
continue reading
1
The Virgin Media ISP outage - What happened?
23:23
23:23
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
23:23
BGP (Border gateway protocol) withdrawals caused the Virgin media ISP customers to lose their Internet connection. I go into details on this video. 0:00 Intro2:00 What happened?4:11 How BGP works?11:50 Version media withdrawals15:00 Deep dive Fundamentals of Backend Engineering Design patterns udemy course (link redirects to udemy with coupon)https…
…
continue reading
1
GitHub SSH key is Leaked - How bad is this?
21:56
21:56
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
21:56
GitHub Accidentally Exposed their SSH RSA Private key, this is the message you will get . @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone could be eavesdropping on you…
…
continue reading
1
Cookie Hijacking - How Linus Tech Tips got Hacked
13:33
13:33
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
13:33
How Linus Tech Tips channel got Hacked In this short video we explain how was it possible for Linux to get hacked with cookies hijacking. 0:00 Intro0:47 TLDR what happened 5:10 Cookies in Chrome7:30 Cookies Hijacking8:46 Session Tokens (Access/Refresh)10:00 Remedies
…
continue reading
1
All Postgres Locks Explained | A Deep Dive
49:11
49:11
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
49:11
Get my database engineering course https://database.husseinnasser.com In this video I do a deep dive in all locks obtained by postgres, I learned a lot while making this video and hope you enjoy it. 0:00 Intro 2:30 What are Locks? 5:30 Overview of Postgres Locks 9:10 Table-Level Locks 11:40 ACCESS EXCLUSIVE 17:40 ACCESS SHARE 19:00 ROW SHARE 20:15 …
…
continue reading
Pinterest moves to HTTP/3 on all their clients and edge CDNs this year. They witnessed interesting gains but not without good lesson learned. The main one was the mismatch of alt-svc vs DNS ttls.I cover this on the next episode of the backend engineering course.0:00 Intro2:00 Moving h2 to h3 through alt-svc5:00 Why HTTP/36:00 HTTP/1 vs HTTP/29:00 T…
…
continue reading
1
Why Loom Users got each others’ sessions on March 7th 2023
14:58
14:58
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
14:58
On March 7 2023, Loom users started seeing each others data as a result of cookies getting leaked from the CDN. This loom security breach is really critical. Let us discuss 0:00 Intro 1:00 Why Cookies 2:00 How this happens 5:50 What caused it? 7:30 How Loom solved it? 8:20 Reading the RCA 10:30 Remedies…
…
continue reading
1
How Discord Stores Trillions of Messages - A deep dive
1:09:20
1:09:20
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
1:09:20
Discord engineering goes into details of how they migrated from Cassandra to ScyllaDB, improved the performance of their reads and writes and rearchitected their backend to support the new load. It is an interesting episode lets get into it 0:00 Intro 1:50 Relational vs Distributed 7:00 The Cassandra Troubles 11:00 SnowFlake vs UUID 14:30 B+Tree 19…
…
continue reading
1
Postgres Architecture | The Backend Engineering Show
34:04
34:04
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
34:04
Creating a listener on the backend application that accepts connections is simple. You listen on an address-port pair, connection attempts to that address and port will get added to an accept queue; The application accepts connections from the queue and start reading the data stream sent on the connection. However, what part of your application doe…
…
continue reading
1
How Alt-Svc switches HTTP/2 clients to use HTTP/3 | The Backend Engineering Show
23:58
23:58
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
23:58
The Alt-Svc header/frame is a capability that allows the server to adverse alternative services to the connected application available in protocols, ports or domains. It is available as a response header alt-svc and also as an HTTP/2 frame. Let us discuss this capability. 0:00 Intro 1:38 what is alt-svc? 5:30 uses of h3 in alt-svc 8:00 alt-svc head…
…
continue reading
1
Your DNS queries will eventually look like this (0x20 DNS encoding)
26:20
26:20
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
26:20
Correction: Google is implementing the proposal originally submitted by researchers from Georgia institute of tech. I incorrectly said in the video that google is proposing this . Google is finally implementing a proposal from 2008 by researchers from Georgia institute of technology to make DNS cache poisoning . https://astrolavos.gatech.edu/articl…
…
continue reading
1
DropBox Removed their SSDs, got 20% faster writes
31:18
31:18
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
31:18
https://dropbox.tech/infrastructure/increasing-magic-pocket-write-throughput-by-removing-our-ssd-cache-disks In this episode of the backend engineering show I’ll discuss how Dropbox improved their write through put by 20% by removing all their SSDs (yes I was surprised too). DropBox uses an SSD layer as a write-back cache with SMR drives as their b…
…
continue reading
1
MySQL on HTTP/3 | The Backend Engineering Show
37:10
37:10
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
37:10
The communication between backend applications and database systems always fascinated me. The protocols keep evolving and we are in constant search for an efficient protocol that best fit the workload of Backend-DB communication. In this episode of the backend engineering show I go through a blog written by @PlanetScale doing an experimentation of …
…
continue reading
1
How Shopify’s engineering improved writes by 50% with ULID | The Backend Engineering Show
32:10
32:10
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
32:10
Fundamentals of Database Engineering udemy course (link redirects to udemy with coupon) https://database.husseinnasser.com Shopify posted a blog on tips to for scalable payment system, one tip peeked my interest related to switching from UUID to ULID. I explore the reasoning behind this in this video. https://shopify.engineering/building-resilient-…
…
continue reading
1
MongoDB Internal Architecture | The Backend Engineering Show
44:13
44:13
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
44:13
I’m a big believer that database systems share similar core fundamentals at their storage layer and understanding them allows one to compare different DBMS objectively. For example, How documents are stored in MongoDB is no different from how MySQL or PostgreSQL store rows. Everything goes to disk, the trick is to fetch what you need from disk effi…
…
continue reading
1
How UI/UX can break the backend
30:35
30:35
Lire Plus Tard
Lire Plus Tard
Des listes
J'aime
Aimé
30:35
The User Interface/User Experience has great impact on the backend architecture and scalability. In this podcast I discuss three UI/UX that affected backend design and scalability. 0:00 Intro 1:40 UI vs UX 4:30 Google Chrome OmniBox 12:30 1 out of X Page 20:00 YouTube Notification Resources https://blog.apnic.net/2020/08/21/chromiums-impact-on-root…
…
continue reading