The microservices limbo

Teams meet, discuss, and decide to have a microservices strategy.

They start migrating the monolithic system to microservices, along the way they decide to build new features, for the sake of speed, those new features have to be built inside the monolithic system, and later be migrated to microservice.

A divide happens in teams, with half migrating to microservice and half adding more to the monolithic system. At one point, the team migrating to microservice is rushed to support more features into the microservices they just built without consideration of the bigger picture, after huge number of resources spent, they are back to square one, with a legacy monolithic system, and half cooked microservices that kept growing until they became other monolithic systems.

Then teams meet, discuss, and decide to have a microservices strategy.

Racetrack or Autobahn?

As I am still reading Chaos Monkeys, I came through this brilliant paragraph.

Even Facebook, whose ability to maintain a fast-moving, always-be-shipping culture well into corporate middle age was admirable and unique, was simply a German-style autobahn, not a racetrack. The days of a few engineers going rogue and launching Facebook Video despite Zuck’s wishes were long gone. Most vehicles moved at the speed limit, lots of trucks hogged the right lane, and a select few drivers traveled at full speed in the left lane (with no-speed-limit passes given out by Zuck alone, and anyone else who dared race ahead did so at peril to his or her career).

When people ask me what was the culture at booking.com, I used to say it is not a startup as they claim, but it is also not a corporate à la IBM or Oracle. It is something in the middle I couldn’t describe, until I read that paragraph. That’s it, “it was simply a German-style autobahn”. Teams are autonomous, but they can only move within the speed limits of their tracks, few teams had the green light to pursue new and bold ideas, as long as they are not far from the core (read about the stack fallacy).

This post is not to criticize but rather to draw a mental model of how to think about it. I am very grateful for the time I spent there. I learned so much and met many great people. I believe there are areas like SEM, conversion optimization, and pragmatic usage of data/machine learning, Booking.com is one of the best places on the planet to learn and work on these things (if you pass their tough interviews).

 

Tech’s Chinese Future

There is a lot going around the rhetorical of who is going to lead the next tech era, is it the US or China? (there is no Europe in this discussion). One of the balanced opinions on the matter is this post. It was tweeted earlier by Andrew Ng.

The tl;dr version is that AI research in China is mostly driven by a pressuring consumer need for AI powered solutions. For example typing Chinese on mobile is very hard, which drove companies to do research on alternative input methods such as voice. Another example mentions Chinese need to consume non Chinese content, which also drives innovation in machine translation.

China excels in certain aspects of AI in part because there’s a confluence of cultural, technological, economic and geographic market forces that make those aspects a higher priority in China.

….

I take that not as fear that China will come to dominate the AI arena and thus the world, but rather that Chinese companies are serving their consumers with cool products, and U.S. companies need to do the same—only with products that U.S. consumers actually want.

One thought I had recently was to learn Chinese*. There is no doubt in a not so far future, there will be huge interest in that part of the world and what it provides for tech. People who are able to understand what’s going on there will be of great value, since capital follows opportunities.

However, a counter-thought I also have is that China is a closed system, they have over a billion people, which gives them the ability to be self sufficient and not needing outsiders as much as US and Europe do. They are also a communist country, which while we always think of as a bad thing, but it has some benefits. They can get as many people as they want into computer science**, they can make programming mandatory in schools, and they can do it faster than their US counterparts***.

I believe China will be a big power player in the tech world, I am curious to see how this transformation will impact the west. Will everyone learn Chinese and try to go there, or the west to China will be like the middle east for tech giants, only used to market and sell whatever the dragon builds.

* Says the man who is 10 months in Germany and can’t finish a full sentence in German.

** Trust me on this one, I am from a country that decides how many people can get into engineering, medicine, and every other field. Communist/socialist/authoritarian systems can control the supply, and hence the demand for universities.

*** This argument isn’t new and doesn’t only apply to tech, for example think of the benefits of a social democracy (Europe) or a communist government on providing more inclusive healthcare compared to the US.

Facebook LOX

I am currently reading “Chaos Monkeys”, the story of a physics PhD graduate who worked for Goldman Sachs in New York, then founded a YC startup and sold it to twitter, before joining Facebook pre IPO as one of the handful product managers on the ads team. There is a lot to talk about in this book, but that’s for another post.

One of the surprising stories is that pre Facebook’s IPO, they were trying to increase revenues in any way possible, one idea was placing ads on the logout page, calling it the logout experience “LOX”. 

