Hi, I'm Panayiotis.
This is the space where I share my experiences and evolving thoughts on the craft of software engineering and the art of leading teams.
Welcome. Feel free to explore my writing.
Domain-Driven Design in Go: Designing Entities - What Works, What Breaks, and What’s Overkill
At first glance, defining an entity in Go seems simple—just a struct, right? Well, not quite.
3 Major Fallacies Engineers Make in Architecture Decisions
Over the past 10 years, I’ve led and participated in numerous architecture designs, learning a lot from my mistakes and observations.
8 Tips for Pragmatic Technical Decision-Making in Fast-Paced Environments
This blog post explores the engineering decision-making challenges in fast-paced development environments, the importance of maintaining technical agility, and presents a framework to make balanced technical decisions that enable consistent velocity and quality.
A systematic approach to Technical Requirement Analysis
This article describes a methodical way of approaching Technical Requirement Analysis that includes a list of steps that help in clarifying ambiguity and preventing unexpected issues before an engineering team jumps into the design phase.
Outbox pattern - Why, How and Implementation Challenges
This article presents the outbox pattern, a communication/messaging pattern used in event-driven distributed systems that allows executing database operations and reliably publishing messages.
Clean Architecture in Go [2024 Updated]
❇️ This post and the respective repository was updated in August 2024 to reflect a simplified infra layering approach and more accurate terminology