AHAhmed Hassaninrandom-programming-insights.hashnode.dev·Jan 7 · 4 min readWhen NOT to use Object-Oriented Programming (OOP)TL;DRObject-Oriented Programming (OOP) is great for maintaining state and structuring enterprise or GUI applications, but it’s not always necessary. For tasks involving simple transformations, computations, or side-effects (e.g., file parsing), consi...00
AHAhmed Hassaninrandom-programming-insights.hashnode.dev·Dec 12, 2025 · 7 min readTreat Special cases explicitly but uniformlyRecently, I came across an article by Martin Fowler about modeling a Range, which is a great example of enriching our domain with Value Objects. The article discussed how much we can benefit from that Type, making our code easier and more importantly...00
AHAhmed Hassaninrandom-programming-insights.hashnode.dev·Nov 22, 2025 · 6 min readMaking Illegal States Unrepresentable: Type-Driven Domain ModelingOne of my biggest concerns with dynamically typed languages is that they postpone errors to runtime, which is of course not ideal. However, I want to discuss something different today: how we can reduce runtime errors even in statically typed languag...00
AHAhmed Hassaninrandom-programming-insights.hashnode.dev·Nov 9, 2025 · 4 min readHow Rust and C++ Standard Libraries Handle Return Values: Position vs. ReferenceRecently I have been experimenting with how Rust handles things differently from the C++ point of view and it is in my mind the first language introducing something new for a while (The borrow checker). Anyways, one of the most important things in an...00