Deploying a Static React.JS application to AWS using Github Actions

October 1, 2023 in reactjs

A static web application is an application delivered directly to an end user’s browser without any server-side modification. While a web server is still used, it primarily serves application files directly from disk. For example, an incoming request to https://mywebsite.com/ would result in returning the index.html file from the server root directory. If the returned HTML document references any additional assets (e.g images, css, javascript files), additional requests to the web server would be made, and those files would be resolved from their relative location on the filesystem.

AWS re:Inforce Presentation Migrating to Amazon Cognito

June 14, 2023 in speaking

My colleague Deepak and I had the pleasure to present at AWS re:Inforce this past week. We were invited by the Amazon Cognito team to present learnings from our migration to Cognito across multiple lines of business. The full presentation can be watched on YouTube.

Custom hooks with useReducer to simplify state management

July 26, 2020 in reactjs

Sometimes, storing even minimal state within React components can get unwieldy. For example, imagine a button component which allows a user to like an item in your application. Our component would need to allow toggling the state on or off, and should accept an initial value in case the user had previously favorited the item. In this post, we’ll evaluate creating custom React hooks to encapsulate state management.

Logging in production

March 25, 2020 in nodejs

Logging is an important responsibility of production applications. Logs provide insight into usage, performance, and aid in debugging issues. When implementing logging, there are a handful of considerations to think through. Some obvious decisions include choosing a log format (e.g JSON or plain text), and determining when and what the application should log.

Reactive Python on RaspberryPi

August 15, 2018 in avr

Reactive programming is by no measure a new paradigm. Admittedly, I’ve not tried my hand at writing an application solely with reactive principles. If you don’t have prior knowldege of reactive programming, I highly suggest this fantastic introduction by Andre Staltz. In this article we’ll look at building an interactive application using a Raspberry Pi, Python, and some external inputs.

Driving a seven-segment display on Raspberry Pi with Python

August 11, 2018 in avr

In this article, we’ll explore interfacing with a seven-segment display using python and a Raspberry Pi.

Express.js A/B Testing

August 15, 2017 in nodejs

Node Express AB Testing A few years ago, I was exploring ways to perform simple multivariate tests in my node.js web application. Working in an express.js environment, it was a natural conclusion to render a different page for each variant, and to use middleware for handling the traffic splitting. In this post, we’ll explore how to implement this routine in your own express.js application.

Native blinky on Adafruit's Feather Huzzah (ESP8266)

August 11, 2017 in avr

Adafruit Feather Huzzah ESP8266 Feather is a line of thin, beginner friendly development boards from Adafruit. The Feather Huzzah is Adafruits take on an ‘all-in-one’ development board for the popular ESP8266 Wi-Fi chip. It comes with USB, battery charging, and two LEDs built in. In this post, we’ll walk through the ‘hello world’ equivilant for AVR programming–blinky.