I’ve spent 30 years building software and the last 15 years building the teams that build software.

I started coding professionally in 1995. Six database platforms, eight programming languages, a dozen teams across fintech, edtech, insurtech, and enterprise SaaS. I’ve been the developer, the architect, the tech lead, and the manager. I’ve shipped software at startups and inside Fortune 500s.
Today I’m an engineering manager at DRW in Chicago, leading a team of engineers. I’m also pursuing a PhD in Organizational Psychology at Liberty University, researching how people respond to challenge and change at work.
Why I do this work
A few years into management, I noticed a pattern. Some engineers thrived when I pushed them. Others shut down completely. Same challenge, opposite reactions.
I spent years frustrated by that gap. Then I decided to study it.
My dissertation research focuses on how anxiety shapes the way people respond to challenging leaders. It’s personal. I was the challenging leader. I needed to understand why my approach worked for some people and failed others.
That research, combined with 30 years of building software and leading teams, is the foundation of everything I teach and coach.
What I believe
Most engineering delivery problems aren’t technical. They’re structural. Uncoordinated work intake, competing priorities, teams optimizing for activity instead of outcomes, and leaders stretched too thin to build the system they’re running inside of.
The fix isn’t a new framework or a better tool. It’s a practice. Small, daily, compounding delivery. I call it Delivering Daily.
Delivering Daily started as a software engineering discipline: thin slices, continuous integration, test-driven development, automated deployment. But it extends beyond code. It’s how I approach leadership, learning, health, and life. One small delivery, every day. Confidence compounds from there.
The practices
Six engineering practices make Delivering Daily possible:
- Story Slices. Complete, thin strands of end-to-end functionality. All the way to the user.
- Test-Driven Development. Write the test first. Make it pass. Squeeze out edge cases. Ship with confidence.
- Automated Tests. Behavior verification that runs every time, without human intervention.
- Acceptance Tests. Full-system validation that proves the feature works as intended.
- Automated Deployment. One command. One button. No heroes.
- Feature Flags. Decouple deployment from release. Ship code that isn’t active yet. Turn it on when you’re ready.
These aren’t new. They’re proven. And most teams use some but not all. Delivering Daily requires all six working together.
Beyond the day job
I’m building Delivering Daily into a resource for engineering leaders who want to ship better software and grow stronger teams.
I write about delivery practices, engineering leadership, and the intersection of organizational psychology and software development on LinkedIn and on this blog. I coach individual engineering managers. I run workshops for teams. And I’m writing a book.
At some point, I’d also like to open a restaurant with a piano bar. But that’s a later chapter.
The personal stuff
I immigrated to the US from a small village when I was two. I’m raising three daughters. I once lost 50 pounds in six months by applying the same small-daily-delivery mindset to my health. I play piano, sing in my church choir, and will pick up a mic at any karaoke night without hesitation.
I say things in conversations that people remember years later, even though I’ve usually forgotten them by the next day. I’m working on holding onto more of those moments.
Work with me
If you lead an engineering team and want to deliver more reliably, or if you’re an engineering manager figuring out your next step, I’d enjoy the conversation.
Book a Free 15-Minute Intro Call