AWS Solutions Architect

Interested in creating complex cloud-based solutions, while also balancing people-skills and programming? You will very likely be interested in becoming an AWS Solutions Architect.

An AWS Solutions Architect (AWS SA / “SA”) is responsible for (but not limited to) the following:

  • Understanding AWS Cloud Technologies at a deep level
  • Creating cloud-solutions that fit the 5 Pillars of the Well-Architected Framework.
  • Effectively translating complex concepts into easy to understand statements.
  • Delegating multiple teams to ensure safe and effective use of the cloud environment. (this is more for an AWS SysOps Administrator, but the positions can overlap at times, to my limited understanding).
  • Stay on top of bleeding-edge technologies.

There are quite a few benefits to being an AWS Solutions Architect, including, but not limited to:

  • $120k base-entry salary [1][2]
  • Work-from-Home as desired, typically, at least. (Information based from what I’ve heard from an official AWS SA personally)
  • Able to live within one time zone away from assigned AWS headquarter.
  • Stock-options
  • Great benefits
  • An entry-level position, with the caveat that you need to meet the high-demands of the position (note that most aws solutions architect job positions vary in their demands, quite literally visible on the job postings, what I’m about to post is what I personally deem to be the “typical” posting [3]):
    • Around 3 years of prior technical work experience (e.g. IT, developer, etc)
      • After talking with an AWS Solutions Architect who hires other AWS Solutions Architect, it sounds like most of the people who make the final decisions care more about your ability to take on complex problems effectively. They teach you people skills to a certain extent, and the 3+ years of prior technical experience typically isn’t a requirement if you show such technical-problem-solving abilities.
    • Experience with programming languages and paradigms
    • Ability to travel, amount varies, typical is about 30%.
    • Intermediate understanding of AWS resources
    • B.S. degree

References

  • [1] https://www.ziprecruiter.com/Salaries/Entry-Level-AWS-Solution-Architect-Salary
  • [2] https://www.glassdoor.com/Salary/Amazon-Solutions-Architect-Salaries-E6036_D_KO7,26.htm
  • [3] https://www.amazon.jobs/en-gb/jobs/1703388/solutions-architect

Development Workflow

In the beginning of the project, everyone will be working together to create deliverables that fall under the following categories:

  • Minor: A task that should take less than 2 hours.
  • Major: A task that should take less than 8 hours.
  • Epic: A task that should take less than 40 hours.

In addition to this, these tasks should have tags added to them. Tags will be more solidly established during this beginning-process, but some foundational ones are:

  • Progress Halted
  • To-Do
  • In-Progress
  • Completed

Lastly, tasks should have categories. Categories will exist depending upon if someone exists in the team to support a particular category (if there aren’t any website designers, there’s no need for that category). Here are what they may look like:

  • Back-end
  • Front-end
  • Design
  • SA

An example ticket, visible on Notion, may look like:

You can in the ticket title: there’s some information regarding what should be done, and there’s the ticket-id. Since this is a style-based ticket, this would be created by a website designer (if we get one), or by a front-end developer. You assign yourself tickets as you can, but by the end of the project, the development effort should be evenly spread. This identification is necessary, even if it’s not created yet. If you take on this ticket, but don’t want to start development immediately, copy the ticket id and paste it in as a comment where it would be created in the project. This is critical for speeding up development and issue-fixing.

There is a ticket-id naming scheme. It goes as follows (and must be followed): [yourInitials-functionOrElementName:filename]. I chose [lp-div.resourceWrapper:resource.css], as:

  • lp: my initials
  • -div: the element name
  • .resourceWrapper: optional additional information about the function or element
  • :resource.css: the name of the file. If there are multiple files this needs to be done for, or multiple elements, then use a semi-colon. For example: [lp-p;span;a.animatedUnderline:resource.css;survey.css]

Web Development Tech-Stack

Online AWS Environment Constructor, a 2021-2022 Oregon State University Senior Capstone project led by Lucas Pichette.

Front-End:

  • HTML5
  • CSS3
  • JavaScript ES6

Back-End:

  • AWS
    • Route53
    • S3
    • CloudFront

Possible additional technologies if time/availability permits:

  • AWS Lambda
  • AWS RDS
  • JavaScript framework such as Vue / React / Angular

Reasoning Behind Chosen Technologies

Front-End technologies are all standard to web development. Due to their established nature, every web browser and search engine understands how to use the information from it easily, meaning it’s very SEO-friendly.

  • HTML5: The standard for DOM creation, easy to parse by web bots, and easy to translate into a visible structure by the browser for the client.
  • CSS3: The standard for DOM customization/styling. Easy to translate by web browser into visible changes to the DOM by the browser for the client.
  • JavaScript ES6: The standard for user interaction in websites. Some interaction can be created without JavaScript, but for the most part JavaScript, or a child language of JavaScript, is needed in order to enhance user interaction.
  • AWS: Highly affordable, exchanging capital expenses with variable expenses. Furthermore, AWS is the most secure and reliable cloud technology provider in the market.
    • Route53: A Domain Name System (DNS). In our project’s case,it translates a Domain Name to an S3 Endpoint Alias. Typical DNS services don’t have this kind of service, and instead just translates Domain Names to Internet Protocol (IP) addresses.
    • Simple Storage Service (S3): A file storage system that allows for static-hosting of stored files. Ludicrously affordable, extremely durable, and extremely easy to use. One of the standards, if not THE standard, of AWS services. By using Lambda we can turn a statically-served website from S3 into a dynamic website with ease, and reducing costs drastically. No more LAMP-stacks with server-less architecture around!
    • CloudFront: A Content Distribution Network (CDN). Delivers content from S3 to edge-locations around the globe for caching, reducing serving expenses. You can invalidate cached resources as well, allowing for forced object refreshes.

The nature of the project is to deliver content as quickly as possible while being extremely easy to use. Nothing particularly crazy is going on in the background, in fact, in theory everything will be served to the client statically, and then JavaScript will be used to dynamically changed the content on the screen depending upon their input.