random-programming-insights.hashnode.devWhen 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...Jan 7·4 min read
random-programming-insights.hashnode.devTreat 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...Dec 12, 2025·7 min read
random-programming-insights.hashnode.devMaking 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...Nov 22, 2025·6 min read
random-programming-insights.hashnode.devHow 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...Nov 9, 2025·4 min read