Home
Adham Salama
Cancel

Getting Real-time Database updates using PostgreSQL's LISTEN and NOTIFY

I recently discovered than PostgreSQL supports alerting clients when “something” happens, kind of like a message queue, using 2 commands, NOTIFY and LISTEN. Here’s the description of the NOTIFY co...

I built a Kindle Clippings App

I bought an Amazon Kindle last year and absolutely loved it; I read more tech books last year than I did in my life. I sent the some of the books to my Kindle using Amazon’s Send To Kindle app, an...

Why are Kafka messages still on the topic after the retention time has expired?

Kafka doesn’t neccessarily delete messages after retention time passed. I encountered this issue and it took me a couple of hours until I discovered the root cause, explained in the following arti...

How Kubernetes runs resources

How Kubernetes runs resources I am reading Marko Lukša’s Kubernetes in Action book (first edition), and it explains well how a resource (Deployment, for example) is created in Kubernetes. Control ...

How to use PostgreSQL arrays

How to use PostgreSQL arrays In this small article, I am going to show you how to use arrays in PostgreSQL. PostgreSQL has a built-in array type. PostgreSQL allows columns of a table to be de...

Tips To Improve TCP Performance

Tips To Improve TCP Performance I’ve started reading High Performance Browser Networking book and found some useful tips about optimizing the TCP performance at the end of chapter 2, Building Bloc...

Distroless Images

What Are Distroless Images? Distroless images are docker images that contain only your application and its runtime dependencies. They do not contain package managers, shells, or any other programs...

Joining SQL tables on a JSON array

Joining SQL tables on a JSON array How to join PostgreSQL tables on a JSON array of ids. Joining tables is a common SQL operation that allows you to combine data from two or more tables into a si...

Improve PostgreSQL query performance by utilizing an index-only scan

Indexes in PostgreSQL All indexes in PostgreSQL are secondary indexes, meaning that each index is stored separately from the table’s main data area (the heap). This means that in an ordinary index...

Building a Task Runner In Python

In this article, I will talk about my most recent project, “Yasta”. Yasta is a modern task runner written in Python. 🚐 Yasta makes running and managing your tasks a breeze! 🌬️ Even though it’s w...