
The Backend Engineering Show with Hussein Nasser
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 Teach
https://husseinnasser.com/courses
Latest episodes

Apr 4, 2021 • 27min
DNS issue impacting multiple Microsoft services on April’s fool day (with Bonus content)
Microsoft Had an Outage on April 1st that is caused by DNS surge, let us discuss this. Bonus I’ll also discuss the outage that happened on March 18th cpu 100% utilization
RCA - DNS issue impacting multiple Microsoft services (Tracking ID GVY5-TZZ)
Summary of Impact: Between 21:21 UTC and 22:00 UTC on 1 Apr 2021, Azure DNS experienced a service availability issue. This resulted in customers being unable to resolve domain names for services they use, which resulted in intermittent failures accessing or managing Azure and Microsoft services. Due to the nature of DNS, the impact of the issue was observed across multiple regions. Recovery time varied by service, but the majority of services recovered by 22:30 UTC.
0:00 April/1st Outage - DNS Issue
13:30 March/18th Outage - CPU 100%
RCA
https://status.azure.com/en-us/status/history/

Apr 3, 2021 • 21min
My Python CRUD App hits 2 million rows, Should I Shard my Database?
Hey Hussein
I have a 2 million row table used in my CRUD python app, I’m worried that as the table grow my inserts will slow down, should I consider sharding my database or partition the table? thank you
I’m avid of simplicity in design if I can do it in one machine I’ll do it. Sharding/Partitioning are all great
inserts are fast, queries are slow 0:00
inserts can be slow 3:00
indexes/stored procedures
selects, updates, and deletes can be slow 12:00
add proper indexes.
simplicity wins, premature optimization is bad 15:20
crazy things that people say like microservices day 1 scares me

Mar 31, 2021 • 10min
cURL TLS 1.3 session ticket proxy host mixup Vulnerability
Enabled by default, libcurl supports the use of TLS 1.3 session tickets to resume previous TLS sessions to speed up subsequent TLS handshakes.
When using a HTTPS proxy and TLS 1.3, libcurl can confuse session tickets arriving from the HTTPS proxy but work as if they arrived from the remote server and then wrongly "short-cut" the host handshake. The reason for this confusion is the modified sequence from TLS 1.2 when the session ids would provided only during the TLS handshake, while in TLS 1.3 it happens post hand-shake and the code was not updated to take that changed behavior into account.
4:00 http connect
https://curl.se/docs/CVE-2021-22890.html

Mar 31, 2021 • 9min
PHP’s Source Code hacked - Two Remote Code execution added to the Git server, let us discuss
Two malicious commits were pushed to the php-src Git repository maintained by the PHP team on their git.php.net server. The commits were found and reverted two hours after it was committed. PHP is moving to github as a result.
Article
https://www.bleepingcomputer.com/news/security/phps-git-server-hacked-to-add-backdoors-to-php-source-code/

Mar 28, 2021 • 25min
What happens when your Web Server Private Key is Leaked?
We have been told to take care of our private key that we use on backend servers without clear instructions as to what could happen when that key is leaked. In today’s backend engineering show I discuss exactly what could go wrong when your backend server private key is leaked. Let us discuss
Intro 0:00
What is a Certificate? 1:10
Where is the Private Key used? 4:10
TLS 1.2 with RSA 4:20
Why RSA no longer used 9:00
TLS 1.3 & TLS 1.2 Digital Signature 12:00
How often should you recycle Private Keys 19:00
Resources
https://blog.cloudflare.com/advanced-certificate-manager/
https://heartbleed.com/
https://cabforum.org/
https://en.wikipedia.org/wiki/DigiNotar
https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.sec.doc/q009960_.html

Mar 26, 2021 • 14min
Researcher bypasses Azure, and Cloudflare Reverse Proxy Security - HTTP/2 Smuggling (h2c)
6 months ago, Jake Miller released a blog article and python tool describing H2C smuggling, or http2 over cleartext smuggling. By using an obscure feature of http2, an attacker could bypass authorization controls on reverse proxies.
Sean managed to leverage Jack’s original research to bypass reverse proxy rules, lets discuss My original Video on Jack’s h2c smuggling https://youtu.be/B2VEQ3jFq6Q This article https://blog.assetnote.io/2021/03/18/h2c-smuggling/

