Hello, my name is Eveling Castillo, and I embarked on the Cloud Resume Challenge as an opportunity to expand my knowledge of AWS and gain hands-on experience in building a full-stack, serverless application. Introduced to the challenge by my professor, I saw it as the perfect way to develop practical cloud computing skills while creating a fully functional website.

This experience has been both challenging and rewarding. It required persistence, problem-solving, and the ability to integrate multiple AWS services effectively. By overcoming technical obstacles, I gained confidence in cloud infrastructure, automation, and serverless architecture.

*Technologies & Tools Used *

Throughout the project, I leveraged several AWS services and automation tools to streamline the development process:

  • AWS – The core cloud platform for hosting and managing resources.
  • CloudFormation – Enabled Infrastructure as Code (IaC) to automate AWS resource deployment.
  • S3 – Served as the storage solution for my website’s front-end files.
  • Lambda – Provided a serverless compute environment to execute back-end logic.
  • API Gateway – Facilitated communication between the front-end and Lambda functions.
  • DynamoDB – Stored website visitor data efficiently.
  • GitHub Actions – Implemented CI/CD to automate deployments and ensure a seamless workflow.

Key Takeaways & Skills Gained

Infrastructure as Code (IaC)

By utilizing CloudFormation and the AWS Serverless Application Model (SAM), I automated the deployment of AWS resources. This approach ensured consistency, reduced manual configuration errors, and improved overall efficiency.

CI/CD & Automated Deployments

Integrating GitHub Actions allowed me to implement Continuous Integration and Continuous Deployment (CI/CD), automating the deployment process for my Lambda functions. This eliminated the need for manual updates and ensured seamless deployments.

Front-End Integration with AWS Services

Hosting the website on S3 and configuring CloudFront for content delivery enabled global distribution. Additionally, I learned how to handle cache invalidation to ensure users always viewed the latest version of the site.

Serverless Back-End Development

The back-end consisted of an API Gateway, Lambda functions, and DynamoDB. I developed an API to handle user interactions and store visitor data efficiently. Debugging and optimizing API requests played a crucial role in ensuring a smooth user experience.

Challenges & Problem-Solving

API Integration & JavaScript Troubleshooting

Connecting the front-end to the back-end required writing JavaScript to make API calls to AWS services. Some key challenges I faced included:

  • Debugging CORS (Cross-Origin Resource Sharing) errors that initially blocked API requests.
  • Resolving formatting issues in API responses to ensure proper data handling.
  • Identifying a typo in the API Gateway URL that caused failed requests.

CI/CD Configuration & AWS Permissions

Implementing GitHub Actions for automated deployments introduced its own challenges:

  • Ensuring the correct IAM permissions for GitHub Actions to interact with AWS securely.
  • Debugging syntax errors in YAML configuration files, which are highly sensitive to formatting.
  • Interpreting AWS deployment logs to resolve failed deployment attempts.

CloudFront Caching & Content Updates

After making updates to my website, I initially encountered an issue where changes were not reflected immediately. I learned to configure CloudFront cache invalidation to ensure users always received the latest version of the site.

Lambda Function Debugging

Developing and troubleshooting AWS Lambda functions required:

  • Adjusting IAM roles to grant the necessary access to AWS services.
  • Correcting JSON request formats to avoid errors in API responses.
  • Optimizing execution times by refining function logic and eliminating unnecessary loops.

Conclusion

The Cloud Resume Challenge was a transformative experience that strengthened my understanding of cloud computing, automation, and serverless technologies. Through hands-on implementation, I developed skills in AWS architecture, API development, and CI/CD workflows.

Beyond the technical aspects, this project reinforced the importance of problem-solving, debugging, and adaptability. Every challenge presented an opportunity to learn and grow, ultimately enhancing my confidence in cloud development.

I look forward to applying these skills to future projects and continuing to explore innovations in cloud technology.