Programming At Web Scale With Data Caching

Caching is an important aspect of building an application that performs well at web scale. Proper caching can reduce the number of API calls, save on CPU time, make requests faster, the application more responsive, and reduce the infrastructure cost.

We used one of the techniques mentioned in this article to reduce the average response times from upto 200 ms to 3 ms, reduction by a factor of 67.

[Read More]

Validating "Sign in with Apple" Authorization Code

Sign in with Apple launched earlier this year. Developers can use it to have users log in using their Apple accounts. This post outlines validating the authorizationCode received after the user signs in with Apple, generating JWT ES256 signature, verifying JWT signature using RS256 and using the refresh token to get an access token from Apple with implementation details and code samples in Golang.

[Read More]

Creating Custom AWS Lambda Runtime using Lambda Layer

Over the weekend, I spent some time experimenting with the new Runtime API and Lambda Layer that AWS announced last week. The goal was to create a custom runtime that I could use to start writing Lambda functions in PHP. Following is a brief summary of what I learned in the process and steps to create your own custom runtime.

[Read More]

Terraform your Infrastructure!

What is Terraform and why do you need it?

If you have any resources in AWS/Google Cloud/Azure, etc. its a high likelihood that terraform can improve your workflow and make management of your cloud resources a breeze! I have used it with AWS, so, most of this post will discuss terraform in context of AWS. But, it works fine with Google Cloud, Azure, Alibaba cloud, etc.

[Read More]

Continuous deployment of a Static Website

I wanted to set up a blog that scales, is free and takes minimal effort from me to maintain. These days, there are multiple offerings that can be combined to achieve this. But, one of my requirements was also to be able to deploy my new posts and changes easily. I wanted a set up where, once I make any changes, they go live immediately with little to no intervention on my part. [Read More]