Part 1: Refactoring to single-table design in Amazon DynamoDB

Projects Jan 31 2022

This blog post is part 1 in a series on refactoring my daily Chinese vocab app to a single-table design in Amazon DynamoDB. In this post, I explain why I chose single-table design, the resources I used to learn it, and walk through the design process and a few example access patterns.

2021 in review

Personal Jan 15 2022

A look back at things I worked on in 2021 - personal coding project progress, speaking, a new role at AWS, new hobbies, and getting to do a little bit of travel!

Writing unit tests for Lambda functions in Python

Code Jun 28 2021

This post explains what unit tests are and how they can help you write and make changes to Lambda function code more quickly. It also walks through an example Python function and unit test.

My re:Invent 2020 session on getting started with serverless

Media Feb 15 2021

It was such a privilege to be able to give a re:Invent talk this past year, especially one that is so important to me! This session packs in the past 2 years that I've spent building serverless apps in my free time with just a few months of programming experience prior.

2021: Moving to London!

Personal Jan 05 2021

I'm so excited to share one of the projects that's kept me busy over the last few months - moving from Seattle to London for a new role at AWS!

Tips & resources for learning to code

Code Jul 23 2020

Over the past two years, I've learned the basics of Python and JavaScript in order to develop web applications in my free time. In this post, I'm going to share the resources and tips that worked for me while learning to code.

A basic CI/CD pipeline for serverless apps

Tools Jun 16 2020

For deploying my applications, I have a CI/CD pipeline that uses the AWS Serverless Application Model (SAM), GitHub, and CircleCI. In this post, I'll show you how to set it up.

Getting started with serverless on AWS

AWS May 11 2020

If you're looking to get started building serverless applications on AWS, this resource guide is for you! I've gathered tutorials and example projects of my own that will help you progressively grow your skills and comfort level with serverless.

Connecting DynamoDB & QuickSight

Projects Apr 15 2020

Here I'll explain and share code samples for how to set up a pipeline to analyze DynamoDB table data in QuickSight. This pipeline uses Lambda, EventBridge scheduled events, and S3 to generate weekly QuickSight reports.

Serverless Coffee Break

Media Apr 03 2020

I joined James Beswick on Serverless Coffee Break for a quick chat about my serverless development journey. Check out the recording here.

Migrating to a serverless contact management backend

Projects Feb 15 2020

I recently migrated a few core components of my daily Chinese vocab app - including contact lists, subscribe/unsubscribe API, and email sending functionality - from SendGrid to a custom built backend that uses DynamoDB, SES, Lambda, and API Gateway. Here I'll share about my architecture and some of the considerations in the migration.

Integrating DynamoDB in my Chinese vocab app

Projects Dec 26 2019

In my daily Chinese vocab app, I built the ability for users to review past daily words by adding a database. Here I'll share how I designed and implemented my DynamoDB table, including the SAM template I used to define the table, my data structure, and how I integrated it in my Lambda-based application.

Magic: The Gathering card finder app

Projects Oct 05 2019

I built a website,, that lets you search for Magic: The Gathering cards. This post will talk about how I built it using Vue.js.

Studying for the Certified Solutions Architect exam

AWS Aug 30 2019

Passing the Associate Certified Solutions Architect exam was one of the top recommendations I received on how to get more technical depth with AWS services, along with getting hands-on experience. Here I'll walk through how I prepared for the exam.

Developing a daily Chinese vocab app

Projects Aug 19 2019

I built a web app for Chinese language learners to receive daily vocab words, In this post, I'll give an overview of how the app works, how I developed it, and the serverless architecture behind it.