Latest Essay

How many computers do you use daily? I would imagine most people would answer “one”. Typically, most people own just one personal computer, possibly a laptop or a desktop computer. Some people may have a work computer issued to them by their company which brings the number up to two. However, most people have at least one more – their smartphone (the term is becoming antiquated because of its ubiquity, we usually call them phones). Mobile phones and computers used to be quite distinct objects twenty years ago. This is no longer the case. Nowadays, some phones and laptops share similar chips and offer similar computing power. As our devices become increasingly “smarter”, they become computers within their original form factors. This applies to smartwatches and smartglasses. There are also newer form factors and special-use devices that are also essentially computers, such as game consoles and VR headsets. By this definition, many people use at least two to three computers.

But that’s not all.

Besides our devices, we use a far greater number of computers that do not belong to us. Whenever we visit a website or use an app, we are using the computing resources of the company that runs them. Just think about our everyday interactions on our phones and computers – internet banking, email, calendar, WhatsApp, Google Docs, Notion, Facebook, Instagram, TikTok, Amazon, Uber, and pretty much any other app that you can access through multiple devices. The data from all these applications do not live natively on our devices; they reside in another computer, often known as a server, which is managed by the companies that provide us with digital services. After adding these servers, the answer to my original question balloons to tens, possibly hundreds of computers that we use daily (I will come back to this count later).

How did we end up with much of our data being stored somewhere else other than our computers and hard drives? The best way to answer this question is to look at some turning points in the history of personal computing.

Graphical User Interface (GUI)

The dawn of personal computing took off with the creation of the Graphical User Interface (GUI). Prior to that, people communicated with a computer primarily by entering text commands through a Command Line Interface (CLI)1. One of the recurring ideas in the history of computation is the notion of abstraction. For our purposes, I will define abstraction as the notion of giving up finer-grained control and using more computational resources for greater user-friendliness. In the case of the GUI, it uses far more computational resources to render an image-based interface than a text-based one. Moreover, using an image-based representation meant that some powerful commands are lost in translation (e.g. replacing text in multiple files within a folder i.e. sed). The level of control and resources was traded with increased ease of use, which led to mass adoption by consumers in the mid-1980s with the release of the Apple Macintosh.

In the early era of personal computing, everything happened locally within that machine. Transferring files from one computer to another required the use of a removable storage device, usually in the form of a floppy disk. The floppy disk was also how software used to be distributed. Programs are installed from these disks, which enable specific types of files to be read and edited.

Internet and Web 2.0

The internet as we know it today began to take shape in the early 1990s when the first websites became publicly accessible through early web browsers such as the Netscape Navigator. Initially, websites displayed simple and small documents written in Hypertext Markup Language (HTML). Over time, as computers became more powerful and internet speeds became faster, web browsers and websites became more feature-rich and interactive. In the early 2000s, a notion of Web 2.0 emerged, with the idea that fully-featured applications would be developed on the web platform and run within web browsers. Over the next decade, web browsers built more powerful Javascript engines to be able to run web applications, which is arguably one of the reasons for Google Chrome’s continued dominance today2.

In this period, data was still created locally, but it became progressively easier to share data publicly across the network.

Client-server Model, Software-as-a-Service (SaaS), and the “Cloud”

Before we continue, a brief aside into the client-server model, which predates the internet and GUI. In the 1960s, early computers were huge — these mainframes would occupy an entire room3. The desktop computers available then are very limited and are known as “dumb clients”. Users will remotely access the mainframe computer (the server) through the desktop computer (the client). This client-server approach has proved to be consistently applicable to other problems besides tapping on greater remote computing resources. These include proprietary databases (e.g. marketplace), privileged data access and manipulation (e.g. a bank’s ledger), managing users with different authorization levels, and coordination among different users. One concrete example of the latter is email, which is stored in a mail server. The added benefit of having data stored in a remote server is the ability to access it from different devices. For instance, people can log into their email accounts and read their emails from any computer.

