November 27th, 2018 · 15 min read
React.js, Kubernetes, AWS, Typescript, Web Components, and Swift are all examples of projects, ideas, and services that have been released by companies like Google, Amazon, Microsoft, Facebook, and Apple. Some are for profit and some are for the open source community.
But have you ever asked yourself… why? Why do these companies generously offer their work to the developer community?
In this article, I will go over the high level reason that these technologies exist and the true motivation behind them.
TLDR: It’s all out of self interest of the companies… but don’t worry, it is still great for programmers like us. If you want to work for one of these companies, you should focus on their goals and needs.
Companies have 2 really difficult tasks they need to perform to be successful and keep that success:
Let’s have a look at the biggest tech companies in North America and see how these two goals are reflected in the open source tools and other services that they have contributed to the programming world. In the last section, we will talk about the second point above (the most important one).
Note: There are many other projects that I couldn’t include in the post for brevity sake, but hey, you can let me know about it in the comments.
Hey! people! Keep using the web as much as possible. We want to dominate the web. In an ideal world, there is no more Apple App store, no desktop apps, because everything should go through our Chrome browser or through our google search so we can make money from ads. We dominate the web, so we want people to stay there. Our main source of revenue is ads and this is our main interest but… We also noticed Amazon and Microsoft making a ton of money with AWS and Azure. We don’t want to get left behind so we created Google Cloud Platform (GCP)
Bottom line: Google’s ads rely on screens. Other interactions like voice (Amazon’s Echo and Alexa) subvert screens entirely. Also, using different search engines like Bing, and DuckDuckGo is no good for Google. As a programmer, if you can get more people on the internet, or more data about people , Google is going to really like your project.
Check it out! We collect as much user data as possible by having people use our platform to share information so we can sell ads. We want users to find our apps useful and as sticky (long time on app) as possible: Instagram, Facebook, and WhatsApp is the name of the game. Internet browsing should just be done through these apps. In an ideal world, we ARE the internet that people visit. But we have a problem: Our apps on the phone are downloaded through Play store and Apple. We don’t like this reliance. Ideally we can push changes to their app whenever we want, and we aren’t controlled by the other “storefronts” (App store and Play store)… maybe VR is our solution here (Oculus)
You may notice something here: Google and Facebook will always prioritize advertisers over users. It’s in their business model after all. This is an expected behaviour when users stop paying for apps and get it for free: your data becomes the money maker, but you do get really useful applications from these companies.
Bottom line: As a programmer, If you can get more people on their applications, or more data about people and the world they inhabit, it is valuable to Facebook. If you can remove reliance on Apple and Google app stores that’s even better. Facebook is trying to keep the users on their platform instead somewhere else. (i.e. making you watch videos on facebook instead of Youtube which is owned by Google). Want to share pictures, make a call, or chat with friends? Facebook apps can do all of that for you. Who knows? Maybe in the future they will create their own app store, or their own phone to keep people using their apps (i.e. React applications can eventually become Facebook App Store applications).
Scale is the name of the game baby! We want to have access to as many users as possible and beat everybody on economies of scale. The more users/buyers we have, the more we create a moat around us. Why? We can sell things for really cheap and have small margins as long as we have a lot of volume. Using this model, we can sell anything through the digital world but also through the physical retail world. Anti trust lawyers? That’s cute, ask our customers how happy they are with these insanely low prices.
Not much open source is there? It all revolves around AWS and Alexa. That is reflected in their goal and focus: everything they do is about scale and increasing users who buy things from them.
Amazon loses money on Kindle and Echo products it sells. But who cares, because their goal is to get as many touch points: Web, Voice, VR, etc to Amazon. Oh and on top of that, people are moving towards searching for product online on Amazon instead of Google.
Bottom line: As a programmer, if you can get more people to buy from Amazon through different mediums (web, voice, VR, mobile, physical) the better. Get as many people in the world access to Amazon. Most products they build will lose money (i.e. Kindle, Echo) for the small margins that they make on large users when they buy items from Amazon. Just keep increasing those touch points. Would this benefit from being quicker, bigger, more efficient? Then Amazon is interested. Get more users →get data →improve service to get more users. Rinse and repeat.
Ya… we’re pretty great. We completely own the high margin hardware market. Our goal is to make users not feel like they are talking to a computer. The best part? Our lifetime users spend a lot of money on our products because we specialize. We make one thing really really well for each market. But we are also constantly competing with our products and no product lasts forever (willing to cannibalize our products if they are no longer good). Unlike Amazon, we’re not going to just sell you a trillion things. We are going to focus on a few things, and do those really well. We will never let anyone beat us on hardware quality.
Oh and they don’t always listen to customers (bye bye headphone jack) because they want to build things that we don’t even know we want yet.
Unlike Facebook and Google, their main goal isn’t ads revenue. Therefore, their priority on user data is lower. Apple and Amazon are in the users business instead of the ad business. Apple is high end while Amazon focuses on low margin scale.
Bottom line: Apple is very inward looking and they dominate hardware in terms of profit. Their users are also great as Apple owners spend more online than Android. Their big upside is that it benefits them more than all other companies to have user’s security in mind. For this reason, they don’t open source projects as much but they do when it is for their platform (i.e. Swift). As a programmer, if you know their product inside and out, their technology stack completely, and like to focus, they are going to love you.
My irrelevant 2 cents: Apple will continue to be the most successful out of all of these companies because it is the main company that has an incentive to secure user data.
Ahem. We build software that is used by everyone in the world and you can see that throughout our history. But we never stop looking for new opportunities. We have made Azure very profitable, and it’s growing really fast especially by attracting companies like Walmart who don’t want to host their platforms with their competitor (Amazon’s AWS). We have a growing business segment that we want to focus on now: Azure cloud service and Office 365 subscription software. We have the advantage when it comes to enterprise but we want to make sure that nobody beats us when it comes to software quality and lock in.
Notice a trend here? On one hand, Microsoft really wants you to use their software and especially Azure. But a lot of developers use mac and linux. So how can we get to them? Well, provide the above tools for them to use. Oh and let’s also buy Github since every developer is on there.
Bottom line: Microsoft is all about software. Using the cloud, and applications to maintain lifetime customers as much as possible. That means making programmers and business people happy: In past, Microsoft had never launched a product for Linux (Linux compatible version). But time is changing and Microsoft is stepping inside the open source community and trying to embrace those people who love linux and macs since they can be converted eventually.
Microsoft, more than all of the above companies need good software engineers since that is their main focus. So their key is to be in touch with as many engineers, developers, and programmers as possible… because we now get to our 2nd main reason of what these companies need:
Finding good talent is really really hard
They are all in competition to hire the smartest engineers, and if they don’t hire the smartest people, their competitor will. They also pay really really well for these skills (usually $130,000+).
At the end of the day, all of their business goals require top level engineers and developers (although designers and hardware engineers are a higher priority for Apple).
All of the projects/products mentioned in the previous section may simplify work for them internally, but the projects can also take a lot of time to develop and maintain throughout their lifetime. These projects are therefore expensive in terms of time and money so what they put out must be inline with the company’s business goals.
The key is this: If the framework/library/tool/language is used by programmers all over the world, hiring also becomes easier because these programmers already know how to work within their company. In addition, by marketing and showing off these projects, a company can show how technically advanced and powerful it is in the tech space, which is attractive to developers and programmers that want to work for the best company. “Come work for us because we are on the cutting edge of tech”.
All the above companies have their goals and challenges that they need to tackle throughout their existence. But at the end of the day, it comes down to who can hire the best talent to help them grow. If you want to work for one of these companies, it is important to know what their main business model is.
By the way, if you do want to work for these big tech companies, I created a course to help you master the coding interview process while also making you a better programer.
One last thing. As the industry evolves, all of these companies know that technologies will change and their business model may have to change with it. Each of them have some sort of play and interest in these early stage technologies and it would be interesting to see where things shift, but their current goals and ambitions revolve around maintaining their dominance in their field.
One thing is for certain though: we as programmers get to benefit from these contributions.
Thank you for reading this far. If you enjoyed this post and want to get more like it in the future, subscribe below. By joining the ZTM community of over 100,000 developers you’ll receive Web Developer Monthly (the fastest growing monthly newsletter for developers) and other exclusive ZTM posts, opportunities and offers.
By the way, my full time job is to teach people to code in the most efficient way possible as the Lead Instructor of Zero To Mastery Academy. You can see a few of my courses below or see all of my courses by visiting the courses page.