
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

May 5, 2020 • 12min
My Preferred Method of Learning Backend Engineering Technologies Fast
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 Channels
https://www.youtube.com/user/TechGuyWeb
https://www.youtube.com/user/99baddawg
https://www.youtube.com/channel/UCRPMAqdtSgd0Ipeef7iFsKw
https://www.youtube.com/channel/UCn1XnDWhsLS5URXTi5wtFTA

May 1, 2020 • 13min
What is a Message Queue and When should you Queues?
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.

May 1, 2020 • 10min
RabbitMQ Channels, HTTP/2 Streams and How QUIC can fix the limitation Message Queues
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

Apr 29, 2020 • 13min
Can QUIC Protocol be used as in Databases ? Web Application Database Pooling, head of line blocking and more
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

Apr 28, 2020 • 21min
When should you shard your database?
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 requests read from replica than Sharding just because it is easier.. good question... nice idea for a video
5:00 Partition horizontally
7:45 Replication (Master/backup) Scale reads
11:00 Scale writes by region
12:30 Sharding
16:40 Sharding in YouTube

Apr 25, 2020 • 23min
Advice for Junior backend engineers who just started new jobs
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 if its bad
17:19 Question everything

Apr 23, 2020 • 3min
Why System Design and Architecture is an Art ?
Creating a software design is an art here is why

Apr 22, 2020 • 11min
What makes a good Software Tester?
Qualities of a good software tester: understanding the system being tested, strong troubleshooting skills, finding unexpected bugs. Approaches to bug finding: investigating underlying cause, using proxies, identifying UX bugs. Importance of testing and how to excel: dig deeper into server and database, analyze CPU and database performance.

Apr 19, 2020 • 57min
JSON Web Token
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.

Apr 12, 2020 • 16min
Main Difference between Asynchronous, Multithreading and Multiprocessing Programming
This podcast explores the main differences between synchronous execution, multithreading, and multiprocessing programming. It discusses the advantages and disadvantages of each approach and touches on topics like thread blocking, asynchronous execution, thread safety, inter-process communication, and problem-solving among multiple processes.