Skip to main content

Cloud Resume Challenge — Phase 3: Backend Technologies & APIs

·1 min read

by Frank Doka

Article

Cloud Resume Challenge — Phase 3: Backend Technologies & APIs

Phase 3 adds a live visitor counter to the resume — a serverless backend that the JavaScript frontend calls on each page load.

What I Built

  1. DynamoDB table — Single-table design storing the visitor count. Created initially through the console, later rebuilt as IaC in Phase 5.
  2. Python Lambda function — Reads the current count from DynamoDB, increments it, writes it back, and returns the new value. Tested locally with AWS SAM before deploying.
  3. IAM permissions — Scoped the Lambda execution role to only the specific DynamoDB table and actions it needs (GetItem, UpdateItem). Least privilege from the start.
  4. API Gateway — REST API with a single route that triggers the Lambda function. Tested the endpoint with Postman to confirm correct JSON responses before wiring up the frontend.

Lessons Learned

  • SAM for local development — Running Lambda and DynamoDB locally with sam local invoke caught bugs before they hit AWS.
  • API Gateway testing — The built-in test console is useful for quick checks, but Postman gave me more control over headers and request bodies.
  • Atomic counters — Used DynamoDB's UpdateExpression with ADD for atomic increment, avoiding race conditions on concurrent requests.

More articles

Text-to-Speech Serverless App — Phase 4: Frontend Integration & Retrieval

Completing the end-to-end flow — retrieval Lambda, React audio playback, and the full submit-to-listen pipeline.

Read more

Text-to-Speech Serverless App — Phase 3: AWS Polly, Translate & S3 Storage

Wiring in Amazon Translate for multilingual support and Polly for speech synthesis, with audio output stored in S3.

Read more