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

Software Development Knowledge Handoff

Today’s post will cover a couple different approaches to transfering techinical knowledge of a software system between individuals or teams. There are often transfers of ownership as a software product progresses from conception to feature development to ongoing maintainence. Effective knowledge transfers between owning individuals or teams help to ensure that ongoing development of a product is not totally stalled whenever ownership chagnes ...

January 16, 2017 · Michael Hughes