Photo by Kelvin Ang on Unsplash

Serverless architecture and microservices have changed the way we think about applications. Now, we have server-side logic written by application developers that run in stateless compute containers which are event-triggered and fully managed by a third party cloud provider. Essentially, Functions-as-a-Service (FaaS). There are currently many implementations of FaaS but AWS Lambda is one of the most popular platforms.

There are many reasons why a lot of people favour serverless applications over traditional server hosted applications. Core among those reasons are:

  • Lost cost and maintenance
  • Easy to scale

It is cheaper to run serverless applications as we only effectively pay…

Photo by Philipp Katzenberger on Unsplash

Continuing on from where we stopped in the first part of how to create a simple serverless application, we will be focusing on how we implement authorization in API Gateway and ensure only authenticated requests can access our Lambda functions. To learn more about authorization mechanisms and established practices, see Controlling and Managing Access to a REST API in API Gateway. For this application, I have chosen to use a Lambda authorizer to control access to our Lambda functions created in the previous part of this article.

API Gateway Lambda Authorizers are Lambda functions which are called by APIGateway to…

Step by step guide on how to create and configure AWS credentials

Photo by Christopher Gower on Unsplash

Set up AWS

The first step is to create an AWS free-tier account if you don’t already have one at

How to encode and encrypt simple data

Photo by Fidel Fernando on Unsplash

In a project that I worked on a while ago, I was presented with a problem that wasn’t very unique. It involved how we could safely pass identifiable user information such as phone numbers encoded and encrypted by a third party service in Ruby, to be decrypted and decoded into our application for the user.

//Link with encrypted token

Ruby provides straightforward handling for signed and unsigned big endians using pack() and unpack() methods for accessing underlying bits and bytes. However, Javascript has the problem of not properly handling large integers, as it can only store signed or unsigned…

Using GitHub, CircleCI and Semantic Release

One of the most important tools in developing great software is the ability to automate. Imagine every time you need to release code to production, you have to repeat the same manual steps such as running tests, tagging/versioning your code changes and then manually provisioning or updating software or the configuration of your infrastructure, which can easily become the stuff of nightmares and create several horrific scenarios.

Photo by Crystal Kwok on Unsplash

Imagine the cost in developer time, resources and also the fact that manual testing can become very complicated as code becomes more complex which can increase the chances of bugs and errors slipping…

How to build a reusable component library, publish and automate the release flow

One of the beauties of React is component reusability, which is a huge time saver. Most times, creating new components for a project may mean that you may have to do the same for every new project which will ultimately result in unavoidable code duplication.

Having a component library ensures that reusable components can be packaged and shared across multiple applications, meaning that you do not have to worry about code duplication, makes it faster to build new applications and helps speed up scalable application development. Components can easily be customised at the project level for each application they belong…

My takeaways from the maiden Serverless Computing conference in London

I know this article is a bit late. It was written a long time ago but remained unpublished until now.

Photo by Taylor Vick on Unsplash

Serverless computing was borne out of the shift from enterprise application architectures to containers and micro-services. By abstracting away most operational concerns, serverless computing provides users with the opportunity to no longer worry about managing servers, scalability, availability, over/under provisioning of resources and all other infrastructural issues. However, this still means that users are responsible for deploying and managing the hosting environment configurations.

I was introduced to the serverless world in 2018 after joining an amazing engineering team in one…

Sidney Barrah

Software Engineer — creating things

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