βοΈ Cloud Engineer | Enterprise IT Professional
Building cloud projects, breaking things responsibly, and documenting what I learn along the way. βοΈπ οΈ
AWS β’ Terraform β’ Linux β’ Docker β’ Jenkins β’ GitHub Actions β’ CI/CD β’ Cloud Troubleshooting
π Explore My ProjectsI am an IT professional with 18 years of experience supporting users in enterprise environments and 21 years with Allstate. My background includes technical support, troubleshooting, customer service, documentation, problem-solving, and supporting business-critical technology.
I am expanding that experience into cloud engineering through hands-on projects using AWS, Terraform, Infrastructure as Code, Linux, Docker, Jenkins, GitHub Actions, automation, monitoring, and CI/CD.
My projects focus on more than simply getting something to deploy. I want to understand how the pieces connect, what happens when something breaks, how to validate that the environment actually works, and how to make the next version more secure, repeatable, and reliable.
This portfolio is built with HTML and CSS, maintained in GitHub, stored in Amazon S3, and delivered securely through Amazon CloudFront. Amazon Route 53 provides DNS routing for the custom domain, while AWS Certificate Manager provides the TLS certificate used for HTTPS.
AWS Certificate Manager secures both mandyreed.com and www.mandyreed.com with HTTPS. Source code and version history are maintained in GitHub.
These are the projects where I get to build things, troubleshoot them, figure out why they broke, and occasionally wonder why I thought automating everything would be easier. π
It started with one manually deployed Jenkins server. Then I decided Terraform should do the work. π
Deployed a Jenkins server on AWS using Terraform, progressing from a manual proof of concept to reusable Infrastructure as Code. Provisioned EC2, Security Groups, and private S3 artifact storage, automated Jenkins installation with User Data, and implemented an IAM Role and Instance Profile with least-privilege S3 permissions. Validated temporary AWS credentials and tested artifact upload and download before safely destroying the Terraform-managed infrastructure.
View RepositoryWhat happens when you start deleting Jenkins containers on purpose? Turns out, quite a lot. π³π
Built and managed Jenkins in Docker while exploring container lifecycle, persistent storage, Docker Compose, and custom image creation. Tested data persistence by intentionally removing and recreating Jenkins containers, then built a custom Jenkins image using a Dockerfile and verified the customization with curl inside the running container.
View RepositoryBuilding a portfolio was easy. Getting DNS, HTTPS, caching, and a custom domain to cooperate was the adventure. π
Designed and deployed this cloud engineering portfolio using Amazon S3, CloudFront, Route 53, and AWS Certificate Manager. Configured a custom domain with DNS routing and HTTPS/TLS, maintained source control through GitHub, and troubleshot deployment, caching, domain registration, DNS, and content delivery issues.
View Live Portfolio View RepositoryWhat if a GitHub push could hand work directly to generative AI? Naturally, I had to find out. π€
Built a CI/CD-style workflow using GitHub, Amazon S3, and Amazon Bedrock.
View RepositoryOne audio file went into AWS. Several services later, the cloud was speaking another language. π
Created an AWS pipeline using Amazon Transcribe, Translate, Polly, Lambda, and S3.
View RepositoryUpload an image and let AWS figure out what it is. That sounded like a perfectly reasonable experiment. π
Built an image-processing workflow using Amazon Rekognition, DynamoDB, Lambda, and S3.
View RepositoryBecause apparently reading text myself was too easy, I taught AWS to say it out loud. π
Created a serverless text-to-speech solution using Amazon Polly, Lambda, API Gateway, and S3.
View RepositoryThe goal was simple: push code and let the pipeline handle the deployment. Much nicer than clicking everything manually. π
Built and deployed a static website using Amazon S3, CloudFront, and CodePipeline.
View RepositoryNo README? No entry. Sometimes automation needs boundaries. π
Created a GitHub Actions workflow that validates required repository files and logs results to Amazon CloudWatch.
View RepositoryThe technical skills matter, but some of the best lessons happen somewhere between βthis should workβ and βwhy is THAT happening?β π
A successful deployment does not automatically mean the application actually works. I validate the environment and prove the application works too.
Troubleshooting gets easier when I understand how every service connects instead of looking at one component in isolation.
Least privilege is more meaningful when I test the permissions and verify that the application can do exactly what it needs.
Building cloud resources is fun. Knowing how to safely tear them down is part of understanding the full lifecycle.
Building the project is only half the story. I also document what happened along the way: the troubleshooting, mistakes, lessons learned, and occasional βwhy is THAT happening?β moments. π
From manually deploying Jenkins to reusable Infrastructure as Code, IAM role-based S3 access, environment validation, and safe Terraform cleanup.
Read on MediumA hands-on Docker and Jenkins story covering container lifecycle, persistent volumes, Docker Compose, custom Docker images, and the surprisingly useful lesson that deleting a container does not have to mean deleting your data.
Read on MediumA behind-the-scenes look at building and deploying this cloud engineering portfolio with Amazon S3, CloudFront, and GitHub, including the deployment, caching, and custom domain issues I troubleshot along the way.
Read on MediumA Docker troubleshooting story about containers, local environments, consistency, and learning why repeatable environments matter.
Read on MediumA walkthrough of a multilingual AWS pipeline using Amazon Transcribe, Translate, Polly, Lambda, S3, and CloudWatch.
Read on Medium