For over two decades, I’ve been exploring what makes software engineering and product teams tick and how to position them for success. I've studied what qualities high-performing teams share and what allows them to deliver software that delights customers, achieves company goals, and is sustainable. This wasn't an academic pursuit but rather a necessity that came along with my engineering leadership roles.

I've been fortunate to have had multiple opportunities to be in leadership roles at different companies, apply what I've learned, and drive dramatic team growth and productivity.  Given my success and what I've learned along the way has compelled to write about these experiences as a way to solidify my thinking, give back to the software development community, and, with some luck, spark some conversation around how to continue to move the practice forward or inspire others.

In my posts on this blog, I want to explore topics that include agile, servant leadership, developer experience, continuous improvement, setting expectations, and, possibly most importantly, building culture and trust. I’m intrigued by the current rise of Artificial Intelligence, not for its potential impacts on society but more specifically for its possible impacts on the software development industry, pros and cons so I may write about these topics as well.

Most of my career has been focused on the success of small teams of less than 100 people. Because of this, my insights may be most applicable to teams of that size or smaller. However, I’d like to think that much of what I’ll write about would be scalable to larger teams but might have to be adapted.