Why I chose a HP Windows laptop over a MacBook Pro

Posted Leave a commentPosted in Software Development, Technology

When I started my new job at Amazon, I had the option to switch laptops. I’d been using a MacBook Pro for the last 5 or 6 years, and decided it was time to go back to Windows. My first day, a brand new HP Elitebook awaited me, and though it’s only been a week, I’m quite happy with the decision. Though I miss some parts of the Mac, I’ve already found a ton of […]

The end of a chapter, but not the end. I’m moving over to Amazon

Posted Leave a commentPosted in Software Development, Technology

After nearly 7.5 years at Audible, I am moving over to Amazon NYC at the end of January. I’ll be joining the Supply Chain Optimization Technology group, leading a team using some pretty sophisticated Learning Machines – think Machine Learning, Deep Learning and more, as well as building on the latest Amazon technology. I’m super excited for it, but leaving Audible after the better part of a decade is incredibly bittersweet. I’m desperately going to […]

Where we’re going, we don’t need servers. Why Serverless is taking over the world

Posted Leave a commentPosted in Software Development, Technology

Serverless applications are quickly growing in popularity, taking over huge portions of new app development for tiny startups and massive enterprise organizations as well. If the buzz and excitement over new announcements and education on best practices for serverless at AWS reInvent this year is any indication, they will only grow in popularity as time progresses. With no management of servers to worry about, the infrastructure management that cloud providers take care of with serverless […]

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 […]