![The Backend Engineering Show with Hussein Nasser artwork](https://is1-ssl.mzstatic.com/image/thumb/Podcasts113/v4/cd/d5/bb/cdd5bbe4-0e12-9615-1bd5-6f578f2e6875/mza_5436295260688338257.jpg/100x100bb.jpg)
The Backend Engineering Show with Hussein Nasser
535 episodes - English - Latest episode: about 2 months ago - ★★★★★ - 5 ratingsWelcome 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
Homepage Apple Podcasts Google Podcasts Overcast Castro Pocket Casts RSS feed
Episodes
Have a Database User for each Express Route - Best Practices for Backend Application with Postgres
July 06, 2020 22:55 - 6 minutes - 4.73 MBThis is a question from one of you guys that I thought I'd answer in its own video since its loaded. Q/A - Shark Beak I currently have the same setup for my side project. What do you think about having a 'create table if not exist' running on startup that creates this table? Good/bad? It is always a good idea to have a specific database user for each route with specific permissions and use connection pooling as much as possible.
ZeroMQ
July 05, 2020 15:31 - 29 minutes - 20.5 MBZeroMQ is an Open Source Messaging Library designed for a high-performance asynchronous messaging library. In this video I discuss this tech and build a simple queue with this tech 0:00 Intro 1:48 What is ZeroMQ? 4:48 Messaging Patterns 6:42 Socket Types 8:55 Simple Queue 11:00 Code 23:20 ZeroMQ Pros & Cons 29:30 Summary Source Code https://github.com/hnasr/javascript_playground/tree/master/zeromq-simplequeue Resources https://github.com/booksbyus/zguide/tree/master/examples/Node...
Discussing Layer 7 Reverse Proxy D=DOS Mitigation (Security Now Video by Steve Gibson )
July 02, 2020 20:56 - 14 minutes - 9.73 MBDiscussing Layer 7 Reverse Proxy D=DOS Mitigation (Security Now Video by Steve Gibson )
Google Chrome and Firefox to Join Apple’s Safari in One Year Certificate Validity (My opinion)
July 02, 2020 16:29 - 14 minutes - 9.67 MBGoogle Chrome and Firefox to Join Apple’s Safari in One Year Certificate Validity (My opinion)
What is TCP Fast Open and how can it speeds up Web Application
June 30, 2020 23:47 - 12 minutes - 7.14 MBTCP Fast Open Spec https://tools.ietf.org/html/rfc7413#section-1
What is TCP Slow Start and how Does it affect your Web Application Performance?
June 30, 2020 21:11 - 11 minutes - 7.99 MBIn this video I discuss what is the TCP Slow Start and its effect on performance of backend applications, proxies and even frontend applications.
Why you can’t run an unencrypted HTTP/2 Server on Port 80 - Protocol Ossification Explained
June 30, 2020 17:27 - 9 minutes - 6.38 MBIn this video, I explain why we can't run unencrypted HTTP/2 or HTTP/3 without enabling TLS. This is because of Protocol Ossification.
Why Turning on HTTP/2 Was a Mistake (My opinion on the lucidchart article)
June 28, 2020 18:56 - 15 minutes - 8.64 MBArticle: Why Turning on HTTP/2 Was a Mistake - Lucidchart - https://www.lucidchart.com/techblog/2019/04/10/why-turning-on-http2-was-a-mistake/ In this video I discuss this article and my opinion. That is not a limitation of HTTP/2 but of the application that couldn't handle the request. It is like driving a volvo all your life and then switching to a Ferrari and saying it was a mistake because its too fast. I disagree with the solutions of throttling the LB and I think the app should eithe...
What Recruiters really look for in a Backend Engineer? (Unpopular opinion)
June 19, 2020 23:24 - 25 minutes - 17.6 MBIn this video I have a conversation with you on how we one break it into backend engineering answer most of your questions, what should you write in a CV, what recruiters expect for backend engineers etc.. Question: Hey Hussein, I hope you are doing well, Are there any tips or tricks I can do to make it easier to break into the industry as a back-end developer? i mean what are recruiters looking for in a CV? i would be glad if you made a video about that.
Multicast DNS
June 17, 2020 14:43 - 6 minutes - 4.73 MBIn this video I discuss multicast DNS. Wikipedia defines multicast dns In computer networking, the multicast DNS (mDNS) protocol resolves hostnames to IP addresses within small networks that do not include a local name server. 0:00 Intro 0:30 DNS Explained in LAN 4:00 Multicast DNS
Overengineering in Software
June 17, 2020 02:36 - 18 minutes - 12.8 MBIn this video, I explain the different cases where we overengineer software especially in two pieces, software code, and system design and architecture. Chapters 0:00 Intro 1:45 OverEngineering in Software Development 7:15 OverEngineering System Design
Can your ISP block you from Watching A Single YouTube Video?
June 07, 2020 00:48 - 11 minutes - 6.67 MBWe know ISP can block you from going to YouTube all together but can they block you from watching a single youtube video? I discuss that in this video Stay Awesome, Hussein
What Caused Stripe and Ruku to stop working on May 30th 2020? Expired Root Certificate Bug Explained
June 02, 2020 14:08 - 8 minutes - 6 MBIn this video I explain what happened to services such as stripe & roku which failed to establish TLS sessions because the ROOT certificate AddTrust External CA Root has expired. This is a bug in openSSL and other software the perform this kind of validation. I explain what happened in details.. Resources https://twitter.com/sleevi_/status/1266647545675210753 https://tools.ietf.org/html/rfc4158 https://ohdear.app/blog/resolving-the-addtrust-external-ca-root-certificate-expiration
MultiThreading and MultiProcessing over a Single TCP Connection, Good Idea?
May 31, 2020 23:00 - 9 minutes - 5.17 MBSharing a Single TCP Connection whether this is HTTP, WebSockets or just RAW TCP protocol between multi-threading or multi-processes application is bound to cause bad undesirable effects. I explain this in this video and give example of how QUIC & HTTP/2 have solved this problem. Pooling 5:00 QUICK Database 6:30 HTTP/2 Playlist 7:00
How Does Database Store Tables on Disk? Explained both SSD & HDD
May 30, 2020 16:00 - 18 minutes - 10.8 MBin this video I explain how database systems store their data on Disk both f from SSD (solid-state drives) and HDD (HarD disk drive). There are many factors that go into that discussion so I tried to cover the high level here. Reseources https://www.extremetech.com/extreme/210492-extremetech-explains-how-do-ssds-work https://www.percona.com/blog/2019/12/18/give-love-to-your-ssds-reduce-innodb_io_capacity_max/
Understand Fundamentals not Tools (e.g. WebSockets vs Socket.io, Javascript vs React, Python vs Django)
May 26, 2020 18:19 - 4 minutes - 2.71 MBUnderstand Fundamentals not Tools (e.g. WebSockets vs Socket.io, Javascript vs React, Python vs Django)
How to Spot Good Software Documentations from Really Bad one?
May 25, 2020 19:54 - 12 minutes - 7.04 MBIn this video I discuss all about software documentation.Good doc from bad doc and how to differentiate and is documentation the only source of learning about a particular tech?
7 Tips To Optimize Your Backend API (Without Caching)
May 24, 2020 02:19 - 7 minutes - 4.46 MBIn this podcast I discuss 7 Tips To Optimize Your Backend API (Without Caching) 1) The serialization representation (XML/JSON, pbf) 0:40 2) Preheating connections 3) H1 vs H2 4)TCP meltdown (big distance) 5) Proxies 6) large payload (select * ) 7) Client side processing (transfomring the work)
10 FrontEnd Performance Tips To Improve Your Application (Any Programming Language)
May 20, 2020 21:43 - 15 minutes - 10.3 MBIn this video, I would like to discuss 10 performance tweaks and tips that you can apply to your frontend application to improve its performance and efficiency. These tips are applicable to any programming language on Web, mobile, or desktop application. Chapters 0:00 Intro 0:40 Optimistic queries 1:57 Paging 3:00 Lazy Loading 4:00 Request what you Need 6:53 Connection State 10:00 LRU Cache 11:10 Group Notifications 12:30 Avoid Expensive Queries Even At Expense of Bad UX 14:00 Design your U...
Agile vs Waterfall Software Development Methodology Explained
May 19, 2020 04:20 - 15 minutes - 10.8 MBIn this video I explain the difference between Agile & Water, the pros & cons and more. Chapters 0:00 Intro 1:00 Waterfall 5:00 Agile
How WebSockets Work with HTTP/2 (RFC8441 Explained)
May 13, 2020 01:10 - 8 minutes - 4.95 MBIn this video I explain how WebSockets work in the new HTTP/2 protocol. This is explained in the Bootstrapping WebSockets with HTTP/2 in RFC8441 https://tools.ietf.org/html/rfc8441 https://link.medium.com/v5sB9nbUp6 1:00 HTTP2 5:50 HTTP/2 limitations
Machine Learning Occupancy Detection System being deployed in California
May 11, 2020 14:10 - 10 minutes - 7.28 MBMetroexpress lane is implementing a Machine Learning Occupancy Detection System which I found interesting. In this video I discuss machine learning, supervised learning, labeling and much more.
What is a Multitenancy Architecture and Why Is it becoming popular?
May 09, 2020 22:58 - 8 minutes - 4.73 MBIn this video I explain the multi-tenancy architecture. The basic idea is to have a single instance of your application to serve multiple tenants or customers and the properties are this. This is as opposed to isolated or dedicated infrastructure. Shared Instance One database hosting multiple customers Isolation at the application level Can be multi-processes and multi-instances as long as they are pooled Stateless Tags Multitenancy, software Multitenancy, Multitenancy explained, Mult...
How Important are algorithm and data structures in backend engineering?
May 09, 2020 20:46 - 13 minutes - 9.27 MBAlgorithms & Data Structures are critical to Backend Engineering however it really depends on what kind of application and infrastructure you are building. In this video I want to go through the following 1 Backend Engineers are two types - Integrating Existing Backend - Core Backend Example Building a CRUD API? Online Cinema system, URL shortener, You will pick up a database and write your logic Building a social network? * are you gonna be integrator use a ready made graph database? ...
My Preferred Method of Learning Backend Engineering Technologies Fast
May 05, 2020 16:42 - 11 minutes - 6.67 MBIn this video I want to talk about my preferred method of learning backend engineering technologies, I prefer podcasts and youtube videos some people prefer books. My First Programming Book My Problem with Learning in Books My Preferred Method of learning (Podcasts) YouTube Videos Problem is Biased .. Details in WIkipedia then Recommended Podcasts https://softwareengineeringdaily.com/ https://www.dataengineeringpodcast.com/ https://changelog.com/podcast Recommended YouTube Channel...
What is a Message Queue and When should you Queues?
May 01, 2020 20:20 - 13 minutes - 8.98 MBMessage Queues system like RabbitMQ and Kafka are amazing technologies but when should you actually use a message queue? I discuss this in this video.
RabbitMQ Channels, HTTP/2 Streams and How QUIC can fix the limitation Message Queues
May 01, 2020 14:36 - 9 minutes - 6.74 MBIn this video I talk about RabbitMQ Channels compared to HTTP/2 Streams and how QUIC helps mitigate some of the major limitations in Channels and Streams. Chapters 0:00 Intro 0:10 RabbitMQ Channels 3:10 HTTP/2 Streams 6:00 How QUIC Helps
Can QUIC Protocol be used as in Databases ? Web Application Database Pooling, head of line blocking and more
April 29, 2020 21:00 - 12 minutes - 8.71 MBIn this video I discuss why QUIC will make a great communication protocol for databases and how it solves a critical problem with stateless web applications. Web applications uses database connection pooling to establish database connections on the backend. But that creates other sorts of problems. Timecodes 0:00 Intro 0:20 Database Communication Protocols 2:00 Problem with Sharing Database Connections 6:50 How QUIC streams can help Databases
When should you shard your database?
April 28, 2020 22:00 - 21 minutes - 12.2 MBDatabase Application level sharding is the process of splitting a table into multiple database instances in order to distribute the load. However, Sharding a database is an expensive operation (maintainability and overhead) and I suggest you do that only when you absolutely need to. That means when your single instance database can no longer serve queries with minimum latency. So I suggest you monitor that and only shard if necessary.. I rather do replication make master / backup and make re...
Advice for Junior backend engineers who just started new jobs
April 25, 2020 20:53 - 23 minutes - 16.1 MBIn this video I give some advice to junior backend engineers who just started their new jobs and feel overwhelmed. Backend engineering jobs can be overwhelming at the start, there are so much to learn, so much to read, documentation, tests, code in multiple programming languages. Here are some advice for Junior backend engineers. 0:00 Intro 1:20 Take your time 6:05 Stay hungry keep learning 8:36 Assume your collages know something you don’t 12:42 Don’t bad mouth other people code even i...
Why System Design and Architecture is an Art ?
April 23, 2020 15:09 - 2 minutes - 1.47 MBCreating a software design is an art here is why
What makes a good Software Tester?
April 22, 2020 20:53 - 11 minutes - 7.81 MBSoftware Testing is Art, In this video, I discuss what makes a Good Software Tester. How can you become a better software tester that people line up to give pick you? Organizations build software products. But the software is useless if it is filled with bugs. A bug discovered after the product is shipped costs the organization a lot of money. A bug that is discovered before shipping saves the organization time and resources. So organizations line up to find good software engineers that are...
JSON Web Token
April 19, 2020 23:36 - 57 minutes - 32.6 MBJSON Web Token (JWT, sometimes pronounced JOT) an internet standard for creating JSON-based access tokens that assert some number of claims. The tokens are signed either using a private secret or a public/private key. In this video I want to discuss the difference between JWT and Session Based Auth, will show examples with Node JS and Postgres. Finally I’ll discuss the pros and cons of JWT.
Main Difference between Asynchronous, Multithreading and Multiprocessing Programming
April 12, 2020 21:29 - 15 minutes - 10.7 MBIn this video I explain the main difference between asynchronous execution, multithreading and multiprocessing programming. There are advantages and disadvantages of each approach. Synchronous 0:30 Multithreading a process have many threads shared resources 3:20 Async io single thread 6:00 Multiprocessing 11:00 Threads are evil https://web.stanford.edu/~ouster/cgi-bin/papers/threads.pdf sync vs async, multithreading vs multiprocessing, multithreading async, threading
How End to End encryption work?
April 12, 2020 20:49 - 13 minutes - 9.52 MBIn this video I explain End to End encryption within the context of WhatsApp. I explain how encryption and TLS works then the problem of having a centerlized server decrypting the traffic, I then talk about how end to end encryption (e2e) can help mitgate that and finally I explain the problems with e2e encryption Classic Encryption Example 1:00 End to end encryption 3:25 Problem with E2E 7:30 - Trust? Fingerprints/CA (QR whatspp) encryption 00:30 encryption, e2e encryption, end to end...
WhatsApp Limits Messages that can be Forwarded
April 12, 2020 20:37 - 5 minutes - 3.59 MBWhatsApp Introduced long time a go Unlimited forwarding then limited Up to 5 times Double forwarded too many times (last year) Double forwarded messages can only be forwarded once or even none Forwarding feature end to end encryption Sent/delivered/read https://www.cnbc.com/2020/04/07/whatsapp-limits-message-forwards-to-combat-coronavirus-misinformation.html
Forward Proxy vs Reverse Proxy Explained
April 09, 2020 19:24 - 14 minutes - 13.1 MBIn this video, I explain the difference between a proxy and a reverse proxy. This is a refreshed version of the proxy video I made. What is a Proxy ? Proxy use cases - Logging - Anonymity - Geofencing - Caching - Block sites (office) - Enable Polyglot What is Reverse Proxy? Reverse Proxy Example Reverse Proxy Use Cases - Caching (Varnish) - Load Balancing - Ingress (/pics) - Canary Deployment Many types of proxy check it here Q and A * can we use proxy and reverse proxy togeth...
What is a Distributed Transaction in Microservices?
April 05, 2020 13:34 - 21 minutes - 14.7 MBIn this video I explore what is a distributed transaction but first I explain what is a transaction, then why we invented distributed transactions and finally discuss proposed solutions to implement distributed transactions Cards 2:40 ACID https://www.youtube.com/watch?v=pomxJOFVcQs 7:30 Microservices https://www.youtube.com/watch?v=T-m7ZFxeg1A Transactions 2:30 Compensating Edits 6:40 Atomic Clocks 11:50 Event Sourcing 13:30 Mini-Monolith 15:20 Resources https://www.youtube.com/watc...
Chrome follows FireFox steps - Rolling back SameSite cookie change
April 04, 2020 00:18 - 5 minutes - 3.64 MBA very necessary change and good step made by Google Chrome Team to rollback the same site cookie change Blog https://blog.chromium.org/2020/04/temporarily-rolling-back-samesite.html Firefox re-enables https://www.youtube.com/watch?v=sh3TPId35Ec SameSite Cookie Attribute https://www.youtube.com/watch?v=aUF2QCEudPo
Bloom Filters Explained
April 02, 2020 02:22 - 9 minutes - 6.39 MBIn this video I explain why we invented bloom filters and where you can use it to make your queries more efficent.
What is On Demand TLS?
March 30, 2020 12:58 - 14 minutes - 10.2 MBOn-Demand TLS is a new feature developed by Caddy Web Server that allows TLS certificate to be generated on the first request, I explain this tech and their pros and cons in this video.
Lazy Loading vs Eager Loading with Node JS & Express
March 29, 2020 23:50 - 8 minutes - 5.75 MBLazy Loading is a technique where a piece of data is being loaded when needed instead prior. This ensures Fast startup times but can delay requests. In this video I’ll show both Eager loading and the lazy loading with example Node JS
The good the bad and the ugly on gRPC
March 28, 2020 00:49 - 15 minutes - 10.9 MBIn this podcast I discuss the good, the bad and the ugly about gRPC. No technology is perfect.
This is why gRPC was invented
March 28, 2020 00:16 - 9 minutes - 6.21 MBTHIS IS MAIN reason gRPC was invented 8:40 -> 16:40 (8 minutes) In this video I discuss the reasoning and all the problems and limitations that lead to the invention of gRPC.
Firefox re-enables TLS 1.0 & TLS 1.1 to allow access to legacy websites hosting COVID19 information
March 25, 2020 22:09 - 4 minutes - 2.92 MBFirefox has disabled TLS 1.0 and TLS 1.1 to improve your website connections. Sites that don't support TLS version 1.2 will now show an error page. We reverted the change for an undetermined amount of time to better enable access to critical government sites sharing COVID19 information. https://www.youtube.com/watch?v=grVVuGnN9IE https://www.mozilla.org/en-US/firefox/74.0/releasenotes/ https://twitter.com/cramforce/status/1242515799215988737?s=21
Episode 141 - Software Chat - Copy and Paste Code, Tutorial Hell, Frontend Frameworks, GitHub Pull request Trolling and more
March 23, 2020 20:21 - 26 minutes - 15 MBCopy and Paste Code, Tutorial Hell, Frontend Frameworks, GitHub Pull request Trolling and more
Episode 140 - Software Chat - Learning at Home, Consistent Hashing, Empathy with Engineers and More
March 21, 2020 17:44 - 18 minutes - 12.8 MBNew software chat series let me know if you like it
Episode 139 - How to Become a Good Backend Engineer (Fundamentals)
March 19, 2020 13:19 - 26 minutes - 18.3 MBIn this video, I discuss the path of becoming a backend engineer through concepts and fundamentals. These are not tools 🧰 these are backend concepts and fundamentals technologies. - Communication Protocols 3:30 - TCP,UDP - QUIC - HTTP - WebSockets - gRPC - Web Servers 8:40 - How web servers work? - Dynamic vs Static Content - E-Tags - HTTP protocol - Database Engineering 11:00 - Relational vs NoSQL - ACID - Proxies (Reverse Proxies, Load balan...
Episode 138 - Firefox Implements DNS over HTTPS This is good but also might be bad
March 15, 2020 20:46 - 16 minutes - 11.3 MBFireFox DNS over HTTPS is a great step to a more secure web however it is absolutely useless without this ESNI. I also discuss doh in this video, esni and why this might not be a good idea https://blog.mozilla.org/blog/2020/02/25/firefox-continues-push-to-bring-dns-over-https-by-default-for-us-users/
Episode 137 - Active-Active vs Active-Passive Cluster Pros and Cons
March 15, 2020 19:41 - 11 minutes - 8.08 MBIn this video I want to talk over the active active active vs active passive cluster configuration for high availability. We will also explain the pros & cons of using an active-active cluster vs using an active-passive cluster.