Developing Cloud v.s. Using Cloud

Currently, I'm working as a Site Reliability Engineer (SRE) for a database company that offers fully managed Database-as-a-Service (DBaaS).

Before joining the current team, I had worked for Cookpad, a recipe-sharing platform, that is a to-Customer (toC) business model.

While working at Cookpad, I was one of the users of cloud platforms. Cookpad was (and maybe still is) one of the heavy users of Amazon Web Services (AWS), so our team always uses fully managed services to build applications, for example, AWS RDS for the database layer, AWS ECS for the container orchestration layer, AWS CloudWatch for the observability layer, and so on.

Cloud is great. We, as engineers at the company that offer toC services, could focus on implementing business logic and delivering values to end users. All of the complexities of managing and operating massive infrastructure were (often, but not always) abstracted and hidden from us (but yes, I admit that sometimes we found edge cases and send a couple of bug reports).

Actually, that is one of the reasons why I decided to leave Cookpad and join Neo4j last year. After working almost 5 years in total at Cookpad, I realized that my motivation had gradually shifted from developing web applications to developing tools/platforms/databases for other developers. I wanted to see how it will look like from inside the cloud, not as one of the users of the cloud.

Now one year has passed, and there is one thing that I realized. "Developing cloud" is similar to working as a consultant, rather than working on solving real problems in the world for end users.

There really are a lot of clients who use our platform. From fintech, government, and e-commerce, to logistics. This list goes on and on. We develop the platform for those clients and help them solve their problems, not ours. We focus on building tools, not solving their issues.

This is the flip side of the coin. We, as cloud platform developers, can focus on building tools. In other words, we are far away from solving the real world in society, which could make our world better and more comfortable.

I know your possible counter-opinion goes like this: "Well, but solving their (client's) issues is another problem in our world". Yes, you're right. It all boils down to where you'd like to put yourself, that is just your preference. Neither is good nor bad.

I might have never understood this feeling if I did not join the company that develops the cloud. That is one of the biggest takeaways I got from my experiences at the DBaaS company.