© 2023 Hashnode
#software-design
When I first heard about software architecture, I was intrigued. What was this mysterious and elusive concept that seemed to be so important for software development? How did it relate to software des…
A month ago We start a new project in my company which is a logistics company and the new project is to build a fulfillment system to be running in our fulfillment center in Egypt and Saudi Arabia. As a junior backend developer, I used to w…
Just finished “A Philosophy of Software Design” by John Ousterhout. Some thoughts from the book mixed with mine ones. Software design is to reduce software complexity. If the solution/design doesn't reduce the complexity, then don't use it…
Introduction Go provides us great and convenient ways to write concurrent programs with high performance to execute tasks concurrently (perhaps in parallel if the program is run on a machine with mult…
Deep Dive into Architecture Patterns. This Post is focused on understanding different technology stacks and their usage. This might very well be tangential to the idea of patterns, but I feel it is s…
Node.js is a popular runtime environment for developing scalable, high-performance web applications. It uses an event-driven, non-blocking I/O model that allows for building real-time, data-intensive …
Kubernetes is a popular open-source container orchestration platform that enables developers to automate the deployment, scaling, and management of containerized applications. Kubernetes is designed t…
As a senior software engineer with experience in building highly scalable software systems, design patterns play a crucial role in my day-to-day work. These are the reusable solutions to commonly occu…
As a developer, you have probably encountered situations where you need to solve complex problems while also keeping your code organized, easy to maintain, and reusable. This is where design patterns …
Separation of concerns. Separation of concerns is a software design principle that suggests that a software system should be divided into distinct, independent components, with each component handling a specific aspect of the system's funct…