Mar 26, 2021 • 18min
High severity flaw can crash your WebServer when using OpenSSL - Let us discuss
On Thursday, OpenSSL maintainers released a fix for two high severity vulnerabilities, let us discuss the impact.
OpenSSL two major vulnerabilities 0:00
why OpenSSL 1:00
Bug 1 - Renegotiating TLS 1.2 (CVE-2021-3449) 3:50
Bug 2 - Cert verification bypass (CVE-2021-3450) 8:42
Update to OpenSSL 1.1.1k 12:30
Resources
https://www.openssl.org/news/vulnerabilities.html
https://arstechnica.com/gadgets/2021/03/openssl-fixes-high-severity-flaw-that-allows-hackers-to-crash-servers/

Mar 24, 2021 • 9min
When is NodeJS Single Threaded and when is it multi-Threaded?
Node JS Is single-threaded asynchronous non-blocking javascript runtime, but it's not always single-threaded there are occasions where nodejs uses multi-threading, so the questions we will try to answer in this video, when is nodejs single-threaded and when does it use multi-threading and how will that affect my app?
Event Loop single thread, that really just loops for callbacks 0:00
Threading in Node jS (libuv) 4:00
used for
IO/intensive
DNS queries
file system reads
CPU intensive
crypto
compression
process.env.UV_THREADPOOL_SIZE=1
Examples 8:00
Cluster Nodejs 16:00
Example 1
HTTP server return 1
HTTP server while 1
HTTP server with file system read async
HTTP server with file system read sync
HTTP server with fetch call to server (dns)
Support my work on PayPal
https://bit.ly/33ENps4
Become a Member on YouTube
https://www.youtube.com/channel/UC_ML5xP23TOWKUcc-oAE_Eg/join
🧑🏫 Courses I Teach
https://husseinnasser.com/courses

Mar 21, 2021 • 36min
Slack's Migrating Millions of Websockets from HAProxy to Envoy, let's discuss
Slack started migrating from HAProxy to Envoy for their backend architecture, in this video, I’ll discuss their recent article when they moved the WebSockets portions, why they moved from HAProxy to Envoy and their production plans.
Resources
Article https://slack.engineering/migrating-millions-of-concurrent-websockets-to-envoy/
RFC8441 https://tools.ietf.org/html/rfc8441
3:15 Websockets Crash Course https://youtu.be/XgFzHXOk8IQ
9:50 HAProxy Runtime API https://youtu.be/JjXUH0VORnE
20:00 Slack Jan 4th outage https://www.youtube.com/watch?v=dhZ5--R42AM
23:00 RFC8441 Bootstrapping Websockets HTTP/2 https://youtu.be/wLdxC9gesBs

Mar 21, 2021 • 16min
Why WebSockets over HTTP/2 (RFC8441) is Critical for Effective Load Balancing and Backend Scaling
In this video, I'll discuss RFC8441 bootstrapping WebSockets with HTTP/2 which I believe a critical protocol to allow WebSockets tunneling to scale on the backend. We will also discuss the current state of the art of Proxy and Backend Supports for this tech. Let us have a discussion.
0:00 Intro
3:00 WebSockets over HTTP/2
7:40 Proxy Supports
13:15 Browsers Supports
14:00 Summary
RFC 8441
Resources
RFC8441
https://tools.ietf.org/html/rfc8441#section-4
nginx support
https://trac.nginx.org/nginx/ticket/1992
haproxy support
https://github.com/haproxy/haproxy/issues/162
Chrome support
https://www.chromestatus.com/feature/6251293127475200
Firefox support
https://bugzilla.mozilla.org/show_bug.cgi?id=1434137
envoy support
https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/http/upgrades
Support my work on PayPal
https://bit.ly/33ENps4
Become a Member on YouTube
https://www.youtube.com/channel/UC_ML5xP23TOWKUcc-oAE_Eg/join
🧑🏫 Courses I Teach
https://husseinnasser.com/courses