You can code a project, but can you build a product? 8 teams compete to prove they’ve got what it takes. Only 7 will advance to next week.
A deploy in one of my CDK projects passed every gate I have — CI, cdk synth, code review — and merged. The CloudFormation stack deployment to AWS failed with: InvalidRequest: Unzipped size must be smaller than 262144000 bytes 262,144,000 bytes is 250 MiB, AWS's hard limit on the unzipped deployment package of a zip-packaged Lambda. A few transitive dependencies had crept in and pushed one function's bundle over the edge. It failed in an uncomfortable place. cdk synth builds the CloudForma
Improving DMS object-mapping JSON with a typed builder API
Balancing idempotency and orphaned resources in the cdk-dms-replication construct
Zero-downtime MySQL to DynamoDB migration using AWS DMS and a single CDK construct
Reducing the toil of generating AWS DMS Infrastructure
A friend runs a lab with custom software that handles sample tracking, inventory management, and reporting. It does nearly everything they need — except print labels. They have Zebra thermal printers on the network and a collection of ZPL templates, but the software has no integration with the printers, so printing labels was cumbersome and time consuming. I built a web app to close that gap — select a printer, paste or upload ZPL, hit print. The whole thing runs as a static React site on S3 a
Several months ago, I was looking for some new music and decided to give Claude a crack at finding me some new music. i'm trying to make an album based playlist. It should consist of 3 (mostly) complete albums. Right now I have Hum - Downward is Heavenward and Weezer - Pinkerton. These two go together very well. Is there a third album we can include in this? This fairly innocuous prompt resulted in Claude suggested a completely unknown to me band that very quickly became one of my
A friend had been building a web app with Claude Code — Express server, vanilla HTML/CSS/JS, in-memory data storage. The app worked and kept growing. But it was running on her laptop with no deployment, no database, and no auth. She needed to get it to AWS and had limited experience with cloud infrastructure. I couldn't see her code, so I built a Claude Code plugin that could walk her through the deployment. The plugin analyzes an Express app, converts routes to Lambda functions, sets up S3 +
I recently revisited cdk-websocket-server, a demo I published in 2023 for running a WebSocket server on ECS Fargate behind CloudFront. The original worked, but it carried unnecessary complexity — EC2 instances backing a Fargate cluster, a custom Lambda to patch CloudFront headers, and a single-stage Docker build running as root. Here's what changed and why. Dropping the EC2 Auto Scaling Group The original created an EC2 Auto Scaling Group alongside the Fargate cluster: // Old approach con
I recently revisited a CDK project I published in late 2022 — cdk-private-rds-with-lambda — and ended up rewriting most of it. The original worked fine, but it carried complexity that didn't earn its keep: projen for project management, an EC2 bastion host for database access, password-based auth via Secrets Manager, and no automated security checks. Here's what changed and why. Removing Projen Projen generates and manages your project configuration files — tsconfig.json, .gitignore, pack
Authentication typically happens in one of two places: the frontend checks if a user is logged in before showing protected UI, and the backend validates tokens before processing requests. There's a third option—verifying JWTs at the edge, in a Cloudflare Worker, before requests reach your backend infrastructure. This approach rejects unauthenticated requests at the edge, preventing them from consuming backend resources. It keeps your authentication provider's secrets out of your backend infras
API keys for backend authentication create a fundamental challenge in web applications: the credentials need to authenticate requests but cannot be exposed to clients. Hardcoding keys in frontend bundles or environment variables leaves them visible in browser developer tools. Anyone who opens the network tab can extract the key and make unauthorized requests. Static configuration files require manual rotation and create operational risk—when a key needs to change, someone has to remember to upda
When building a React SPA with Cloudflare as the CDN it is possible to use S3 for static asset storage. If you have all of your resources typically on AWS, but want some of the advantages of Cloudflare, you can build a system that is very similar to the traditional Cloudfront + S3 architecture. There are a few differences in deployments and setup, but it is generally the same. The typical approach with Cloudflare uses S3 static website hosting with IP restrictions, but this comes with significan
After four months of running a fully self-hosted Ghost CMS on AWS, I made a decision that might seem counterintuitive: I moved to Ghost Pro managed hosting. But here's the thing—I kept all the custom Lambda-powered features I'd built. This post documents that migration and explains why the hybrid approach makes sense. Why Move Away from Self-Hosted? Running Ghost on AWS taught me a lot about ECS, Aurora Serverless, and CloudFront configuration. The infrastructure worked well. Posts publishe
Preparing for re:Invent 2025 If you've been following this blog, you might have noticed things have been quieter than usual. The technical deep dives, infrastructure walkthroughs, and problem-solving posts have slowed to a trickle. There's a good reason for this temporary silence - I've been heads down preparing for AWS re:Invent 2025. The re:Invent Marathon Preparing for re:Invent sessions isn't just about creating slides. It's about building solutions, doing dry-runs, reviewing workshop
How I built and deployed the blog, with a minimal description of Astro static site generator, AWS CDK, Cloudfront, and S3
Ghost requires a MySQL database, persistent storage for content and images, and a way to handle traffic at scale. AWS provides these through RDS Aurora, EFS, S3, and ECS Fargate. This post walks through deploying the core infrastructure using AWS CDK, which allows us to define everything as TypeScript code rather than clicking through the AWS console. The infrastructure we're building costs approximately $175 per month. The largest costs are the database ($47/month) and NAT Gateway ($32/month)
A comprehensive guide on using Cloudflare as a security and CDN layer for AWS-hosted applications, with edge-level API key injection
Learn how to build a Lambda function that automatically downloads survey response data from Qualtrics using their export API
A deep dive into resolving Docker BuildKit attestation manifest incompatibilities that prevent ECS deployments, including investigation steps and solutions.
Getting psycopg2 to work in AWS Lambda can be frustrating. This post shows you two reliable solutions - using pre-compiled binaries for simplicity, and building from source with Docker for production workloads.
How we replaced vector search with AI-powered semantic search using Claude via AWS Bedrock
A comprehensive guide to deploying multiple environments in a single AWS account using CDK, featuring sophisticated deployment strategies, GitHub Actions automation, and real-world architectural patterns
A deep dive into securely managing user-specific image uploads to S3 using presigned URLs and authorizing access for viewing with AWS Cognito.
Create an MCP server that you can use to access your AWS CloudWatch Logs and CloudTrail events for easier troubleshooting and monitoring
Sam Goodwin introduces Alchemy, a next-generation infrastructure as code tool that leverages TypeScript and AI to modernize how we manage cloud resources.
Exploring the architecture and interesting features of a serverless survey application built with AWS CDK, React, DynamoDB, and Lambda@Edge
A detailed guide on sending emails with Microsoft Graph from a Lambda function
Jeff Dickey discusses his polyglot development tools Mise, Usage, and Pitchfork, and how they're revolutionizing CLI frameworks and dev environments.
Probably my best tweet, back when I used Twitter. Saving it here for posterity and as a way to explain why I don't like the term "digital garden".
A detailed guide on how we implemented semantic search using Pinecone vector database and OpenAI embeddings
A detailed guide on implementing secure API Gateway endpoints using Lambda@Edge for request verification and API key management
How to set up GitHub Actions workflows that intelligently handle content vs code changes, with automatic PR creation and selective deployments
This demo will explain how to deploy a multi-region pipeline with AWS CDK by passing parameters between stacks.
In this demo we will see how to deploy an NVIDIA NIM to EC2 with Docker to do your own inference
In this demo we will see how to deploy an application on AWS that will capture insights from GitHub and store them in S3 to be easily queried with Amazon Athena
A simple React application and related infrastructure that will consume Amazon Chime SDK call analytics events
When uploading files and directories during a CDK bucket deployment, `exclude` can be used. This samples shows how to use that feature.
Dax Raad presents SST as a TypeScript framework for AWS serverless development with superior developer experience over CDK.
Vlad Ionescu explores Earthly's containerized build automation and the business challenges of creating developer-friendly CI tools.
This Cloudformation template will deploy a simple EC2 instance to be used as a development server. Several common packages are included in the deployment and keys can be installed during deployment.
CDK Constructs are a great way to create reusable and flexible code for yourself and others. projen makes it easy to create and publish the project. CDK Custom Resources are a way to do complex deployments and deploy AWS resources not native to CDK within a CDK. In this example, an AWS Lambda ...
Erik Bernhardsson explains how Modal is revolutionizing serverless computing for data teams with seamless GPU access and flexible container primitives.