At Compass we make extensive use of AWS services. As a frontend developer, I don't often interface with AWS directly the way a DevOps team member does. Even still, as much as I'd like to think I'm sheltered from the world of infrastructure, AWS is very much something my day-to-day tasks involve. To name just a few examples:
At Compass, we offer frontend devs a no-fuss way of interfacing with the backend locally. A dev can run the frontend server and apps on their local machine while tunneling into a remote backend. The remote backend is hosted on an AWS EC2 instance which manages backend services and databases. As a frontend dev, having the backend remote keeps me from having to worry about code and configuration that I'm not interested in. Everything "just works". The backend I connect to mirrors it's production equivalent.
After I push a code change up for review, I can launch a "demo box" that QA can use to run tests on. My "demo box" is an EC2 instance with my commit applied on top of the master branch, which then connects to another instance of our remote backend.
The product I work on in particular - Collections - is very backend heavy. We offer our agents an activity feed containing a stream of data generated from actions their clients have taken. The stream is created by synthesizing the data we receive through SNS and SQS.
Additionally, outside of work I increasingly find myself working on websites hosted through AWS. At one point, a friend of mine asked me to help out with a project and I unfortunately had to turn him down as I was completely unfamiliar with the AWS dashboards. There was so much information available in the dashboard that it was overwhelming to make sense of. I did not want to risk misconfiguring his site and inadvertently take his business offline.
As time went on, I noticed more and more how my effectiveness as a developer was becoming increasingly limited. In order to grow, I needed to know how to effectively communicate with the backend members on my team. I needed to develop a better intuition around how to diagnose backend issues without having to become a fully fledged backend developer myself. And I really needed to demystify the AWS console in case I was asked to make changes again in the future.
With A Cloud Guru's scholarship, I worked through the 3 associate courses - Solutions Architect, Developer, and DevOps - over the course of 3 months. I watched the videos, read FAQs and other AWS documentation, and worked through countless quizzes. I sifted through the forums, chatting with other folks about their experience taking the exam. People offered their own tips, which supplemented the course material nicely. Once I felt confident enough, I took the exams. I ended up taking all 3, with one week in between each test.
Finally I started to understand how different parts of the system fit together! The AWS IAM user/permissions console was demystified. At work, when site outages cropped up, I understood what this mysterious "ELB" thing was, and why it was important in the context of the conversation. The "lockbox" our DevOps members kept insistently referring to made way more sense. When my demo boxes ran out of space, I understood how to choose a larger size that was more appropriate for the task at hand. I also finally understood how our single sign on/user impersonation flow works. Perhaps most relevant to my day-to-day, when I noticed user events were not appearing in an agent's activity feed, I had a much better idea of how to understand the breakdown in our SNS / SQS pipeline.
Outside of work, the knowledge continued being helpful - I felt empowered to use AWS to do so much more! I was able to create my own alexa skill, which I used to help me study the material as I prepared for the exams. When I visit public websites now I have a much better understanding around how their workflows may be structured. For example, I learned how websites can implement S3 restrictions on paid content so that only subscribed members can gain access. I also learned how sites can be structured to handle disaster recovery in more effective/low-cost ways. I went back to my friend and was able to actually help him this time - revamping a site his remote contractors had written and hosted on AWS.
The A Cloud Guru scholarship has been instrumental in making me into a more effective developer. The knowledge I've gained will carry forward with me long into the future. I highly recommend other frontend devs work towards getting their certifications. You don't need to be a DevOps person to realize why these skills are important. Any kind of developer, frontend, backend, mobile as well as others, can stand to benefit from increasing their knowledge. You never know where it will end up being useful.
More About Raquel Bujans