Hi there 👋

I’m Saddam, a tech enthusiast and experienced software developer with over 10 years in the field. My programming journey started with QBASIC and C in college and has since evolved through languages like Visual Basic, Java, PHP, Rust and my current favorite, Golang. My expertise lies in building robust distributed systems using microservice architecture, adhering to SOLID principles and clean design. I specialize in Golang and PHP, focusing on creating scalable solutions with Docker, Kubernetes, and modern frameworks like Laravel, Chi and GoKit. My experience spans TDD and various messaging technologies like RabbitMQ, Kafka and Google Cloud Pub/Sub. I also bring strong skills in DBMS systems (MySQL, PostgreSQL, MongoDB) and infrastructure tools for designing fault-tolerant applications. Passionate about open-source and always learning, I strive to write elegant, high-performance code and contribute to projects that push the boundaries of software design.

Projects

1. WalletX.pro: a user-friendly finance πŸ’° app that helps users effortlessly track their income πŸ’΅, expenses, and budget. With extensive graphical πŸ“‰ representations of financial data, it enables easy viewing of daily, weekly, monthly, and yearly reportsβ€”all for free.

Open source contributions

GoJSONQ , Govalidator , Renderer , Docgen , Traffic , Task , Ubuntu live wallpaper

What does 𝐷𝑒𝑣ℝπ‘₯ mean?

𝐷𝑒𝑣ℝπ‘₯ combines β€œπ·π‘’π‘£β€ (developer) and β€œβ„žβ€ (symbol for prescriptions or solutions). 𝐷𝑒𝑣ℝπ‘₯.π‘–π‘œ signifies β€œprescriptions for developers,” offering targeted solutions, tools, and resources to improve coding skills, solve technical challenges, and refine software development practices πŸš€.

Thank you for taking the time, I appreciate your interest and look forward to sharing my tech journey and insights with you πŸ™‚. This website mirrors my original site: 𝐷𝑒𝑣ℝπ‘₯.π‘–π‘œ.

Scalability Essentials for APIs in High-Traffic Services

When developing APIs for services in a company with a large user base, scalability becomes a critical consideration. Scaling an API in production for such a company requires keeping certain fundamentals in mind. Today, I’ll discuss a few key points that you should also keep in mind when approaching this challenge. Here’s a breakdown of some key techniques and strategies you can use: API Optimizations Reduce Payload Size: Send only the necessary data in responses and avoid including unnecessary properties, as every byte contributes to network overhead, even if it’s just a single byte. ...

November 20, 2024 Β· 6 min Β· Saddam H

Handling Distributed Transactions: A Deep Dive into the Saga Pattern

In today’s world, scalability is a common challenge that most of us face when developing applications. To scale out and build easily manageable services, we often break down a system’s responsibilities into multiple microservices. In a microservices architecture, each service manages its own database, and the type of database can differ between services. This diversity complicates implementing a two-phase commit, and in many cases, services don’t always require strong consistency. ...

October 18, 2024 Β· 9 min Β· Saddam H

Mastering Microservices: Ensuring Data Consistency with the Outbox Pattern

In an e-commerce application, when a customer places an order, it is common to need to send an order_placed event to an event bus for further processing. A straightforward approach would be to make an entry in the order table and then publish the event synchronously. However, this raises significant concerns regarding the availability and reliability of the event bus. Message queue is unavailable while placing order For instance, what happens if the event bus is not available at the moment of publishing? In this case, one might consider rolling back the transaction in the order service to ensure that the order is not created without the corresponding event being sent. This rollback, however, introduces a delay in the user experience and creates a tight coupling between the order creation and event publishing processes. ...

September 28, 2024 Β· 5 min Β· Saddam H

Mastering Microservices: The Battle Between Choreography & Orchestration

In Choreography, dancers perform independently based on cues or signals from each other, without a central leader directing them. Each dancer knows their part and reacts to the movements or signals from others, much like how microservices communicate through events. The performance unfolds naturally as each dancer responds to the rhythm and flow. Dancers performing choreography in sync with the music In Orchestration, however, a conductor leads the musicians, directing them when to start, stop, or change tempo. The conductor has full control over the entire performance, much like how an orchestrator in microservices coordinates each service, managing the flow and ensuring everything happens in the right sequence. ...

September 24, 2024 Β· 6 min Β· Saddam H