What is Cloud Computing?

Photo by panumas nikhomkhai from Pexels

I get asked a lot about cloud computing and a lot of the questions are “what is cloud computing?”. So here is my answer to that question, which I have tried to make as simple as possible.

Cloud Computing:

Data centers that are online for public use of shared resources. These resources such as storage, networking, compute etc. are available on-demand.

Continue reading

Software Developers, RAM, and Maintainable Code

The software developer’s brain works just like a computer, it has a RAM! When working on a product, the software developer has the product clearly in her RAM ranging from the tasks she has to do, the tasks other team members have to do to the general direction of the product.

Another thing that the developer has clearly in her mind is the structure of the code she is working on and all the little nifty bits and corners of the codebase. Something else which is true about the work a developer does is that things in the software development space change often, and in addition to that, this same developer may be involved with different teams and working on different products. She needs to always be in the “flow”.

Continue reading

How to Use the Backend for Frontend (BFF) Pattern in Your Mobile Application Architecture

This article is a summary of my presentation at the O’Reilly Software Architecture Conference in London.

Maintaining an API gateway these days generally involves handling different types of user facing apps such as a web, mobile (of different platforms) and IOT devices. The Backend for Frontend (BFF) pattern specifically addresses this aspect of software solutions.

The Challenge

At Intellectual Apps we build software solutions, and in creating solutions for our clients we frequently get to build web and mobile apps within a single solution. This often means that we have a single API gateway for all the apps to communicate through. Over numerous clients/projects/products we started to notice a lot of repetition in the modules we built into software solutions, so naturally we sort to find a way we could share functionality across solutions in an easy way and this lead us to start experimenting with microservices.

Continue reading