Leverage MongoDB connection pools to avoid connection latency. Don’t keep your users waiting.
4 min read
Nov 29, 2022
In another life, I was looking out the window of a smelly and stuffy high school classroom when the heavenly sound of the fire drill alarm hit my ears. A mixture of groans and excitement arouse from the pimply teenage students who knew what they had to do in the situation and not so quietly filed out and made it to the safe gathering spot. For other teachers, this unexpected annoyance in the middle of the school day might have been frustrating. Not for me. At that time, I was an unmotivated and bored English teacher who had recently come to the realization that it was time for a career change. I welcomed anything unexpected, any distraction. I’m not proud to admit that I relished any escape from a job I knew I was not right for and had grown out of. Gradually for my own sake and more importantly for the sake of the students who deserved a motivated teacher, I took the steps to change my course and eventually landed my dream job in tech.
My experience as a DevOps engineer and working with other developers has shown me that I could not have made a better decision. I found that developers will do anything in their power to avoid interruptions or anything resembling a fire drill. Working on creative and challenging issues is so fun that any friction that gets in the way of that should be avoided at all costs. It’s not always easy though.
The friction that can take a developer away from writing code can take many forms. We’ve all had the experience of joining a new company with a renewed sense of excitement and energy which we usually associate to fresh starts. The excitement usually fades as we hit the initial roadblocks as we try to set up our local environments and gain the right permissions to tools which never seems to be a smooth process. I’m not surprised if people start to ponder how it can be possible that there are rockets being built to fly to mars yet I still can’t commit code a week after joining a company.
Even outside of the company setting, developers put so much time and elbow-grease into developing an application to get the wind knocked out of them when it comes to deploying it to the cloud. “Wait, which database instance should I choose?”, “Is that service part of the free tier?”, “Why the hell did I get such an expensive infrastructure bill?”
From the “day one” onboarding hassles, general cloud inexperience and annoying meetings, there are almost unlimited ways to degrade developer experience.
It’s not just a trend at this point, teams that build and deliver tools with the developer experience as the main focus will have the most impact in the future. By unblocking developers we can help to widen the floodgates of innovation.
We can’t leave it up to cloud providers to solve the developer experience issues they have. It’s not their main focus, nor what their business model is built around. Corey Quinn put it best in his How to Win in Cloud article in which he rightly points out that the main cloud providers still base their messaging and market their products around a central theme: migrating enterprise workloads into the cloud.
Today still there is a lot of money to be made in cloud migrations but there will come a time not too far in the future in which most companies will either already be in the cloud or will have their mind made up about staying out of it. By not broadening the focus now a huge opportunity will slip away. Which is prioritizing startups.
On average S&P 500 companies have a 21 years lifespan (also seen first in the Quinn blog). So it’s safe to say a large amount of the 500 most valuable companies in 2050 will be startups that don’t exist yet. Since the cloud providers, take your pick, don’t prioritize this segment of the technological ecosystem it leaves room for the rest of us to pick up the slack.
Nowadays, you need cloud experts and highly talented and experienced individuals on your team in order to get up and running in the cloud in a fast, cost-efficient, and secure way. Increasingly finding qualified and experienced cloud and DevOps engineers is increasingly difficult. It’s safe to say that most startup lack in this department.
Developers have so much on their plate already, doing the creative heavy lifting of coming up with an idea, choosing a tech stack, writing the code, and then having to tackle the dense jungle that the cloud can be if inexperienced. There is a clear gap at the end of the software delivery lifecycle, a broken circle if you will. This is usually where DevOps engineers and Cloud specialists are handed the baton. But what if there are none around?
Bridging the gap by enabling the developer to be self-sufficient by letting them provide context around their particular use case and having a system in place in which the user can make informed and case-specific decisions need not be that difficult.
To illustrate my point let's momentarily think of cloud providers as casinos. They are vast expanses with almost unlimited options of games for you to play. They are places where fortunes can be made, and also places where you can go bankrupt if not careful. From the perspective of the individual player, you don’t have to know the rules and regulations of every game to enjoy the casino. If you’re just a blackjack player, you should have easy and straightforward access to the rules and should know exactly where to find the blackjack tables.
Bringing it back to developers, they should have custom information that is relevant to their needs and easy ways to track everything specific to their application, nothing else. They should be given clear and direct information based on their requirements (tight budget, heightened security, highly scalable…) to help them make those decisions. The sooner developers know where to find their blackjack table the better.
This has been our guiding light when building Komiser. Cloud providers have a well of data relevant to us, yet, not easily accessible. But with the building of Komiser we push to bring the highest transparency in viewing our relevant usage data straight through the inventory page feature.
In a moment in time in which the conversation around automation is regularly dominated by voices that push it at all costs and try to shoehorn it everywhere possible. I think it’s important to point out that the tools and platforms that will make the most impact on the developer experience are not going to be tools that abstract away everything you don’t want or know how to do. You don’t want to be completely in the dark about what is going on under the hood. But rather, you want to be able to use tools that give you relative advice and information about your particular use case. This has been a foundational pillar of the Oraculi vision, we don’t want to deliver a solution and ask of no input from the user. But rather, help users regain the control of their infrastructure through an open and flexible platform as opposed to an opinionated magic wand. Tools that can provide the user with various methods of solving the same problem. As the use of the tool increases so does your domain-specific cloud knowledge and in time you will be self-sufficient enough to be able to get bridge the gap and close the circle.
According to the Guardian newspaper, we get interrupted around 60 times a day. Couple that with not having developer tools that are up to the task and you have a recipe for unproductivity and unmotivated developers. By tackling the issues that developers face by building tools that remove the number of handoffs and roadblocks we are tapping into the biggest potential space in the future of cloud. The goal should not be to outsource the last step of the circle but to bridge it by allowing developers to take control of their infrastructure with tools that deliver use-case-specific information, best-practice recommendations and easily implementable solutions.
Regardless if you are a Developer, DevOps, or Cloud engineer, dealing with the cloud can be tough, especially on your own. If you are using Oraculi or Komiser and want to share your thoughts doubts and insights with other cloud practitioners feel free to join our Oraculi Discord server. Where you will find tips, community calls, and much more.