Cross Origin Headers (CORS), AWS S3, and AWS CloudFront

Let’s talk about cross origin resource sharing (referred to as CORS from here on), what it is, where it is used, and some mistakes I made when configuring this website’s hosting. After reading this you will hopefully never wonder again why that little error about not being ‘CORS-enabled’ shows up in the browser console. ...

June 26, 2021 · Michael Hughes

Some thoughts on partition keys in clustered databases

Partition keys are a common concept among distributed software including CouchDB and Azure CosmosDB to other systems like Kafka and AWS Kinesis. They are a key input into the system that has consequences on how well it can be used to solve different end user problems and how well it performs under load. ...

May 16, 2021 · Michael Hughes

Related to the topic of service level objective values

What is the expected availability of a service API? What does a “99.9%” availability mean in the context of a service’s operation? What can a service client expect, what about a customer? Continuing from our prior post in January, let’s know discuss some aspects of using these percentage values in the context of how to guarantee availability. ...

May 4, 2021 · Michael Hughes

Juggling as project management

I will not stretch the analogy of jugglers juggling and engineering teams engineering too far. In brief, software and system engineering teams can benefit from working on a few things simultaneously but too many or too few can cause everything to fall apart. ...

February 27, 2021 · Michael Hughes

On the topic of service level objective values

What is the expected availability of a service API? What does a “99.9%” availability mean in the context of a service’s operation? What can a service client expect, what about a customer? ...

January 15, 2021 · Michael Hughes

User inactivity and forced logout in single-sign-on scenarios

A couple incomplete thoughts and questions for those that need to automatically log end users out of web applications. ...

January 2, 2021 · Michael Hughes

Creating a sleep loop in JavaScript

Today’s post is a quick tip on how to easily create a sleep-delay loop in JavaScript. ...

October 2, 2017 · Michael Hughes

When to prioritize maintenance of a system

Have you ever considered a service or suite of services and thought, “that looks like a ball of yarn.” There is a tendency amongst those of us who write software for a living to consider systems that are not understood as garbage. Often, this suspicion of poorly understood systems turns out to be unwarranted. What look like obtuse decisions made for no apparent reason turn out to have solid foundation in rationality....

September 28, 2017 · Michael Hughes

Quick and Dirty Teamwork

There has been a dearth of posts to this site. Part of the reason for this is that I got busy playing Overwatch by Blizzard. The underlying mechanics of the game are team based and players must work together to achieve success. Failures in the game are often due to players not working together effectively. These sorts of failures can have lessons for teams working on projects in a professional capacity; today we’ll look at a couple of team failure modes and consider ways they can be rectified. ...

September 19, 2017 · Michael Hughes

On Quality

Today’s post is short essay concerning the value of development led quality. There are no code examples or short tips for things in this post. I hope you enjoy. ...

February 18, 2017 · Michael Hughes