Top 1 priority when starting a cloud-native development team

When we started Dewise in 2016, my immediate goal as the first official employee, was to become a certified Azure developer. At that time, I didn’t know much about cloud, besides that your infrastructure is managed by other people and that you only pay for what you need.

We had already decided that our core business would be to build custom applications for our enterprise customers, but I wasn’t sure if it was the right time to adopt a platform that we didn’t have much experience on. Most of the companies back then were still focused on lift and shift migration of their current workload. Our potential customers haven’t even started with building cloud-native apps yet. 

After we landed our first project, I knew it would be a good opportunity to get on board Azure together with our customer. They wanted to migrate an existing application that was still running on Sharepoint 2007, which was about to end support. The use case was a good fit for a standard web application with a Single Page App, a.Net based Web API and a database. As I had no experience deploying web apps on Azure, much less using a cloud database, I rolled up my sleeves, and started to play.

I’m happy we made that leap. In a few weeks, our development team of four, learned a lot about the main building blocks of modern web applications: App Services, Azure Storage and CosmosDB (back then it was still called DocumentDB). We also learned how to connect to Azure AD as our identity system and establish a seamless sign-on capability. We even managed to setup our automation pipeline on Azure DevOps to deploy directly to the customer’s Azure subscription. 

It was still a niche technology stack at that time, and the resources online were minimal. We relied heavily on the official Microsoft docs and conducted internal hackathons to build a POC. There was no other way to learn. Everybody was a noob in the field. But having the foundational knowledge on web development and infrastructure was a big help. We weren’t starting from scratch. We just had to map what we already knew with the cloud terminologies and rethink the concepts around highly scalable distributed systems. In the end, it turned out to be easier and more fun than I expected. 

It was exciting and yet scary for someone who just started a new business, to build our first solution on a new terrain. But that’s what I love about entrepreneurship. You go out of your way to accumulate just about enough knowledge, so you become confident in taking the risk that comes with uncertainties. 

When we started the company, we had a choice between doing what were already good at, which was SharePoint development, versus embarking on the unknown. Deep in my heart, I wanted to build digital solutions, from ground up and help organizations modernize their business using the latest tools and technologies. We chose the unknown even though it will require heavy upskilling at such a short time, not only because it gave us competitive advantage, but because curiosity and learning is so ingrained in our DNA.

Now, five years after, I still feel grateful everyday that we embarked on our cloud journey, with optimism and a dash of bravery. Our company priority hasn’t changed since Day 0. Learn, get certified, and learn some more. 

The first thing that we offer to our new hires is official training and a certification track. We also match them with a mentor from one of our existing colleagues, so they can collaborate on outlining a learning path, that is relevant to our projects, and is aligned with their career goals. Group mentoring, live coding, pair programming and sparring sessions, are part of our day to day. Nobody is left behind when it comes to upskilling. We learn as a team, and we grow as a team.

Today most of our developers have completed the Azure developer course and have been certified. I also passed the Azure Architecture Expert in the beginning of the year. What we all find helpful aside from the training, are the resources from Microsoft Learn, and dedicated time for group study. Many of my colleagues are already planning their upskilling goals for 2022. I’m looking into learning other cloud platforms, and perhaps a functional language like Clojure. But experience is still the best teacher. And I’m glad that we can apply all our knowledge to our current projects and new ventures.

I believe that anyone who wants to start a cloud-native development company, must put their collaborative learning strategy as the top priority. A lot of organizations just hire cloud engineers and leave them to their own devices. But the technology landscape of software development is rocky and steep. Nobody is fit to traverse it alone. There are too many twists and turns that can lead your business to a dangerous cliff. The safest decision you can make, is to risk learning the unknown.