The guide I used to pass my AWS Solutions Architect exam on my first try

AWS Solutions Architect Study Guide

I achieved my AWS Certified Solutions Architect Associate certification back in September of 2020. You can check out my badge here. I wrote about my experience on Medium and my blog but wanted to share my actual study guide so that others can get certified just like me. I’d recommend checking out my first post on getting AWS Solutions Architect certified to decide if you’re ready to commit to studying. The test isn’t easy and there are no quick paths, getting certified requires 80–120 hours of studying and even then there’s no guarantee you’ll pass. I spent 7 months studying, for a total of around 100 hours and felt shakey during the test. I’m listing my study guide at the bottom of the article but read my explanation of it in the paragraphs below. You should also feel free to adjust this guide as needed. I came to AWS with some serverless knowledge so I spent very little time studying those services. …

Understanding the Angular Lifecycle

What is Angular?

Taken from the Angular docs, “Angular is a framework and platform for building single-page apps”. It is one of the big three frontend frameworks along with React and Vue. Angular consists of a few core concepts: Modules, Components, and Services. Each of these core concepts has a few concepts of its own. Modules have root modules and feature modules. Components have root components, templates, views, data binding, directives, and pipes. Services have providers and use dependency injection. This may seem like a lot because it is. …

Java beans? Nah Spring beans

What is Spring?

Spring is a lightweight framework for Java often used in, but not limited to, enterprise development. Spring is modular, meaning you only need to pull in the packages you use. Spring has several groups of modules Core, Web, Data Access, and Miscellaneous. Spring enables inversion of control(IoC) by using dependency injection(DI), this decouples the code and makes testing easier. The ease of DI is often seen as the biggest benefit of using Spring. Spring has some framework-specific terms, one of the most common terms used is a bean.

Image for post
Image for post
Photo by Boris Smokrovic on Unsplash

What is a Spring Bean?


Before learning about beans let’s look at the containers that use them. The Spring container takes a Java class and some configuration metadata and creates an application. Components passed to the container are Spring Beans. The metadata provided to the container can get set in three different ways: XML, annotations, and Java. Annotations are the ones I see most in my enterprise work environment. There are two types of containers in Spring: BeanFactory and ApplicationContext. Bean factory is an older lightweight container that provides backward compatibility. The ApplicationContext container has all the functionality of BeanFactory and more, making it preferred. …

Get certified not dumped

Get certified in X months articles are crap

Last month I attained my AWS Solution Architect Associate Certification(CSAA). It’s the first certification of my IT career and I’ve learned a lot from the whole experience. When researching the certification I came across a ton of articles talking about how to get it in a few months. I bought into these articles and began my studying thinking that I would finish in three months tops. What I’ve learned is that those articles are hyper misleading. Can you get your CSAA in a month or two? Sure, but don’t expect to do anything outside of work and study. I want to share my thoughts on how us mortal humans can get certified while working a 9–5(or longer) job, having a family, and keeping our pets happy. …

Let’s start the the high level. Amazon Simple Storage Service, better known as S3, offers a super durable, scalable storage solution. It offers 99.999999999% durability, also known as eleven 9’s. This means that once every 10,000 years you would lose some data in S3. All S3 tiers offer encryption at rest and the ability to move data to different storage classes using lifecycle policies. There are seven flavors of S3. Standard, Standard-Infrequently Accessed, Intelligent Tiering, One Zone-Infrequently Accessed, Glacier and Glacier Deep Archive.


This is your most expensive S3 option. The key thing to remember about S3 standard is that it is for frequently accessed data. It has a 99.99% availability. IT also provides protection from destruction of an availability zone, and has eleven 9’s of durability. This high availability and durability comes with the steepest price tag at $0.023 …

Three Lessons in Three Years

To write this post means that I’ve now spent three years in software development. Time flies and acknowledging that is scary. It feels like the other day when I walked into my first computer science class when it has now been ten years. Each year I’ve told myself I should write one of these “what I’ve learned articles”. Well this is the year, year three. My goal with this series is to revisit this post each year. I plan to add one more lesson I’ve learned with each year. …

take your code to the next() level

Image for post
Image for post
Photo by Karim MANJRA on Unsplash

What is it?

I view middleware as a layer of code that sits between a request and a response on a web server. Middleware can:

  • execute code
  • make changes to request and response objects
  • return a response
  • continue the request-response cycle by calling another middleware

How does it work in Nest.js?

Nest.js builds on top of Express. If you understand how to use middleware in Express you can apply many of those same concepts to Nest. You can implement Nest middleware as a class or in a function (also known as functional middleware). I almost always create my middleware in a class. Implementing in a class lets me organize all my middleware in a specific folder. …

Recently I’ve caught myself wondering “if I could tell college me to focus more on one thing what would it be?”, my answer is design patterns. This was glossed over in my college programming courses with teachers saying things like “you’ll come to this design pattern as you refactor”. While this is sometimes true it takes away the emphasis on how important design patterns are.

Cowboy coding was standard in college, there were no design sessions before coding. No design sessions meant my code always did lead me to the design pattern I needed. Once I entered enterprise IT I realized knowledge of design patterns, and when to use them, separates the top tier developers from the entry and intermediate developers. Design sessions occur almost daily, and there is no code to lead you to a design pattern in these sessions. …

I’ve recently moved into an application security part-time role at work and felt the need to document some of my learnings. This article, or any security-related articles, are not intended for use in hacking. I am in no way responsible if you try to use this knowledge for any malicious activity. I am in no way a security expert, if you try anything in this article you will get caught. I have also been vague on certain parts of the article.

SQL injection may be the most famous attack vector in computer programming. A successful SQL injection can net all sorts of sensitive information stored on a database. The reality is that we live in a data-driven world and that data has to be stored somewhere. As technology has become more widespread companies have started investing in security to prevent these attacks but bad actors are always evolving and improving their attack vectors. …

Image for post
Image for post
Photo by Lena Rose on Unsplash

What if I told you The X-Men can make you a better software tester? Well they can’t but their supervillain, William Stryker, can.

This article is all about how to improve your unit tests using mutation testing. There are several mutation testing frameworks but the framework I’ll be talking about is called Stryker, aptly named after the supervillain from X-Men who wants to kill all of the mutants. I’ve been using Stryker for over two years now, in those two years I’ve implemented Stryker on three large enterprise projects and given several presentations on the framework.


I want to start this article with a warning, mutation testing is not for the faint of heart. At first, it’s tedious, time-consuming and often drags out the testing phase of development, often requiring developers to write even more unit tests. Why even bother with it? Because it is a foolproof way to ensure your unit tests are actually providing value. …


JT Earl

Programmer Since 17. Currently working in front-end and mid-tier programming for a finance company. Check out my Tech blog @

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store