BrainsToBytes

One Hundred

This is article number 100. I started this blog around 2019—built it up in March or April, but didn’t start posting until May. I posted my welcome article on May 6th, followed the next day by the first post in my S.O.L.I.D series (which I only now realize I posted as D.S.O.L.I—completely out of order). I think I read somewhere that having a bl...

Read more

Cloud Experiments: Building a Serverless Mixed Pipeline for Processing and Moderating PDF Files

The source code for this article can be found here. Welcome to another cloud experiment! The idea behind these hands-on tutorials is to provide practical experience building cloud-native solutions of different sizes using AWS services and CDK. We’ll focus on developing expertise in Infrastructure as Code, AWS services, and cloud architecture...

Read more

Cloud Experiments Repository Update

Quick announcement. Until recently, I’ve been adding and sharing the labs in the Cloud Experiments series using the blog’s main code samples repository. There’s a bunch of other interesting stuff there—like the Pandas labs and the code for the deep learning series—so it’s still worth checking out from time to time. In less than two weeks, I’ll...

Read more

Using the TypeScript Spread Operator to Clean Up CDK Code

I don’t have much experience with TypeScript—actually, I’d never touched the language until recently when I started writing Infrastructure as Code using CDK. Today I learned a useful trick that can help clean up sections of your stack by putting shared configuration in an object and then using the spread operator to merge those settings into the...

Read more

Understanding S3 Bucket Deletion in CDK

If you’ve been following this blog, you may have noticed that I consistently include two specific parameters when creating S3 buckets: const someBucket = new s3.Bucket(this, "someBucket", { // ... more bucket properties, sometimes none removalPolicy: cdk.RemovalPolicy.DESTROY, autoDeleteObjects: true, }); These parameters work together ...

Read more

Creating RDS Proxy for Existing Database Instances in AWS CDK

I recently worked on a project that required creating and attaching an RDS Proxy to an already existing RDS instance running PostgreSQL. It seems easy enough, but I kept getting a validation error that took some time to resolve. What I Was Doing (This Doesn’t Work) My first attempt used the standard fromLookup function to reference an existing...

Read more

Adding Python Dependencies to AWS Lambda Functions with CDK

Lambda functions are typically executed in environments created from the default runtimes provided by AWS (such as python3.13 or ruby3.4). These runtimes come pre-loaded with many popular modules, like boto3 (the Python AWS SDK), so you often don’t need to install additional dependencies for routine tasks. However, you may eventually need a mo...

Read more

Using AWS CDK v2 Imports in Typescript

Since v2, the AWS CDK has consolidated the stable parts of the Construct Library into a single package, aws-cdk-lib. This means you no longer need to install and reference numerous individual packages for different AWS services—you can simply import them from the base package. In a previous article, I shared a stack for deploying a static Jekyl...

Read more