Amr Saeed

I'm a software engineer who's passionate about building complex enterprise applications. You can consider me as a system design and architecture addict. I've experience working with different back-end, front-end, and DevOps technologies.

Symmetric vs. Asymmetric Encryption

In the past, when two persons wanted to send messages to each other in a secure way, they resorted to something called Symmetric Encryption. Symmetric encryption is a type of encryption that uses one secret key to encrypt and decrypt messages. Hence, the two parties must have this key to communicate. ...

How to Choose Your First Programming Language?

One of the questions that are frequently asked by new programmers is:

There are tons of programming languages, how to make sure I am starting with the most appropriate one? ...

SOLID Principles: Liskov Substitution

You know, when I heard the name of the Liskov Substitution Principle for the first time, I thought it would be the most difficult one in SOLID principles. The principle’s name sounded very strange to me. I judged the book by its cover, and I convinced myself that I wouldn’t grasp it. Eventually, it turned out that it was one of the easiest and straight forward principles in SOLID principles. ...

SOLID Principles: Open Closed

Now it’s the time to start another journey with the second SOLID principle, the Open-Closed.

Open-Closed principle states:

“Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification”

What does that even mean? How could a software entity be opened and closed at the same time! ...

SOLID Principles: Single Responsibility

If you are a passionate developer who’s interested in learning how to write high-quality software solutions, then you came into the right place, my friend.

One of the most common and effective software engineering principles is SOLID principles introduced by Robert C. Martin who is known as Uncle Bob. They are intended to make software designs more understandable, flexible, and maintainable.

SOLID is an acronym for 5 design principles: ...