Skip to main content
Ahmed Helaly

Ahmed Helaly

Crafting Systems That Scale

Practical notes on building backend systems that remain understandable under load, failure, and change. The library covers production Go, distributed systems, API design, databases, reliability, and software architecture.

Start with a series that matches the problem you are solving, or learn more about me.

Recent

Designing Bounded Worker Pools in Go
·596 words·3 mins· loading · loading
Go Go Concurrency Performance
Bound concurrency at the admission point so overload becomes visible and controllable.
Cancellation That Actually Propagates in Go
·611 words·3 mins· loading · loading
Go Go Concurrency Performance
A context is useful only when every blocking boundary observes it and cleanup has a clear owner.
Error Chains You Can Operate in Go
·603 words·3 mins· loading · loading
Go Go Concurrency Performance
Wrap errors for diagnosis, classify them for policy, and never make callers parse prose.
Graceful Shutdown Without Dropping Requests
·601 words·3 mins· loading · loading
Go Go Concurrency Performance
Shutdown is a protocol: stop admission, drain in-flight work, flush state, then release dependencies.
Choosing Pointers and Values in Go APIs
·603 words·3 mins· loading · loading
Go Go Concurrency Performance
Choose receiver and parameter semantics from ownership, mutability, and copy cost rather than habit.
Making Go HTTP Clients Production Ready
·599 words·3 mins· loading · loading
Go Go Concurrency Performance
Timeouts, connection reuse, response draining, and retry policy belong in the client design.
Table-Driven Tests That Stay Readable
·592 words·3 mins· loading · loading
Go Go Concurrency Performance
A good table captures behavior dimensions without hiding the arrange-act-assert story.
Race-Free In-Memory Caches in Go
·592 words·3 mins· loading · loading
Go Go Concurrency Performance
Correct cache synchronization must cover compound operations, expiry, and loader duplication.
When Channels Are the Wrong Abstraction
·602 words·3 mins· loading · loading
Go Go Concurrency Performance
Use channels for ownership transfer and coordination, not as a universal replacement for locks.
Building Backpressure Into Go Pipelines
·592 words·3 mins· loading · loading
Go Go Concurrency Performance
A pipeline without bounded queues and cancellation is an outage amplifier.
Profiling Go Services With pprof
·589 words·3 mins· loading · loading
Go Go Concurrency Performance
Profile the constrained resource under representative load before changing code.
Reducing Allocations in Hot Go Paths
·599 words·3 mins· loading · loading
Go Go Concurrency Performance
Allocation work starts with profiles and escape analysis, then targets lifetime and representation.