The cacophonies of distributed systems

If you have never heard about Deutsch + Gosling’s fallacies of distributed computing, you are missing out big time! I encourage you to check them out here. Those delusions are widely considered in the distributed systems field as some of the most painful assumptions any junior systems designer, or architect can make. I like to call them “career-limiting choices”.

When I first learned about these eight fallacies a few years ago, I decided I needed to keep them around. I wrote them in a piece of paper and taped it outside of my office. The piece of paper is still there, except that it now has eleven statements – I guess some random folks added a few more fallacies. 

Continue reading “The cacophonies of distributed systems”

Why the Microsoft Surface Duo is a big deal

In early October 2019, Microsoft borrowed a page from Apple’s keynote playbook and gave us a “one more thing” that nobody expected: a dual-screen Android-powered smartphone. Microsoft announced its return to the smartphone market with the Surface Duo (although they officially said “it’s not a smartphone, it’s a Surface”).

The reveal was surprising given that this is the first Android device ever produced by the software giant. It is not supposed to go on sale until late 2020, but the few minutes of footage that were shown mean a big deal for Microsoft. Here’s why.

A user receiving a phone call on the Surface Duo
Continue reading “Why the Microsoft Surface Duo is a big deal”

The Microservices Maestro

Something I really like about living in the city is the fact that it is made for the masses. Despite its many defects (the rain not being one), Seattle is architected to enable hundreds of thousands of people to go through their busy days. It has a transportation system that interconnects different areas, it mandates different land usage policies for parks, residences, commerces and schools, and it provides restricted parking zones. It is designed for walking (assuming you like hills), it provides easy access to hospitals and it is guarded by police and fire departments.

But Seattle wasn’t initially a big city, its growth is more of a work-in-progress kind of thing. Like many other cities including all-mighty New York, Seattle is constantly under development and re-planning so it can scale to support even more people. It needs more efficient transportation (think subway), bigger highways, more parking and more recreational areas and residential zones.

The similarities between city planning and software engineering are fascinating to me, they are well described by Sam Newman in his “Building Microservices” book. Just like cities started as small towns, most services started as simple servers sitting under someone’s desk, and processing a few hundred requests per day. Given some time and if the idea is right, a service may become popular —that’s a great thing to happen except that the challenge of increasing demand quickly turns into a problem of dealing with higher customer expectations. This is similar to how we expect better transportation and more efficient police enforcement when a town evolves into a city.

Continue reading “The Microservices Maestro”

How Disney+ and Prime Video will dominate the streaming wars

It’s the year 2030, and your family is getting ready to watch a movie on a Saturday night. You turn on the TV and pause to think which service you should use: Disney+, Prime Video or Netflix. You don’t have any more streaming services. You end up settling for “Avengers 7” on Disney+, a family favorite. Popcorn is ready.

Continue reading “How Disney+ and Prime Video will dominate the streaming wars”

Do you have a terrible software development manager or a great one?

At Amazon and other tech companies, interview candidates get a lunch break in between their on-site interviews, and a lunch buddy gets assigned to accompany them. This way they can ask any questions they have about the team, the position they are applying to, or anything else that might help them relax. I love acting as lunch buddy because I feel energized interacting with candidates in such an informal setting. This past week, one candidate asked me a very interesting question during our lunch: what do you think makes a good engineering manager?

Continue reading “Do you have a terrible software development manager or a great one?”

Product management and the art of focusing on what matters

As a product manager, it is critical to have a meaningful roadmap with a backlog of work. Being able to ideate and constantly iterate makes our products better. However, it is critical that we are able to find which of our ideas are going to be the most impactful ones. Over the past year, my team has been working on refining how we approach this and found some things work better than others. The following are some of the things we found really useful.

1.     Understand the goal – the first thing you must do is to really understand what is the goal you and the business are trying to achieve. If there is any misalignment you must align before continuing. It was amazing how many times we went and implemented things where the goal was not understood, or it was misaligned. Having understood this from the beginning would have saved us a lot of time and resources. Understanding the goal will take you to different paths, for example, a goal of driving adoption will lead you to do different things than driving for revenue or usage. If you do not understand this, you will cycle and leave things to chance.

Continue reading “Product management and the art of focusing on what matters”

4 changes the Nintendo Switch desperately needs

When Nintendo released the Switch on March 2017, it became an instant sensation. Supply constraints made getting a console difficult, and the problem lasted months. When I finally got mine, I was impressed with its versatility; easy to use, powerful, compact, and fun!

Now, over two years after the Switch launch day, the console’s growth is starting to slow down. Nintendo has been focused on expanding its use cases with experiments like Labo, but hasn’t updated any part of the console.

Continue reading “4 changes the Nintendo Switch desperately needs”

Microsoft’s digital shelf is a (messy) competitor of Amazon Go

Almost a year ago, Amazon unveiled in Seattle the first store offering no checkout lines, no cashiers, and almost no human interaction: Amazon Go. I reviewed the store the very first day it opened and I wrote about my experience and the many tests I did on that first visit. I called it “the future of retail” on my review.

Since that chilling Seattle night in January, Amazon opened a few more Go stores across the U.S. and even started experimenting with a smaller fully-unattended version. Other industry players have also been making progress, and when Microsoft and Kroger announced that they were testing a futuristic grocery store, I knew I had to try it.

Kroger’s new digital shelf, powered by Microsoft’s technology.
Continue reading “Microsoft’s digital shelf is a (messy) competitor of Amazon Go”