The Backend Engineering Show with Hussein Nasser artwork

The Backend Engineering Show with Hussein Nasser

535 episodes - English - Latest episode: about 2 months ago - ★★★★★ - 5 ratings

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

Technology
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 MB

This 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 MB

ZeroMQ 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 MB

Discussing 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 MB

Google 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 MB

TCP 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 MB

In 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 MB

In 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 MB

Article: 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 MB

In 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 MB

In 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 MB

In 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 MB

We 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 MB

In 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 MB

Sharing 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 MB

in 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 MB

Understand 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 MB

In 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 MB

In 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 MB

In 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 MB

In 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 MB

In 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 MB

Metroexpress 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 MB

In 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 MB

Algorithms & 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 MB

In 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 MB

Message 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 MB

In 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 MB

In 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 MB

Database 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 MB

In 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 MB

Creating a software design is an art here is why 

What makes a good Software Tester?

April 22, 2020 20:53 - 11 minutes - 7.81 MB

Software 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 MB

JSON 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 MB

In 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 MB

In 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 MB

WhatsApp 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 MB

In 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 MB

In 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 MB

A 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 MB

In 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 MB

On-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 MB

Lazy 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 MB

In 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 MB

THIS 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 MB

Firefox 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 MB

Copy 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 MB

New 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 MB

In 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 MB

FireFox 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 MB

In 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.

Twitter Mentions

@msft365status 2 Episodes
@hnasr 2 Episodes
@kezstew 1 Episode
@googlecloud 1 Episode
@lukasstefanko 1 Episode
@thebumblesec 1 Episode
@sleevi_ 1 Episode
@init_string 1 Episode
@lambdafu 1 Episode
@cramforce 1 Episode
@olesovhcom 1 Episode
@fastly 1 Episode
@jaffathecake 1 Episode
@xdavidhu 1 Episode
@therealrevk 1 Episode