top of page


The AI Era Demands We Return to Solid Software Engineering
AI is rewriting the rules of software development — but without solid engineering, it's building on sand. This article explores why clean architecture, explicit contracts, and disciplined structure are more important than ever in the age of intelligent tools. Clarity isn’t a luxury — it’s how we collaborate with machines.


Code Rules: #06: Keep Constructors Boring
Most bugs don’t start in methods — they start in constructors trying to do too much. Discover why logic-free constructors lead to better architecture, cleaner tests, and code that scales with humans and AI.
Mateusz Roguski
May 35 min read


Code Rule: #05: Utility Classes Are Not Your Friend
Utility classes seem harmless — a fast way to reuse logic and keep code tidy. But behind that convenience lies a hidden threat to your architecture. In this article, discover why Utility Classes Are Not Your Friend, which design principles they break, and how to build better, more maintainable systems instead.
Mateusz Roguski
Apr 265 min read


Code Rule #04: Prefer String Formatting over Concatenation
Discover why string concatenation with + or . creates messy, error-prone code — and how sprintf-style formatting leads to cleaner, safer, and more maintainable software. From readability to AI assistance, here's why you should prefer string formatting over concatenation.
Mateusz Roguski
Apr 248 min read


Code Rule #03: Be either declared final or abstract
In modern OOP, every class is a decision. Should it be reused? Extended? Or locked down? This article introduces a simple but powerful rule: every class should be either final or abstract — never left open by accident. You'll learn why this matters for architectural clarity, how different languages support it, what design patterns and principles it promotes, and how it even improves AI-assisted development. A must-read for developers who value clean boundaries, safe code, and
Mateusz Roguski
Apr 197 min read


Code Rule #02: Annotations Are Not Architecture
Annotations are convenient — but convenience is not architecture. In this article, we explore 10 hidden drawbacks of overusing annotations and attributes, how they break core design principles, and what to do instead to build systems that are clear, testable, and AI-friendly.
Mateusz Roguski
Apr 188 min read


Code Rule #01: Avoid private methods
Private methods might feel clean, but they often hide complexity, block reuse, and break testability. In this post, we explore why you should avoid private methods — and what to do instead for clearer, more maintainable, AI-friendly code.
Mateusz Roguski
Apr 1810 min read
bottom of page