AWS Developer Certification

Introduction

AWS is an extremely valuable tool that allows us to use computing power that Amazon has created to run applications and processes through the cloud, and being certified as an AWS developer associate is an amazing way to add value to your resume. However, their services have grown to include hundreds of different sub-services and helpers that can be very difficult to navigate, and even harder to navigate well. And this is incredibly important as there is a big difference between a “well running” application and a “very well running” application. An application that is running 99.99% of the time will be down for 3 days of the year, but an application running 99.999% of the time will only be down for only 7 hours. AWS gives you a huge variety of tools for bringing that number as high as possible.

An example of this is when I had just started using aws to host a small application. I had an EC2 instance (a service that allows you to run web servers) running a flashcard creator for other languages. You could put a list of words in Japanese, French, or Spanish, and it would generate the translations, example sentences, and pronunciations, then put them all in a two-sided printable PDF so it became really easy to get flash cards for words. However, there was a bug that made the software break down under very specific conditions. Whenever it broke down, the whole application would be offline until I came back and fixed it. There were no alerts, so I would only find out the next day when I went on to use the application for myself. Our uptime was around 50% because I wasn’t a good aws administrator. 

Upon starting the AWS certification, I learned that there are lots of things that can be done to improve this. For example, VPC is a technology that allows 2 instances of EC2 to be connected and the load distributed between them. So in my case, I could configure VPC to take the load away from the broken instances when one went down, and distribute it to the working one. As well, I could set up an IAMs alert to send a notification when the instance went down, so it didn’t take a whole day to resolve the problem. Becoming certified in AWS means that a worker becomes more able to use all the tools that AWS offers to their fullest potential.


Steps to obtain this certification

The first thing you need to do to obtain this certification is to learn AWS. Like most other things, this doesn’t happen through videos. The way I learned to use AWS is by first having a need - It was to build my flashcard website just using EC2. After people at my work found out that I was working in it, they asked if I would be comfortable doing a larger project in AWS, and I decided to take it on despite having very little experience. It was a bit similar to the other project where I was building an EC2 instance, but there were added functionalities such as connecting to a database and setting up user permissions. It was what I had done before, but just pushed a little bit farther. This is the best way to learn most things. Try to solve a problem, and then find more problems to solve until you are proficient in the tech. This is how I learned Spanish French and Japanese, as well as the dozen programming languages that I am proficient in.

This, however, leaves gaps in knowledge. When I started to learn through pluralsight videos, I felt fairly comfortable with AWS. But as I watched the videos, I realized that there was a whole world of other features that exist which make AWS more complicated, but rewarding to work with. For example, CloudWatch allows us to create a watcher to check billing data, and alert the user when a limit is reached. This never had a “problem” that I needed to solve in order to learn, so I just never learned about it. If you are going to get certified in AWS, there are a few things that you must know beyond the basics.

First, you have to be able to connect to an EC2 instance and use it to run code. This is easy if you have already learned Linux, but has a very high ceiling if you want to do things that are more intense such as hosting multiple websites with different file paths. Next, learn all the supporting services and what they do. This includes S3, VPC, IAMs, DynamoDB and RDS, Cloudfront, CloudWatch, SAM, Codeguru and Codestar, Cognito, STS, and SQS. Each one is very unique, but benefits the created website in ways that can be applied anywhere.


Benefits

Being certified as an AWS developer doesn’t just give you better chance at having a job, although that certainly is true. There are thousands of open jobs for aws developers, and a junior position can be between 80k and 100k a year which is amazing starting out. Being an AWS developer is incredibly fulfilling, as it lets you get to the heart of the company and development. It can start out as a very small project, but it creates an environment of continuous improvement that has real and immediate benefits for all the users. It can be a high pressure environment because when something goes down, it’s the developer who needs to go in and fix it. They are usually in charge of the “plumbing” for mid-scale projects.

The more important application is improvement of any project. I love starting software projects, and think that every aspect of every life can be improved through technology. When I started coding when I was 12 years old, I just wanted to make something to make my life better. I remember my first program because that’s exactly what it did. I was in a middle school math class where we were learning about the quadratic equation. It was a simple equation, but I had a long homework and I didn’t want to have to do the same process ten times. I created a program that would make all the calculations for me and let me finish the homework in seconds. (It took 1 week to save 2 hours on my program, but it still FELT efficient). While I made plenty of programs since then, I’ve come to realize that the real power of technology is communication and collaboration.

Impact is made when it can be spread among people. I realized that having a technology to myself was worth nothing because I can’t do anything alone. When working on my language app, the idea became too big for one person to handle, so I needed to invite more people. The tech tools that I built that allowed us to collaborate helped us create something that was far beyond what any one of us could have done alone. The only way for a tool like that to exist is through cloud technology like AWS. 


Challenges you may face

AWS is very hard for beginners in technology, and has a ton of moving pieces. I would break down the major challenges into 2 main parts: Finding new pieces in AWS and understanding what they do, learning to use each piece and understanding when it needs to be used.

I struggled a lot finding new services in AWS. All of the services are spread among various parts of AWS, and the best way to find them is usually just to ‘already know that it exists’ and then search for it. There isn’t one unified list of all services, which seems intentional. Some services are very essential such as EC2, but many services are very situational and aren’t needed in every situation. The best way to overcome this is by taking courses and asking experts what their favorite services to use are, and doing personal research on what they are. AWS has a large community of developers, and being with them will help you understand what the most essential ones are, and most developers have their own personal one-or-two personal small services they like. 

To find out about each piece, AWS has a good summary page for each of their services. But this of course doesn’t give you everything you need to be proficient in the tool. The best way is really to create a throwaway project, and see how the new tool integrates into it. By exploring the new GUI, you can get a basic idea of what its capabilities are, but this is a very difficult task if you don’t know what you’re doing yet. Find some youtube videos, and refer often back to the initial AWS post to guide you through using the tool. With each new tool you use, you will be more comfortable with finding new ones as well.


Future plans

I have mentioned multiple times that I have a few AWS projects, and most people I know who work in tech have some side project that they love. Weather its as simple as making it so you can turn your own lights on with an app, or as complex as an entire application. My most important projects are Tongues (the language learning app) and Audit Revamp (My full time job). Both of them are currently built on AWS, but in a very simple way.

Tongues is set up just to be served from a simple EC2 instance. This is only one of the many services that AWS provides, and just having EC2 will provide low reliability and be very expensive and unpredictable. The first plan that I have for this is to improve through VPC to distribute the load among multiple instances. This is…fairly high above my current level. After doing many of the pluralsight courses, I felt like VPC was the most difficult service to set up and understand, and I don’t have a 100% clear vision on how I would make a solution for it. But as I’ve mentioned before, the best future plan is to attack AWS in any way possible. Going for one of the hardest services will make every service afterwards easy to work with. 

I was put on the audit revamp project as a programmer, but had to set up an EC2 instance with S3 and a few other functionalities alongside what we already had. It was a very small application, but it got me familiar with the company’s AWS system. One morning, everything went down and it was late at night in the US while I was in Japan. The CEO called me and asked me to fix it, and after restarting the EC2 instance I realized that we had no alerts for if this happened again. I want to go in and set up cloudwatch to make sure that we are alerted the minute that it goes down, which will give me one more service to be proficient in.

AWS is becoming one of the most important technologies to be able to use today, for any size project. Going for the developer certification will make anyone much more powerful in their ability to make real impactful applications.

If you want to see the project and how it develops, check it out here http://3.27.126.169/

Like
Reply

To view or add a comment, sign in

Others also viewed

Explore content categories