How I Built My Cloud Resume

A serverless resume powered by AWS

Tech Stack

  • AWS S3 – Hosting the static website
  • CloudFront – Distributing the content
  • API Gateway – Handling HTTP requests
  • AWS Lambda – Processing visitor count updates
  • DynamoDB – Storing visitor counts

How It Works

Each time someone visits my resume, an API request is sent to AWS API Gateway, which triggers a Lambda function. This function updates the visitor count in a DynamoDB table and returns the latest count, which is displayed on my website.

Here’s the flow:

  1. User visits the website.
  2. JavaScript calls API Gateway.
  3. API Gateway triggers AWS Lambda.
  4. Lambda updates visitor count in DynamoDB.
  5. The updated count is returned and displayed on the website.

How My Cloud Resume Updates Automatically

I’ve integrated GitHub Actions into this project to automate the deployment process whenever I update my code. Here’s how it works:

CI/CD Workflow Overview

  1. Code is pushed to GitHub This triggers the GitHub Actions workflow.
  2. GitHub Actions deploys changes to S3 The workflow syncs updated files to the AWS S3 bucket.
  3. CloudFront cache is invalidated This ensures the latest version of my website is served to visitors.

Challenges & Lessons Learned

Some of the biggest challenges included:

  • Setting up proper IAM roles for Lambda to access DynamoDB.
  • Enabling CORS in API Gateway for the visitor counter.
  • Ensuring the Lambda function returned JSON data in the correct format.

Future Improvements

Some features I plan to add:

  • Logging visitor details (e.g., country, device type).
  • Adding a contact form that sends messages via AWS SES.