Web 2.0 technologies enabled powerful web applications that paved the way for Software-as-a-Service (SaaS). Whereas programs in the past were distributed physically via storage devices, SaaS software is distributed through the internet and accessed primarily through the web browser. An example of this was Writely, a web-based word processor made by the company Upstartle, which was turned into Google Docs after Google’s acquisition. Google soon bought another company, DocVerse, which pioneered online collaborative tools and incorporated their technology into Google Docs. One of the biggest breakthroughs of connected SaaS applications is the ability for multiple people to work simultaneously on the same document. Before this, people had to share their files via email, edit the file locally, and then send it back. This was not only slow but also created multiple versions of the same document. Storing the document on the Google Docs server, allowed people to collaborate seamlessly and came with the benefit of being able to roll back to previous versions of the document. The success of the SaaS model can be seen from the adoption by large companies and startups building on top of the idea. Adobe moved the distribution of the software online and introduced a subscription model that charges users monthly or yearly. Figma, Notion, and Miro are all startups that built their companies on this approach.

This signaled a fundamental shift in the way people thought about their data. The original file no longer lived locally on their machines. Instead, the original file lives in the “cloud”, that is, on a vendor’s server. For files that did originate locally from the computer, it became increasingly common for people to use cloud backup services that synced their data with copies stored in the cloud.

Social Media Platforms

In the late 2000s and early 2010s, social media spread across the globe. It offered people a way to connect with their friends and meet new ones. People would share their thoughts, photos, and videos with others on the internet. The sharing of all of this content was made simple by the use of social media platforms. Platforms would store user’s data on the servers, which allows it to be easily shared on that platform with different users. It was during this time that several platforms that harnessed user-generated content grew into the behemoths that they are today – Facebook, Twitter, Reddit, YouTube, etc.

Social media platforms got us used to sharing our data with internet companies in a voluntary manner. These platforms offered us file-sharing and storage services at no cost, as well as ways to connect with other people that we care about. Not to mention the FOMO that comes with not being on these platforms when everyone else is.

Here’s also when the notion of data ownership became fuzzy. Yes, we created the data, but who really owns it? What are the terms in which the company can use our data? These are defined within the Terms of Service (which I mentioned in the previous essay) that no one reads.

Mobile Computing

Within a few years after the release of the iPhone in 2007, smartphones became the norm and replaced conventional mobile phones, which led to the demise of companies like Nokia. Mobile computing reinforced and accelerated several emerging trends that I’ve mentioned earlier. Early smartphones were not as powerful as desktop/laptop computers and needed to have a reasonable amount of battery life, which meant that offloading computing resources to servers was ideal. Smartphones often came with a camera; the photos captured were more useful if they were shared with others or viewable on other devices, which led to the increasing use of social media platforms and cloud storage. Having a smartphone meant that people had a computer with them basically all the time, which meant that they were spending more time consuming and creating content on social media platforms.

Personalization and Ad-targeting

Platforms provide services at no cost to users but there are still bills and salaries that need to be paid. While VC money flowed in the 2010s, companies cannot rely on it forever and have to start turning a profit. Most user-generated platforms, following the example of Google, adopted advertising to make money from their users. At the same time, users began generating a ton of content on these platforms, which led to these platforms creating algorithmic feeds and more generally, recommendation features to show users content in a manner that can be tuned by the platform. The combination of recommendation engines and the advertising model led platforms to construct sophisticated user tracking and profiling mechanisms to make their ads more attractive to business customers. The idea is that if these platforms better understood what their users were more likely to click on, the ads will have a better conversion rate (i.e. users actually clicking on the ad rather than ignoring it). This practice is not limited to just social media platforms but also marketplace platforms such as Amazon.

The usage data collected by these companies are generated by users, which again, users have agreed to by clicking “Accept” on the Terms of Service. Most of us are not aware of it, but these platforms build extremely detailed models of their users through the interaction of platform content. Platforms use these models to serve highly targeted ads to their users [The Markup]. If you’re interested, you can download your Facebook data here.

Perhaps some people will not consider this their personal data, since they did not intentionally create it and are a by-product of them using the platforms’ free services. However, it is important to make people aware that vast troves of information about them and their personal lives, including private messages and contact data, are stored and used by platforms.

