AWS Certified Cloud Practitioner

Hunter Ulrich
|

I'm a Software Engineering student at BYU-Idaho. I'm learning cloud by building real projects on AWS, and I'm looking for a cloud engineering internship.

Stack
AWSTerraformLambdaDynamoDBGitHub Actions
... site visits
Hunter Ulrich
AWS Cloud Practitioner
CP

AWS Certified

Cloud Practitioner

Amazon Web Services

Verify on Credly →
+ Developer Associate in progress

Hey, I'm Hunter.

I'm studying Software Engineering at BYU-Idaho, and the part I like most is cloud infrastructure. This website is my biggest project so far. I set up everything on AWS with Terraform, wrote the Lambda functions, and it deploys itself through GitHub Actions whenever I push a change.

Outside of school and coding, I like spending time with my family, staying active, and playing guitar.

AWSAWS
TerraformTerraform
GitGit
DynamoDBDynamoDB
CloudFrontCloudFront
IAMIAM
API GatewayAPI Gateway
CloudWatchCloudWatch
LambdaLambda
S3S3
JavaScriptJavaScript
HTMLHTML
CSSCSS

What I've built

01 Cloud Resume Challenge

Portfolio Website

The site you're looking at. The files live in S3 and are served through CloudFront. The visitor counter calls a Lambda function through API Gateway, which updates a count in DynamoDB. Everything is set up with Terraform, and GitHub Actions deploys it when I push changes.

AWS Terraform S3 Lambda API Gateway DynamoDB CloudFront IAM CloudWatch GitHub HTML CSS JavaScript
02 Serverless

Serverless Chatbot

A simple chatbot that runs on Lambda behind API Gateway. It answers questions about my resume, skills, and projects. You can try it on this page: open the chat in the corner and type "help".

AWS Lambda API Gateway Terraform JavaScript HTML CSS
03 Frontend / API

Weather App

A weather app I built with JavaScript. You search for a city and it shows the current weather plus hourly and weekly forecasts, pulled from a weather API.

JavaScript HTML CSS GitHub Git

How this site is built

Click on a service to see what it does for this site.

👤
You
CloudFront
S3
API Gateway
Lambda
DynamoDB
GitHub Actions
Terraform

Click a service above to see what it does.

What I've learned

Getting rid of AWS keys in GitHub

My pipeline used to sign in to AWS with access keys saved as GitHub secrets. Those keys never expire, so if they leaked someone could use my account. I switched to OIDC. Now each GitHub Actions run gets temporary credentials from an IAM role that only my repo can use, and there are no AWS keys stored in GitHub at all.

The time my pipeline tried to rebuild everything

When I moved my Terraform state to S3, the real state file was still on my laptop. The first CI run saw an empty state and tried to create every resource again. Most of it failed with "already exists," but it did make a few duplicate APIs and a certificate. I deleted the duplicates, uploaded the real state, and ran terraform plan to make sure it only showed small changes before letting CI deploy again. Now I always check where my state lives before I change a pipeline.

Get in touch

I'm looking for a cloud engineering internship. If you have a question or an opportunity, send me an email or message me on LinkedIn.

Try the chatbot →