Originally posted on The Curve’s blog.

Using a Bastion or gateway host can be one of the quickest security measures that you can use to reduce the attach surface of resources running within your cloud environment.

The idea of a Bastion host is fairly simple. A Bastion host is used to allow operational or internal access to resources within your cloud account, without requiring you to publicly expose these resources to the internet.

Whilst we’ll pick a specific example to illustrate the usefulness of a Bastion host, it is worth noting that these techniques can be applied to any of…


We believe in delivering high quality software for our clients, so it probably comes as no surprise that we subscribe ourselves to numerous best practices such as test driven development, and we adopt a strong testing culture.

On one project, we started getting a very cryptic error message when we ran the test suite:

Selenium::WebDriver::Error::InvalidSessionIdError:
invalid session id

Frustratingly, this was also an intermittent issue — sometimes the test suite would fail and sometimes they wouldn’t.

This project in particular used Ruby on Rails, Rspec and Capybara. …


In an effort to go paperless at work I recently bought an iPad with the intention of using it to replace handwritten paper based notes. Not long after getting the iPad I started looking into whether I could use the iPad for programming or SSH. At the time I was looking into this from a position of “is it possible”, rather than having a particular need that I was solving for.

One thing that I started wondering recently was: can I use the Voice Memos app on the iPad to record meetings or notes, and then use AWS Transcribe to…


I’ve recently built a piece of software (DevDeck) to allow developers to use an Elgato Stream Deck as a productivity tool. The software works on a modular basis, allowing anyone to write a plugin for the Stream Deck. One of the plugins that I have written for DevDeck is a Slack integration so that you can change your Slack status via the Stream Deck.

This is what my Stream Deck typically looks like:


If you mention testing to anyone with a basic understanding of software engineering, they’re likely to think about unit testing. This was certainly true of a podcast I was listening to the other day, where their “introduction to testing” discussion boiled down to how they understand the value of writing unit tests and should write them, but they don’t…

The real value of testing goes well beyond writing unit tests.

Testing code increases (design) quality

When most people think about good software design, they’ll think of design patterns, principles like SOLID, and code smells. Writing tests can be a good way of highlighting violations in…


I recently purchased an Elgato Stream Deck. As the name suggests, a Stream Deck is geared towards people who stream content on YouTube or Twitch. I fall into neither of these camps, nor am I setting out to become a streamer.

Streamers will often setup their Stream Deck so that keys toggle actions such as starting and stopping streams, stream effects and other such actions. I wanted to see if I could use a Stream Deck to make myself more productive by having a handful of useful actions always readily available via a Stream Deck.

I actually bought the Stream…


Nerding on the move — building a nerd kit will help you survive on the move and in the wild without the comfort of your home office setup.

The Nerd Kit — Packed and ready to go!

Most of us have a home setup where we can comfortably shut out the world, be productive and focus on our work. Working on the move can be much more challenging for a number of reasons, but it certainly isn’t helped when we make basic mistakes like leaving an essential piece of kit at home.

Needing to nerd on the move started several years ago when I was regularly travelling between Sheffield…

James Ridgway

Software engineer 🧑‍💻 and technology nerd 💻. Enthusiastic about designing high quality software.

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