3 Products That Influenced Me
This week, I am taking a break from the Software Engineer Career Series. I wanted to reflect on a few products that influenced my product thinking and programming.
iPhone
The iPhone redefined computing. It put a powerful computer in the pocket of every single human (at least in the western world). A few months after its release, Blackberry market share was decreasing at 1% every month.
Apple, as usual, had control over hardware and software1. They did something impossible for their main competitors (Microsoft). Microsoft was building software they sold to computer manufacturers. They were locked in with Intel and all the constraints from the PC (having a mouse, supporting a wide range of devices - decisions that prevent you from doing bold moves).
The iPhone is a good reminder that if you want to be innovative, you need to have control of all core aspects of your product. This is the same reason why Apple computers are still unmatched in terms of graphical abilities or battery life.
Tesla Model 3
Tesla cars are magical. You put an address on a giant screen, you push the stalk and the car drives to your destination2 while you listen to a podcast. I did 45,000+ miles on Full Self Driving across the USA, and I am still blown away every single time I drive my car.
From a product perspective, two major aspects impressed me.
The first is onboarding. You learn to use your car in incremental steps. Your car is delivered as a “dumb car” without any “smart” feature. This process forces you to discover and enable new features. You learn how to use the car as you go, which triggers the magical “ahah” moment.
The second is simplification. Tesla simplifies as much as they can. About two years ago, they removed the proximity sensors to rely uniquely on video for driving and parking. More recently, they removed the stalks and the car now detects in what direction you want to drive. Andrej Karpathy (previous head of self-driving at Tesla) mentioned in a podcast that removing unneeded features simplifies your software stack. It prevents bugs and reduces maintainability efforts so that you can focus on the core of your product.
Tesla is years ahead of the competition (at least in the USA). Legacy car manufacturers are still struggling to integrate software built by contractors.
Note that Tesla follows the same playbook as Apple: control both software and hardware.
Amazon Web Services
Amazon Web Services (AWS) is magic: in a single click, I can rent a computer in second. And with a few more, I can build a new datacenter and compete with the biggest tech companies. What was taking months or years a decade or two ago is now possible in minutes. AWS lowered dramatically the barrier to entry for starting a new Internet product. It enabled the startup ecosystem we know today, from Airbnb to DoorDash or even Netflix.
AWS built its ecosystem using building blocks. They started with EC2 (compute) and S3 (storage). New AWS products rely on these building blocks. AWS lambda uses EC2 as a platform execution. EBS uses S3 to store volume snapshots. Later on, RDS (databases) were built on top or EC2 (for computer) and EBS (for storage). The AWS tech stack of today can be considered a Jenga tower, whose building blocks are EC2, S3 and EBS.
Bezos designed the company this way. The infamous API memo set the stage early on: every team had to expose their services and interface so that others can reuse them.
It enabled Amazon not only to test their services internally (and have a shorter feedback loop) but also to avoid reinventing the wheel and ship products faster.
Jobs often referred to Alan Kay: “People who are really serious about software should make their own hardware.”
FSD in the USA is a real thing. While not perfect, it works 95+% of the time.