Building microcontroller projects is a great way to level up your electronics and programming skills.

The purpose of this post is to share some setup instructions to get you up and running with your Arduino Uno and TinyGo as quickly as possible.

TinyGo is an open-source project designed to bring the Go programming language to microcontroller devices. It reuses libraries in Go language tools along with LLVM to compile languages written in Go for various target microcontrollers. At the time of writing the TinyGo project supports 53 different boards however this post focuses on the Arduino Uno board.

Here are…


Middleware is a powerful idea that allows us to decompose complex systems into layers of abstractions. When we discuss middleware in the context of Go we are referring to the ability of some self-contained code (third-party or other) to hook into a server’s request/response processing before or after its handler is invoked. This is a powerful concept which allows us to separate cross-cutting concerns such as:

Observability

Logging

Authentication

Our middleware code typically does one thing and then passes the request to the next layer or final processing before returning to the client. …


AWS recently announced support for container images for its Lambda service. I’m a fan and advocate for all things serverless so any improvements in this space are always welcome. The following paragraphs attempt to share my initial findings as well as some tips to get started with this new capability.

The first thing to point out here is that container support does not mean Lambda can run any container. Instead, you have the option of using one of the AWS base images or if you’re so inclined you can roll your own Lambda compliant custom image. Functions must also follow…


In this article I want to touch on the nuances associated with client-side routing when deploying a Gatsby site behind AWS CloudFront.

CloudFront is a great choice for serving your static site not only for improving content delivery (through its network of Edge locations) but also because it allows you protect your S3 bucket content using Origin Access Identity (OAI), so its well worth the additional setup.

Once your bucket is configured as a static website AWS S3 automatically handles request redirects to the websites index document where request handling can be done by the client-side router function. …


I wanted to quickly document the process of enabling CORS when working with API Gateway’s Lambda proxy integration. Proxy integration allows you to call a Lambda function in the backend. Enabling the proxy integration removes the standard API Gateway integration response and places the responsibility of returning CORS headers in the hands of the backend service. Many questions online have emanating from this shift of responsibility. I’m hoping this article saves others time by presenting the configuration required to allow CORS requests to your APIs.

CORS Refresher

A common requirement when building APIs with AWS API Gateway (but not limited to API…


In this article, I want to walk through the process of integrating a Stripe asynchronous subscription event with AWS EventBridge.

In a nutshell, EventBridge is a serverless event bus which hugely simplifies the process of building event-driven applications. This simplification is made possible with AWS taking care of event ingestion, delivery, security, authorization, and error handling.

What about Stripe? It is a fully integrated payments platform offering a rich set of APIs, a client library available in a range of languages, webhooks and a CLI which greatly simplifies life for a developer.

There are still several moving parts to consider…

Colin Duggan

Tech Lead | AWS Community Builder | AWS Solutions Architect Pro | Passionate about learning | Languages include Java, Go, Typescript, and more recently Rust

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store