Articles from the blog (Page 2 of 8)

2022 - A year in Review
In 2022 Luciano Mammino was awarded AWS Serverless Hero, confirmed as Microsoft MVP, became Codemotion Ambassador, spoke at 25 events, produced 45 AWS Bites podcast episodes, streamed live coding 36 times, surpassed 8M downloads for Middy and much more. His plans for 2023 include growing his AWS and Serverless expertise, learning Rust and Solid.js.

Invite-only microsites with Next.js and AirTable
Learn how to create a private, invite-only website using Next.js, AirTable, custom React hooks, and Vercel deploy. The post covers backend APIs in Next.js, data storage with AirTable, validating access with invite codes, collecting user input, and deploying the final app.

AWS Solution Architect Professional exam, my notes and tips
The AWS Solutions Architect Professional certification is one of the toughest IT certifications. This post shares preparation tips, exam strategies, study resources, and sample questions to help you succeed.

2021 - A year in review
In 2021 I joined fourTheorem, became a Microsoft MVP, spoke at many conferences, learned Rust, contributed to open source and much more. I reflect on my professional achievements over the past year.

Create resources conditionally with CDK
This post explains how to conditionally create resources in AWS CDK using CfnCondition. It provides a practical example of creating an S3 bucket based on an SSM parameter value. The post covers defining a condition, attaching it to a low-level CDK construct, and importing the conditionally created resource.

Provision an Ubuntu-based EC2 instance with CDK
This post explains how to use CDK to provision Ubuntu EC2 instances on AWS. It covers finding the right AMI, adding security groups, using init scripts, installing AWS utilities, and more.

How to send gzipped requests with boto3
The boto3 Python SDK allows intercepting requests before they are sent to AWS through an event handler system. This article shows how to use it to gzip the payload of PutMetricData requests sent to CloudWatch.

How to to_string in Rust
This article explores how to convert values to strings in Rust using traits like Debug, Display and ToString. It explains the difference between user-facing and debug representations.

Rust shenanigans: return type polymorphism
This article explores return type polymorphism in Rust through examples like Default::default() and a custom dice rolling library. The technique allows writing generic functions that can return different types based on usage. Useful for extensible APIs.

Where to go to learn Rust in 2021
This article provides a list of free and paid resources to learn Rust in 2021 including books, blogs, videos, newsletters, podcasts, communities, exercises, workshops, and open source projects.