Cloud Computing and Data Centers

Most of what I’ve mentioned thus far touches the lives of regular people. The next turning point is something that took place away from everyday experience and happened in companies all over the world. Creating the applications as well as the infrastructure that supports these applications expected by today’s internet users is not easy. Setting up servers, ensuring that they have enough computing and data storage resources, and maintaining all the hardware that is required to make modern software run is not an easy task.

In the past, most companies would set up their own servers and have staff dedicated to maintaining the servers and making sure that their services are running properly. This approach is generally referred to nowadays as “on-prem”, short for on-premises. At some point, Amazon realized that the complex software and hardware infrastructures that they had built for their marketplace could be sold to other companies as a service. This is often known as Infrastructure-as-a-Service (IaaS), commonly and popularly referred to as “cloud computing”. Today, Amazon Web Services (AWS) is the most profitable part of Amazon and is the leading cloud computing provider. Google and Microsoft are now playing catch up, and offering their versions of IaaS.

This may not be obvious — most companies and startups today run on the infrastructure solutions managed by one of these three companies. This creates a huge centralization of computing resources owned by these three companies. Research shows that they collectively account for over half of the 600 hyperscale data centers in the world [SRG Research].

Most of our data, as well as the computers (going back to the introduction) that we use are within their data centers. Cloud computing and data centers are feats of engineering. To ensure maximum service reliability, these companies distribute workloads across multiple computers (servers) that are coordinated using server fleet management software. Even if computers or even an entire data center were to fail, their systems can dynamically distribute workloads to other data centers (the latter will be quite painful but it is possible). Similarly, to ensure data durability, each piece of data is stored multiple times across different computers, and even in separate data centers in different geographical locations to minimize the risk of location-based disasters.

Content Delivery Networks (CDNs) and Edge Computing

One last thing that I’ll add is the growing use of Content Delivery Networks (CDNs). In the previous paragraphs, I spoke about how cloud companies improve reliability and durability by using a distributed system of computers. CDNs adopt a similar approach4. They prevent servers from becoming overloaded by handling user requests and also improve loading speed for users. Data takes time to travel from a data center to the user. The further away the data center, the longer it takes for the user to access that data. If the application is sensitive to speed, such as video streaming (e.g. Netflix), companies will often use CDNs. CDNs usually have their servers located closer to the customers that store copies of the original server’s data. Instead of being in enormous data centers, they are housed in smaller facilities and distributed more densely across locations. Therefore, when a user tries to access a large video file, they are getting the copy from the CDN instead of from the original server. If we were to visualize users and the data center as a circle, the data center would be the “center”, and the users are the perimeter of the circle. CDNs are also called “edge computing” because they are servers that are close to the perimeter or edge. Advancements in CDNs are making them more versatile and more applicable to different scenarios. The inclusion of CDNs adds to the growing number of computers that we use.

To conclude, the technological systems that support modern digitally-powered lifestyles are massive and complex. An average adult in America going about their life will likely have used a hundred or more computers within a single day, most of which they will never see or interact with physically. Our data is stored on servers around the world owned by different companies. Some of these data are the ones that we are aware of, such as emails, files, and photos. However, it also includes the data that we are less aware of, including information companies collect from us through our use of their tools and platforms.


Footnotes

  1. It is intriguing to me that ChatGPT, which is arguably the first program that truly passes the Turing test, has pretty much the same text-based user interface. I might revisit this in a future essay.

  2. As well as its open-source counterpart Chromium, on which many third-party browsers are based.

  3. In comparison, my 4-year-old iPhone SE 2 is almost 10 million times more powerful and fits within my pocket – this demonstrates the exponential improvements brought about by Moore’s Law.

  4. The idea of throwing more computers at a problem when more computational power is needed is a pretty typical go-to solution. This applies to conventional services like databases (sharding, multitenancy) to Large Language Model (LLM) inferences. The complexity often lies in the distribution and re-consolidation of data.

Latest Project