The growth team was against this, arguing it would threaten user growth, here is why.

In emerging markets at that time (2011), users didn’t own smartphones nor PCs, their way to access Facebook was to go to internet cafes, once they finish, they logout, leaving the PC with Facebook’s logout screen, the next user came, saw the page, and would sign up for Facebook, driving user growth.

Placing an ad on this page would threaten user growth by distracting those new entrants to the social media world. The two teams ended up agreeing to launch LOX for saturated Facebook markets such as the US, and not show it for yet to be blue (maximum Facebook penetration) countries such as Brazil and India.

I am not new to emerging market behaviors, I wrote earlier about Snapchat vs Instagram stories on slow internet connections, and more recently, one of the examples of developed markets taking decisions harming emerging ones is Uber’s recent redesign. 

Uber now forces users to put the destination address before requesting the ride. A country like Egypt has no addresses on the maps, no postal codes, and no building numbers. Add to this, people writing street names in different ways in Arabic (Mostafa vs Mustafa) results in different results, even with Uber using Google maps as the primary search database, even Google can’t map Egypt properly. 

This results in many problems, it is hard to request a ride without typing something so users end up writing the city name like San Francisco, when the driver starts the ride he/she is confused by the address on the app, and one specific problem a driver told me is something called “the golden trip”. Uber allows the driver to put a destination and the app would only send rides to the driver if the user’s destination is on the driver’s way (drivers use this ride when they are going home). With the current mess, multiple drivers told me they had to cancel rides after accepting them because they discover the address the user entered isn’t correct and they are going somewhere different from the driver’s destination.

Success forgives all sins

As I am watching the Uber fiasco, I am reading “Chaos Monkeys”. In the book, the author lists the rules of Silicon Valley capitalism, one of them is “Success forgives all sins”.

I think this not only applies to silicon valley. It applies to many aspects in life. More generically “History is written by the victors”.

If you are against it and it succeeds, history is written by the victors, and success forgives all sins. If you don’t like it and it fails, you become the brilliant who saw it coming, the victor.

Getting into product management

Many people asked me how I got into product management. If you read on the internet you will find countless stories of different people and how they got into the job. Because product management more of an art than science, these stories are very different, here is another one.

I got interested in product management because I like to think about building stuff, I also like working with others and motivate them to achieve a common goal. I didn’t know what I want to do (and still don’t know), and thought that product management is the closest thing at the moment to where I want to be (this will always change), so I decided to find a product management gig.

Again, since there are tons of long reads by different people and how they got there, I will just discuss the things you should read/do to help you get into product.

Read

I am big on books, I have an imposter syndrome where I think one can’t learn something without reading a book. The books I see most beneficial to product managers are

  • Cracking the PM interview: This one is a must read. It nicely lists different types of careers in product management, the interview process at different companies, and many exercises for each step. You might think I should read this at the end, or when I am ready to interview, however I think you should start by it, because after reading it you will find out which skills you are good at, and what you need to learn to be ready for product management. Don’t skim it, I did this mistake when I first read it, and it costed me Google interview, the questions were almost identical to what’s in the book, and I wasn’t prepared enough. Also, Google interviews are the hardest I ever did, they made booking interviews seem like a piece of cake (although they are also hard), so make sure you master the book before applying to the big guys.
  • Lean Analytics: I am allergic to anything with “lean” in it, they end up being a lengthy blog post stretched to fit 250 pages to satisfy the publisher’s requests. Lean analytics is an exception. It will give you a good mental model to think about metrics in product organization, it is also very beneficial to those worked in service business and want to move to product.
  • Traction: It is easier to join a startup as the first product management job than to join a mature company, and a startup’s keyword is “growth”. This book explains the different acquisition channels, and gives you a framework to how to run experiments to define winning/losing strategies.
  • Other than this, there are countless blog posts that I can’t list here, however a great source for the best in class product management tips from practitioners is twitter. Start by following Steven Sinofsky, Andrew Chen, Josh Elman, Hunter Walk, Ryan Hoover, Product Hunt, Ken Norton, and Chris Dixon. Once you follow those people, you will fall into the twitter blackhole of many other accounts to follow, since they will often retweet/interact with other smart folks.

Side Projects

Besides reading, getting hands on experience won’t come without shipping something. This is challenging for people who are not in a product environment, so building side projects is a great way to get some practical, hands on experience. It is better if you build these projects with others, because it shows you can influence and work with others towards a shared vision. They don’t have to be complex, or the next big thing, but they should be useful. You should have a story to back why you decided to build something, and it is even better if you have results to back this story.

