Reliability at Scale – How to build graceful degradation into applications at massive scale

Posted Leave a commentPosted in Software Development, Travel

Everyone thinks their system is reliable until suddenly it isn’t. With a service oriented or microservice based architecture, it can be easy to overlook a single point of failure that can cause a massive cascading failure, quickie harming users and losing their trust. Ensuring that a single failure is handled gracefully is of paramount importance in a large scale distributed system, but that’s much easier said than done. I’ve worked for multiple companies building large […]

How to get ready for AWS Re:Invent

Posted Leave a commentPosted in Las Vegas, Software Development, Technology

With less than a month left until this year’s re:Invent, I wanted to share what I’ve learned about getting ready and making the most of it. This will be my third AWS re:Invent, and the first time I’m speaking. This year’s re:Invent is bigger than ever, and it could already be an overwhelming experience. With a full five days of workshops, sessions, talks, and events to explore, it’s best to prepare ahead of time.  These […]

Management isn’t just people engineering

Posted Leave a commentPosted in Management, Software Development, Technology

I recently read a blog post from, as is often the source of somewhat polarizing ideas in software engineering, and engineer on medium who argued that management was simply “human engineering”, after several years as both a software engineer and a manager, I can see some similarities, but certainly can’t agree. There’s so much more than just fine tuning processes and treating people and relationships than systems in management and I find this idea far […]

How I run my blog on AWS

Posted Leave a commentPosted in Software Development, Technology

One of the reasons it took me so long to actually start this blog – besides having the time to actually write for it – was that setting up a web server and keeping it up and running seemed like such an ordeal. I remember setting up a tomcat server back in college with a static IP that was an absolute nightmare. Thankfully, I discovered Amazon Web Services and realized how easy it can be to run […]

The 7 most important aspects of my Manager README

Posted Leave a commentPosted in Management, Software Development, Technology

A little while ago, I began managing a new team with a bunch of new team members reporting in to me. In order to help get them to know me better and understand the way I work, I decided to write a manager README. Inspired by some great engineering leadership READMEs I found online, I noted down my own values, priorities, and way of doing things so that my new team could quickly get a […]

The five mistakes I see teams new to Chaos Engineering make

Posted Leave a commentPosted in Management, Software Development, Technology

Chaos Engineering is taking over the world. Chaos Engineering provides a valuable framework and methodology to help teams better understand their complex systems and the behavior of them during real world events. It strives to help improve user experiences by validating assumptions about resiliency and detecting failures in systems before users experience these problems during a real issue. I love showing teams how to begin instituting Chaos Engineering in their organizations, but I tend to […]

Extreme Experimentation – How to minimize the feedback loop and deliver software constantly

Posted Leave a commentPosted in Management, Software Development, Technology

In order to outpace competitors, technology companies need to move faster in delivering features of value to their customers. Those who hit the market first often emerge as winners due to networking and first mover effects. While some companies can beat others with similar features based on size along, notably Instagram and Facebook, most companies need to maximize delivery speed to win. Methodologies like Agile or Extreme Programming seek to reduce development cycles with the […]

I am a force of Chaos: Why I practice Chaos Engineering to improve user experiences

Posted Leave a commentPosted in Software Development, Technology

As systems grow in size, they inherently grow in complexity. As complexity increases, systems eventually reach a point where no single individual can reasonably understand the entirety. At this point, when the interactions between components are unpredictable, the system becomes chaotic. This chaos can manifest in many ways including unintended retry storms, broken and degraded experiences for users, and often, cascading failures of an entire system. Rather than letting users discover this chaos, Chaos Engineering […]

Questions my mentees ask me

Posted Leave a commentPosted in Management, Software Development

I’ve been mentoring a few people who are interested in moving from an individual contributor to becoming a manager and they tend to have similar questions. Switching from working on individual work to managing a team is a massive transition, and one most companies don’t quite know how to manage. These people tend to be excellent performers at the individual level and are looking for new opportunities to grow and try something new, but the […]

Can Blockchain get kids to do their chores?

Posted Leave a commentPosted in Parenting, Software Development, Technology

Everyone is talking about Blockchain. As the technology that powers Bitcoin and other cryptocurrencies, the idea of a decentralized distributed secure ledger has struck a chord with those in a wide variety of industries. The secure and distributed nature of blockchain is being explored for usages in payments, legal contracts, and even health care. Chances are your bank is already dabbling in the technology. But the hardest challenge for blockchain yet might be getting kids […]