Starting out on your AWS Journey? Here is what I learned
Cloud is an amazing platform, it has driven companies all over the world to shift, adopt a new way to develop, and host our applications.
I had the pleasure to work with great mentors and companies in various industries that have helped me get this far. I was introduced to AWS four years ago. From that point on, it has been an endless process of learning, failing, and finding new ways to implement new solutions. In this article, I would like to share what I have learned so far in this journey and I hope you can take away a few things.
Go slow to go fast
“Going slow means investing in the things that matter long term and that take time to develop, so that we can move quickly and become successful over the long haul.” — Regan Bach
The chances are slim that you would be learning all 200+ services offered by AWS. Take the first step to learn each service one by one. As you are in your early stages, the more you concentrate now building your foundation — you will find yourself gradually gaining confidence in your work and decision making. You will only learn each service as you use it multiple times in different situations even in the process of breaking things, researching, integrating with other services, and playing around with its feature set. Having a degree in Information Systems where you learn a bit of scripting/infrastructure/networking/databases did play a role in helping me understand cloud services a bit faster.
Enjoy the process of learning the certifications
You are likely to receive bigger recognition if you put what you learned to use within your company or product.
The key is to learn it multiple ways, build your own understanding, and implement the optimal solution for your application.
- Going through certifications will give you an additional layer of understanding of how services work and the ways you can implement them. Like with all things you will only learn if you are interested in it. If you are in the tech industry and working in the cloud you may be in here for the long run so try to enjoy every bit of it. If you can find ways to output the knowledge you have gained, your work will definitely show. Some of the ways you can output what you learned are to follow labs during your certification process, teach someone, answer any questions on Reddit/StackOverflow, share your experience, write it in a blog, make youtube videos, document— start creating your own architecture proposals, proof of concepts, cloud architecture improvements, comparing services, and figuring out which service solves which problem on your own. Question the current system within your company and only go forward if it makes sense to you. This way you are evaluating how much you know, how well you understand the concept, and how well other people are receiving it. Always be in a constant feedback loop. You will also learn a lot more when other people ask you questions. Put yourself out there and be challenged, this is a step to progress.
The more you understand the architecture and the tools you are using, the easier it is to debug, otherwise, you are going through a maze blindfolded.
- Ask your team for cloud architecture diagrams or create your own for your own understanding. There are tools like Lucidscale that automatically design the architecture for you.
- You will find yourself running into a wide variety of problems. I would ask you to note down the steps you take to troubleshoot. Slowly you will see a pattern that will help you solve future problems faster. It can be permissions assigned to a user or a service, it could be a networking issue where your route tables are not configured properly, may also be throttling, code errors, or configuration settings. Create a ticket internally for each problem you see and find a fix for it as soon as you can get to it
- The first thing you would want to do when you run into a problem is let the team know. Even if it's your mistake being as transparent as possible will help you reach the solution faster. Own your mistakes and have the courage to talk about them. Eventually, someone will run into it — now you just need to document how the problem occurred, how it could have been prevented, what you learned, and share that with the team. Knowledge sharing like this is important as your peers won't make the same mistakes and cost the company more time in the long run.
Abundant of Resources
- Ask your company to get you to access one of these accounts for your learning purposes — Pluralsight, Udemy for business, ACloudGuru/Linux Academy. If not invest in it and get it yourself — don't depend on anyone.
- Leverage AWS Customer Support, ask for help, reach out to your friends, post your problems on StackOverflow/Reddit/public forums, learn from blogs/youtube, reread the AWS blogs/documentation/tutorials to connect the dots, google it — chances are someone has already gone through the same issue, and make practical experiments— you will definitely get closer than where you were before.
Be up to date
- A day can pass by and there might be 20 new features or updates to your AWS services. Now you have to go learn what they do, their impact, how much work to implement, now your team has to decide when and how to implement them. Spend the time to go through each of them and showcase to the management that there are critical items that we need to take care of or new features that we need to leverage.
- Its a given that you learn a lot of things from everyone. Network to find mentors, peers and someone whom you can talk to whether they are in your industry or not. You should always be looking and thinking beyond what you do. Spend the time to seek guidance and advice, learn how they faced technical problems, what did it take to solve them, ask lot of questions — they will be more than happy to answer them. You don't get what you don't ask for. I believe that building connections and having conversations are still underrated, it really got harder during the pandemic.
- Early in my career, I was introduced to a lot of meetup groups, went to AWS events, went to my own company events that introduced me to a lot of directors, solution architects, developers, and even got to meet a couple of CEOs. Not all advices need to be taken but having someone there who has seen and accomplished a lot more than you have and arenice enough to lend their time to you, something to be thankful for. You take all that to form your own understanding and make your own decisions. Now you get to extend the gesture to help people who are new to the game.
- Cloud is great, its not great at everything yet. You will be introduced to a variety of third-party tools that will integrate well with the cloud provider that can help provide you with cloud monitoring, maintaining your infrastructure, code repository, testing, deployments, task management, and many more. Not everything is perfect as it stands, as new products and features come out every day its whatever at that moment makes sense for your team in terms of cost, automation, usability, all-in-one type solutions, and how time-saving it is. If you look at your architecture at a high level, the cloud will be just one piece to your whole pipeline.
- There are plenty of cloud opportunities out there. Ask around for any referrals from alumni, apply on LinkedIn, reply to any recruiters that reach out to you but never give up. While you wait on responses, keep on working on the side to improve your resume. Build your own cloud solutions, work with any services that spark your interest (machine learning?), leverage native CI/CD solutions to deploy your own software applications, for the most part, you have no limits on what you can do in the cloud — just watch out for the costs. If you are applying for jobs right out of college make sure you understand your technical concepts well, interviewers mainly want to know what you did in your internships, projects you have worked on by yourself or in a group, and how hungry you are to learn more. If you have put in the work, genuinely understand it, and be able to explain — you should be good.
- When applying, pay more attention to your role and duties (what you are being asked to do) than salary in the early stages of your career if you don't have any prior experience. Apply to how many ever jobs you can, genuinely understand where the company stands, what the teams are working on, and how you will be playing a part in it. Once it comes to the deciding factor — pick a company that has a healthy work culture that will bring the best out of you — even if it sounds the hardest, challenging and uncomfortable. Be excited about it, people will be there to help you if get stuck. One of the biggest regrets you can make is to be in a job with a stagnant role where you are not learning anything new. The more you get yourself immersed now, the more opportunities open up through your mid-career. By the time you get to your mid-career they are looking for a person who has worked in multiple environments, learned a lot through failures, is able to explain technical matters well, learns quickly, has a more diverse skill set, and has confidence to bring new solutions to the table.
Pillars to help guide your architectural decisions
- Designing your architecture can be complicated without a framework to follow. Use the principles and best practices from AWS Well-Architected Framework to make better decisions when it comes to working with services in the cloud. Pillars include Operational Excellence, Security, Reliability, Performance Efficiency, and Cost Optimization. If you are currently working in AWS Environment, or in the future when you want to recommend an architectural solution to a future company or client, have these running in your mind and use them also as a checklist.
A career is a process
- Like any other industry, it's all about honing the concepts as you get to them, learning a little bit of everything, spending time to think how certain things are connected or can be connected, understanding why things are being done a certain way, building your skills and gaining your knowledge incrementally. As you move up the ladder, you will use this experience to make strategic business decisions and become a visionary for a company.
- Like any other new technology, it takes time to be well versed in it. Cloud covers a lot of technological areas where you can literally experiment with any service with pay as you go model. There is a lot to learn out there so take it one step at a time, all the understanding will fall into place in a matter of time.