Reading, and working on side projects will get you a jumpstart towards a product management career, some people achieve this faster than others, this is what worked for me.

Alexa, book my train on GoEuro

Last Friday we had the first GoEuro hackathon, this was one of the ideas that were presented.

The search part in this demo is real and using the GoEuro search API. The booking part is for demo purpose.

Bonus: OK Google.

Organizing an incident postmortem

Two weeks ago we had a big incident at work. The incident triggered a series of events that resulted in a big loss. One of my colleagues organized a postmortem that was interesting. Here is  how he did it:

  • Gather everyone involved with the incident in a room.
  • What?
    • Give each person a few post it notes, ask them to write down the sequence of events from their point of view. Not the things they discovered after, and not things that didn’t happen to them
      • Good example: “On Monday at 10AM, I saw this alert.”
      • Bad Example: “The server stopped working at 8AM”. No one experienced the server not working, but someone experienced the alert.
    • Build a timeline. Collect each person’s notes and post them on the wall. If more than one person experienced the same event you can just use one of them.
  • Why?
    • Root cause analysis: Now that you know what happened from people’s point of view, you need to understand what really happened.
      • Ask each person to write down the root cause they know for events from the timeline on the wall (e.g. There was a bug in X module that resulted in the server shutting down, hence triggering the alert).
      • Collect these root causes and stick them next to their respective events.
  • Solution
    • For every root cause, discuss how this can be prevented in the future, whose responsibility to take care of it.
    • Some root causes will be unknown, needing further investigation. This is also a good time to discuss investigation tasks.

What I like about this method is it separates the technical reasons from the process reasons. Sometimes there is a small bug, but with the wrong process it takes long time to react, other times, something major happens, but because the process is right, people react to it quickly. Separating the process and the technical reasons during the analysis phase helps fixing both.

The prophet

I finished Gibran’s “The prophet”. It is my first experience reading English poetry. It was a quick one hour read and I really enjoyed it. Here are some of my highlights…

The coming of the ship

Much have we loved you. But speechless was our love, and with veils has it been veiled.

Yet now it cries aloud unto you, and would stand revealed before you.

And ever has it been that love knows not its own depth until the hour of separation.

Giving

There are those who give little of the much which they have –and they give it for recognition and their hidden desire makes their gifts unwholesome.

And there are those who have little and give it all.

These are the believers in life and the bounty of life, and their coffer is never empty.

Work

And what is it to work with love?

It is to weave the cloth with threads drawn from your heart, even as if your beloved were to wear that cloth.

It is to build a house with affection, even as if your beloved were to dwell in that house.

It is to sow seeds with tenderness and reap the harvest with joy, even as if your beloved were to eat the fruit.

Work is love made visible.

And if you cannot work with love but only with distaste, it is better than you should leave your work and sit at the gate of the temple and take alms of those who work with joy.

For if you bake bread with indifference, you bake a bitter bread that feeds but half man’s hunger.

And if you grudge the crushing of the grapes, your grudge distils a poison in the wine.

And if you sing though as angels, and love not the singing, you muffle man’s ears to the voices of the day and the voices of the night.

Friendship

And let your best be for your friend.

If he must know the ebb of your tide, let him know its flood also.

For what is your friend that you should seek him with hours to kill? Seek him always with hours to live.

For it is his to fill your need, but not your emptiness.

And in the sweetness of friendship let there be laughter, and sharing of pleasures.

For in the dew of little things the heart finds its morning and is refreshed.

Time

And let today embrace the past with remembrance and the future with longing.

The farewell

Brief were my days among you, and briefer still the words I have spoken.

But should my voice fade in your ears, and my love vanish in your memory, then I will come again,

And with a richer heart and lips more yielding to the spirit will I speak.

Yea, I shall return with the tide,

And though death may hide me, and the greater silence enfold me, yet again will I seek your understanding.

Inconclusive

One thing organizations that do A/B testing have to agree on is how to treat inconclusive experiments. 

Inconclusive result means statistically you can neither say it is positive nor negative, and therefore instead of deriving conclusions on whether a feature is good or bad, one should analyze the goals and come up with the next hypothesis until it becomes conclusive or be regarded as failure and move to the next idea.

Sometimes I think A/B testing is like the stock market, you should be disciplined in your approach for your investments to yield the best results. There is an element of loss aversion, and fear of appearing as a failure. Discipline solves most of this.