Put your resume on the cloud

import Video from "./Video"

My portfolio lives in the cloud 🌩

This is what happens when you click on mohammed.tech

Route 53 routes your request to the HTML, CSS and JS files which live inside a S3 storage bucket. These are cached by Cloudfront. That means there's **a copy of them across 200+ locations around **the world. So no matter if you connect from Singapore or France, you'll get the content as fast as possible.

Remember, the internet is a bunch of physically connected computers exchanging information at (close to) the speed of light. Being closer to the information you want, means faster loading times.

Click here if you want to know what's the nearest AWS location to you.

Why Build a Cloud Resume? 🎯

The traditional paper resume is becoming obsolete in our digital-first world. Here's why a cloud-native portfolio gives you a competitive edge:

Performance Matters: Recruiters spend an average of 6 seconds scanning a resume. A fast-loading, interactive portfolio immediately demonstrates your technical capabilities and attention to user experience.

Skills Demonstration: Instead of just listing "AWS" on your resume, you're actually using Route 53, S3, CloudFront, and Lambda. This tangible proof of cloud knowledge speaks louder than any certification.

Conversation Starter: During interviews, you can walk through your architecture decisions, explain trade-offs, and demonstrate deep understanding of cloud concepts. It's a perfect technical discussion catalyst.

Cost Effective: Running this entire stack costs less than $5/month, making it accessible for any developer looking to level up their portfolio game.

The Architecture Deep Dive πŸ—οΈ

Frontend Layer: Static HTML, CSS, and JavaScript files hosted in S3 with static website hosting enabled. This eliminates the need for traditional web servers and provides infinite scalability.

CDN Layer: CloudFront distribution ensures global content delivery with edge caching, SSL termination, and DDoS protection out of the box.

API Layer: Lambda function handles dynamic functionality (visitor counter) without maintaining server infrastructure. It only runs when triggered, making it incredibly cost-efficient.

Database Layer: RDS MySQL instance stores visitor analytics and any dynamic data. For higher performance and lower cost, consider DynamoDB for simple key-value operations.

Meanwhile on the client side

When you connect to the site you trigger a serverless function. This means that instead of having a server running 24/7 waiting for a request, the function only exists on demand.

This function (written in Python because why not) queries my RDS database. It gets the visitor count, adds one and updates the table. The function returns the new value and displays it on the site.

DevOps and Automation πŸš€

Continuous Deployment

On Github, when I push changes to the main branch. They trigger an action that replaces the files in the S3 bucket and invalidates the cached files on Cloudfront. This means that the next time you connect, you'll get the latest version of the files.

Infrastructure as Code: The entire stack is defined using AWS CloudFormation or Terraform, making it reproducible and version-controlled. This approach eliminates manual configuration drift and enables easy environment replication.

Monitoring and Alerts: CloudWatch logs and metrics provide insights into function performance, error rates, and user behavior. Set up alerts for unusual traffic patterns or errors to maintain high availability.

Security Best Practices: IAM roles with least-privilege access, HTTPS enforcement, and regular security updates ensure your portfolio remains secure and professional.

Performance Optimization πŸ“Š

Caching Strategies: Implement aggressive caching for static assets while ensuring dynamic content (like visitor count) updates appropriately. Consider browser caching headers and CloudFront cache behaviors.

Lambda Optimization: Use connection pooling for database connections, implement proper error handling, and optimize cold start times through provisioned concurrency when needed.

Asset Optimization: Compress images, minify CSS/JS, and use modern formats like WebP for better loading performance across all devices.

Cost Analysis πŸ’°

Breaking down the monthly costs for a cloud portfolio:

  • Route 53 Hosted Zone: $0.50/month
  • S3 Storage: $0.02/month (for typical portfolio size)
  • CloudFront: $0.085/month (first 50GB free)
  • Lambda: $0.00 (1M free requests/month)
  • RDS (t3.micro): $12.60/month OR DynamoDB: $0.25/month

Total Monthly Cost: $13-15 with RDS, or $1-2 with DynamoDB

Compare this to traditional hosting solutions that often cost $10-50/month with less scalability and global reach.

But why?

If you've ever deployed your site on a service like Netlify, this process is done auto-magically for you. It's nice to have the option of doing it manually because it gives you freedom. It is a lot of work though. It's like going through the exhaustive process of making a late at home. Buying the beans, grinding them, weighing, working the espresso machine, frothing the milk and doing the latte art. You can also just get one from Starbucks and call it a day. Nothing wrong with one or the other, just depends on your needs. β˜•οΈ

Lessons Learned & Best Practices πŸŽ“

Start Simple: Begin with static hosting and add complexity gradually. Don't try to implement everything at once.

Monitor Everything: Set up CloudWatch dashboards to track performance, costs, and user behavior. Data-driven decisions lead to better optimization.

Security First: Implement HTTPS, use proper IAM roles, and keep dependencies updated. Security should never be an afterthought.

Document Your Journey: Keep notes on architectural decisions, challenges faced, and solutions implemented. This documentation becomes valuable interview material.

Next Steps and Improvements πŸ”„

Enhanced Analytics: Implement more sophisticated visitor tracking with geographic data, device information, and user journey analysis.

API Gateway Integration: Add a proper API layer for better request handling, throttling, and documentation.

Multi-Environment Setup: Create staging and production environments with proper CI/CD pipelines.

Advanced Features: Consider adding contact forms, blog functionality, or project showcases with dynamic content management.

References Thanks so much to swyx for suggesting the cloud resume challenge. Going through it opened my mind to the world of cloud solutions. Now I use them for everything.

Implementing security with AWS Route 53

PD: I set a concurrency limit on the lambda function. This means that even if somebody wants to troll me and spam the endpoint, it's limited to 5 requests per minute.

Ready to Build Your Cloud Portfolio? πŸš€

Building a cloud resume isn't just about showing off technical skillsβ€”it's about demonstrating your ability to architect, implement, and maintain modern web infrastructure. Whether you're a junior developer looking to stand out or a senior engineer showcasing cloud expertise, this project provides tangible proof of your capabilities.

The cloud resume challenge has helped thousands of developers land their dream jobs by giving them real-world cloud experience and a conversation starter that sets them apart from the competition.

Want help building your own cloud portfolio? I've guided 50+ developers through the cloud resume challenge and can help you create a standout portfolio that gets you noticed by top tech companies.

- mohammed 🧑


moha

Β© 2026, Built and designed by Mohammed Abdirahman

Get in touch