The Cloud Shall Set You Free
I build my businesses in the cloud, here’s why
I’m a self-taught web developer, and I’ve spent years building my existing skills and learning new skills. One interesting fact about my journey is that I was terrified of building in the cloud.
By the time I landed my first job as a Programmer Analyst with Amazon, I didn’t have any technical working knowledge of AWS (Amazon Web Services). I actually started in the legal department building SharePoint applications.
I had some exposure to the cloud, but that was from messing around with certain services on Azure, not AWS. I could do a few things on Azure, and I initially thought it was more user-friendly than AWS.
The Moment of Truth
Nothing in life is neat and tidy. Learning new technologies is no exception. Based on the various requirements of the projects we were undertaking on our team, I knew SharePoint was only going to take us so far. Further, we were under increasing pressure to impress our clients with our tech skills and utilization of their technology. At that time, our client was AWS (I worked at Amazon, a separate entity from AWS).
It was finally time to dive into AWS and start building. I immediately knew that I was in over my head, and I would need a lot of studying and practical application to wrangle the new world of cloud computing. To make matters worse, there were no AWS developers to bounce ideas off on the corporate side of the business. Thankfully, I applied for a new opportunity at AWS, and secured a role as a Systems Development Engineer.
Confronting My Fears
I am a relentless perfectionist when it comes to career advancement. I always felt that AWS was an entrepreneurial organization, meaning I could write my own ticket. Determined to make a splash in my new role, I immediately began to study for a few AWS Certifications. I took the AWS Certified Solutions Architect Associate, AWS Certified Developer, and the AWS Certified SysOps Administrator exams. I only passed the first two! However, I was quite happy with two out of three.
At this point, I was ready to conquer my new role. Heck, I only studied for a few days and I was able to pass the tests. When I learned the system I was responsible for in my new role was built by a 3rd party open source vendor, and deployed entirely on AWS, I was a bit intimidated. That didn’t matter, I had no choice but to push forward. I had bills to pay!
Over the years I was forced to deep dive on so many cloud-based technologies and services. I had to build real stuff that was secure, and just worked.
As painful as it was, I am so glad I persevered and became an AWS Cloud expert. In fact, I just took a LinkedIn assessment and scored in the top 15% of 478K people who took the Amazon Web Services assessment.
I left AWS 1 1/2 years ago to follow my passion to become a entrepreneur. Since then, I have built a successful six-figure business with my wife. This is not just any business, it runs entirely in the cloud. Thanks to the cloud, we have extremely low overhead and extremely scalable and reliable infrastructure. We 1) run 1000’s of workloads every month; 2) process tons of data; 3) run multiple applications and domains; and much more for less than $250 month. This is a reality that so many bootstrapped businesses do not understand.
Keep in mind I do not employ a development team. The cloud enables me to be in a million places at one time. It enables me (as one developer) to compete with enterprise applications. Think about that power. That power did not exist just a few years ago. Here are a few ways the cloud enables us to operate like a enterprise on a bootstrapped budget:
- No servers. The only server we use is for our WordPress site, which is purely for SEO purposes. Everything else runs in on-demand containers (lambda)
- Security. Security is our 1st and most important concern. We use integrated cloud security to ensure our applications are secure, all the time.
- Data. We run schema-less, infinitely scalable data tables (DynamoDB), instead of non-scalable, expensive, relational databases. We only pay for data transactions we use.
- Storage. We can easily store unlimited amounts of objects, all with nine nines of durability (S3).
- Authentication/Authorization. We use a massively scalable Authentication service (Cognito) that ties into our other cloud-based services
- AI/ML. Machine learning is now a commodity and is within reach of developers of all skill sets. We rely more and more on cheap and effective machine learning to automate critical business tasks.
- Front-end Web and Mobile. We use SDKs and purpose-built classes to enable our front-end applications to seamlessly talk to the back-end (AWS Amplify)
- App Integration. We use application integration tools to coordinate our many microservices (AWS Step Functions)
- Email. We send thousands of transactional emails that look awesome because we use 100s of different, data-driven email templates (Amazon SES)
- Networking. We can sub-domain anything and quickly spin up private networks where necessary (Route 53, VPC, etc.)
- Content Delivery. We achieve lightning fast load times because we utilize multiple, low cost CDNs where necessary (CloudFront)
- DevOps. So, so important. If you are manually deploying your code, or manually copying files, you’re doing it wrong. We build and deploy our code to multiple environments with a single command line argument. (CodePipeline)
- Infrastructure. We actually program our infrastructure. Its the coolest thing ever (CloudFormation + AWS CDK)
I share all kinds of cloud secrets that I have learned throughout the years on Twitter. Consider following me over there.