Hi, I’m Panayiotis.
I write about the parts of software engineering that sit between code, people, and judgment - how we make decisions, weigh tradeoffs, and design things that hold up, whether that’s an architecture or a team.
Refreshing My Writing Journey
In August 2021, I published my first “Hello World” blog post. My goal was to share the valuable lessons I’ve learned and experienced with the community, while also documenting my journey and deepening my understanding of the topics I write about.
5 Lessons That Transformed How I Approach Execution as an Engineering Manager
In this blog post, I’m diving into execution; arguably the most crucial skill in engineering management because it’s all about delivering the results that drive your company forward.
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.
Feedback loops in software engineering
In this blog post, I write about the power of feedback loops and the essential characteristics of the ideal feedback loop.
Implementing a simple, generic mediator pattern in go
This article presents a simple implementation of a generic mediator in Go.
Software Documentation - Value, Misconceptions, Common Pitfalls, and Essentials
This article explores the value of software documentation, a few misconceptions about the need for documentation, and some common pitfalls we fall into when we document software.
Implementing the Outbox pattern in go
This article presents the design and implementation of the outbox pattern in go.
Software Engineering Philosophy: Tradeoffs and Quality
This post talks about software engineering philosophy; the list and priorities of the fundamental values we, software engineers, use to decide how to approach tradeoffs in software engineering problems.