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.
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.
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.