I build cloud-based systems for startups and enterprises. My background in operations gives me a unique focus on writing observable, reliable software and automating maintenance work.
I love learning and teaching about Amazon Web Services, automation tools such as Ansible, and the serverless ecosystem. I most often write code in Python, TypeScript, and Rust.
B.S. Applied Networking and Systems Administration, minor in Software Engineering from Rochester Institute of Technology.
In the month since Re:Invent, I’ve put together my own greatest hits list of all the Pre:Invent and Re:Invent announcements. I missed Re:Invent in person, but sessions and announcements were put online almost-live. Sincerely, thank you AWS online events team that put together the live streams. Chalk Talks aren’t streamed, and were what I missed most.
1. The AWS CLI gets a revamp of SSO integration with the aws login command. It obsoletes most of aws-sso-util and awsume by bringing session-aware keys into the main CLI.
2. DynamoDB gets a drastic change: instead of manually making sort keys like ID#123#ORDER#ABC DynamoDB can create composite keys for you. This is only for GSI’s and requires that you use the same source attributes for the multipart key, which isn’t ideal for single-table design. See AWS’ docs for full details.
3. AWS Lambda durable functions creates Step Function-like features in regular Lambdas. Functions can pause for up to 1 year and wait for external services, and use custom retry policies. The announcement is very AI-focused, but this is pretty universally useful. Only JS/TS and Python are supported so far, but this is extremely nice. The main objection I hear to Step Functions is learning Amazon States Language (ASL), and using existing decorator syntax to bring those features to Lambda squashes that.
4. S3 adds conditionals to S3 CopyObject allowing the if-none-match and if-match conditionals to avoid overwriting objects you don’t expect to be there. This comes after 2024’s conditional write support that allowed atomic compare-and-swap (CAS) operations and spackle-punched client-side locking code.
5. CodeCommit got saved! In July, AWS announced CodeCommit would be deprecated and would not accept new customers. AWS rolled this back and will be supporting CodeCommit for the forseeable future. Every service doesn’t need to be supported in perpetuity, but code hosting is table stakes if AWS wants to build other developer tooling (CodePipeline, CodeBuild, etc).
Incremental serverless changes, update your priors accordingly:
Capacity and compute management is changing A LOT. Managed instances for ECS and Lambda, tenant-isolated routing for Lambda, and improved pre-warming are the big themes. Reading between the lines, I didn’t see much new for Fargate and that may mean its features are rolling into EC2-Managed instances as the ECS/EKS offerings grow serverless-er. There’s the new EC2 Capacity Manager for admins to keep an eye on reservations, spot instances, and overall usage. Previously you needed Cost Explorer, the billing console, Excel, and an iron will. I’m not trauma-dumping, you’re trauma-dumping.
I’m a big DSQL fan, and have used it for workloads roughly equal to blowing out birthday candles with a leafblower. There were a ton of capacity and quality-of-life announcements for DSQL. I don’t think my quality of life was impacted by the 90-120 second database creation times, but bringing that under 10 seconds is cool.
psycopg driver to refresh the DB token, this is nice.EXPLAIN ANALYZE VERBOSE and get the predicted DPU (Distributed Processing Unit) usage for each statement.My least favorite announcement was “Tag Policies Enforce required tags in CloudFormation, Terraform, and Pulumi”. I thought this would be an extension to the Tag Editor/Tag Policies support in Terraform to the other Infrastructure-as-Code (IaC) tools. Instead, it’s just validators for Pulumi and CloudFormation without the same auto-tagging support the Terraform tag policy provider has.