My AWS Cloud Journey as a Front-end Developer
Sean Groff
2 reactions 2019-11-02
The Journey
Why the hell did I take an AWS certification exam as primarily a front-end developer? Learning cloud services is a NECESSARY skill to possess in 2019. In this blog post I’m going to explain why I believe this. We will cover why I chose Amazon over Microsoft or Google. My exam preparation for the AWS Certified Cloud Practitioner exam, and my experience taking a certification exam.
WTF is Cloud Computing?
I’m not an expert, nor will I claim to be. Here’s my favorite Cloud Computing summary which comes from the AWS Overview white paper. A great starting point for your AWS CCP studies!
“Cloud computing is the on-demand delivery of compute power, database storage, applications, and other IT resources through a cloud services platform via the Internet with pay-as-you-go pricing. Whether you are running applications that share photos to millions of mobile users or you’re supporting the critical operations of your business, a cloud services platform provides rapid access to flexible and low-cost IT resources. With cloud computing, you don’t need to make large upfront investments in hardware and spend a lot of time on the heavy lifting of managing that hardware. Instead, you can provision exactly the right type and size of computing resources you need to power your newest bright idea or operate your IT department. You can access as many resources as you need, almost instantly, and only pay for what you use.Cloud computing provides a simple way to access servers, storage, databases and a broad set of application services over the Internet. A cloud services platform,such as Amazon Web Services,owns and maintains the network-connected hardware required for these application services, while you provision and use what you need via a web application.”
Why is it Necessary to learn Cloud Services?
Put your pitchforks away, please. If you are an aspiring front-end developer or a junior developer it’s important to know what the Cloud is but NOT necessary to learn…yet. Continue to hone your skills but know as you progress and gain experience you’ll find your way to the Cloud.
It all comes down to money. A business wants to make money. You as a professional, wants to make money. Whether you’re a developer working for a large corporation or building your own SaaS app, the upfront cost is a high price to pay. There are no guarantees you’ll make full use of the hardware resources you paid for. These capital expenditures cut into your profit margins or put your business deep in the red before you’ve even launched.
With an IaaS (Infrastructure as a Service) you gain several benefits over self hosting.
- Trade capital expense for variable expense
- Benefit from massive economies of scale
- Stop guessing capacity
- Increase speed and agility
- Stop spending money running and maintaining data centers
- Go global in minutes
This all seems like a no-brainer solution for the majority of businesses regardless of size.
As a front-end developer you’re likely already apart of the Serverless movement. If you use the JAMStack you can build applications without having to know about any of this*. I threw in an asterisk because we all know in the tech industry things break. What happens if something breaks or there is a business need for something your platform of choice doesn’t currently provide? If you’re a junior developer odds are there is an experienced developer to solve these problems for you. I’ve currently found myself more in the position of needing to fix problems or implement solutions that involve the needs of Cloud Services. Specifically, on AWS.
My need to learn AWS
At my current job many of the experienced developers toss around AWS related acronyms and service names as part of their everyday conversations. We even have a small DevOps team dedicated to supporting our companies AWS related needs. The DevOps team has a constant onslaught of issues and feature requests. It is much faster (and fun!) to implement solutions and debug small issues than it is to bother the DevOps team given their priorities.
The applications I work on are React apps which live inside a Docker container. We have scripts that use the AWS SDK to pull down the necessary config files needed to run our application. These scripts usually involve pulling down files from S3 or retrieving API Secrets from AWS Secrets Manager. Our backend piece of the applications are written in Node. They are hosted on AWS EC2 instances or we build serverless solutions using AWS Lambda. Even with Serverless.js there was often the need to understand cloud services such as AWS CloudFormation.
I’m also working on a SaaS side project that requires cloud services. When building products it often makes the most sense to build it “the boring way”. The boring way meaning the tech stack and technologies you already have vast experience in. For me, thats React, Node and AWS.
Why AWS?
Amazon AWS has dominated the market since day one. It offers far more services than Azure or GCP. I’m not going to include the data in this article for brevity sake. A quick Google search will give you all the data metrics you need to see this. There are so many useful and exciting AWS services it can be extremely overwhelming deciding what services to use. Several months ago I tried building an app with AWS Amplify but couldn’t figure out the Cognito and DynamoDB issues I was facing with logging in. This was my spark.
Why the AWS CCP Certification?
With all the talk at work about AWS, the demand for these skills at work, and my desire to make educated architectural decisions for my side projects, I needed an up-to-date method of getting started learning the world of AWS. Earlier I said it all comes down to money. What better motivator than to spend \$100 on the AWS CCP and schedule the exam date for 30 days out! The AWS CCP is Amazon’s foundational certification. It’s a great introduction to AWS and it’s vast array of services and best practices.
My Test Preparation
I’m a huge fan of Reddit for information and learning about others experiences. I discovered the /r/AWSCertifications subreddit. After reading through several posts on the available AWS certifications I discovered the Foundational Cloud Practitioner exam. I began reading all the posts about users passing the exam and what they did to prepare. Many recommended the course on ACloudGuru and taking the 6 practices exams by Mozdora on Udemy. In case you don’t know. Udemy always has sales. Don’t spend more than \$13 ever.
I spent three and a half weeks off and on going through the video tutorials, following along in the AWS console and taking a lot of notes organized in Trello. I found each video summary a great addition to my Trello notes. Trello is a great way to organize your notes by topic, using markdown to format, and embed useful images or diagrams.
ACloudGuru had great content but didn’t cover everything included in the actual exam. Given the \$30 monthly subscription price tag i’d recommend a Udemy course instead.
I spent the last few days taking the Mozdora practice exams on Udemy. I would’ve failed the exam so hard if it wasn’t for these practice exams. They really bring to light what you know and don’t know. They also get you used to the structure of the questions you may face on the actual certification exam. I either barely passed or failed EVERY practice exam. Due to these results I finally read the long AWS Overview white paper I mentioned at the start of this article. The night before the exam I did not feel confident at all and stayed up until 3am going back over the practice exams and trying to memorize a brief summary of most services.
Day of the Exam
My exam was scheduled for 9am at the Centriq Training exam center. This is a 40 minute drive from my house. I didn’t want to risk being late so I woke up at 6:30am. Insanely tired, running on 3 hours of sleep, I grabbed a red bull and made the commute. My main focus was trying to wake up so I played some loud music and tried not to think about the exam. Even with some traffic, I arrived about 15 minutes before I was scheduled to take the exam.
I didn’t bother with any last minute cramming in the parking lot like I usually do for interviews. I finished my Red Bull and entered the building where I was greeted at the front desk. For AWS exams you must have your picture taken, provide a government issued ID, and identification that includes your signature. So make sure you sign the back of a credit card prior to arriving!
After signing a couple forms, having my picture taken, and provided my forms of ID the exam proctor escorted me to an isolated room with lockers. I had to leave all of my personal belongings and lock them up. Don’t forget to go to the restroom, it’s a 90 minute exam! I was then brought into a quite room that looked like a small high school or library computer lab. It was a tight space with 10 year old Dell computers separated by thin cubicle style blockers so you can’t look at the persons screen next to you. The exam proctor quietly logged me in. There were four other people in the room taking certification exams. When I sat down the exam was opened full screen on the computer with an instructional screen of how to take the exam. As if someone has gone this long in life without knowing how to take a multiple choice exam…
I clicked the Start Exam button and I was immediately stumped on the very first question. I gave it my best guess and moved on. In what felt like an eternity my exam progress was 4/65 questions. At this point I was certain I was failing. Given I really had nothing to lose or gain I remained calm and focused on the questions. I finally hit a groove where I felt I nailed every question. Several questions involved choosing the best 2 answers to test your in-depth knowledge. The questions often had a keyword that hinted at the best answers given the scenario. When taking a multiple choice exam, I read all of the answers and eliminate the ones I KNOW are wrong. Many times this brought me to the answer(s).
You are allowed to flag questions for review at the end. I did not do this but it’s probably something you should do. I completed the exam and had the feeling I either barely passed or barely failed. After acknowledging I was ready to continue past the Marked for Review section I clicked the End Exam button. A white screen appeared. The exam software certainly wasn’t modern as the UX for a loading state was non-existent. I anxiously awaited the dreaded Pass/Fail text on the screen. The screen finally loaded and I was presented with a Survey. A freaking survey! I guess I should’ve read the exam introduction after all. Ultimate troll job. I breezed through the survey and clicked the End Survey button.On the screen the Windows Vista styled “Are you sure” dialog appeared. “This will end the survey”. Yes i’m freaking sure TELL ME I PASSED!
I was presented with yet another white screen. Then a screen full of text appeared. I furiously scanned the screen with my eyes looking for the Pass/Fail text. I couldn’t tell you what else was on the screen. Toward the middle of the screen read “Exam Status: Passed”. I was pumped! I couldn’t do anything other than raise my hand to the video camera for the exam proctor to come get me. Talk about anticlimactic. After a couple signatures I was out the door without an exam score. AWS emails you your results within 5 days. I received mine the next day with a score of 887. Much better than I thought I did! A Pass is 700.
To celebrate I texted my wife and drove to work lol…
Whats next?
While the AWS CCP is a great introduction and provides a great foundation I still need a lot more in-depth knowledge of AWS as a developer. AWS offers a developer path of certifications. I will begin to study for the AWS Certified Developer Associate exam. I’ve already read a lot about it on the /r/AWSCertifications subreddit and will purchase my study material from Udemy. As soon as I begin my studies I’m going to schedule the exam for 3 months from when I start studying. The exam goes in-depth on DynamoDB, Lambda, pipelines and some other services I really want to learn to begin building my side project.
Conclusion
Learning your way around the Cloud and it’s services is unavoidable as a developer. It’s an in-demand skill i’ve prioritized in my career path. I believe the AWS CCP is a great starting place to jump start your learning! There are so many great services that will get you up and running on the cloud without any configuration or backend code. I’d recommend starting with these services when you’re starting out. I still swear by them and use them whenever possible.
Netlify and Serverless are amazing and I’d recommend checking them out. AWS Amplify is a quickly growing service that can get you up and going in no time building applications on AWS. Nader Dabit is a fantastic resource whom I’ve had the pleasure of meeting a few times. Give him a follow on Twitter as he’s always posting educational resources.
I hope you enjoyed this blog post and my certification experience. Hopefully it will motivates others to pursue a Cloud Certification.
Don’t forget to follow along with me on Twitter.