Introducing Google Cloud Functions: deploying serverless microservices

Google Cloud Functions

Google Cloud Functions are the new guys in town and they come fully packed with great features such as:

  • Serverless Architecture
  • Triggered Based Behaviour
  • Optimized runtimes for Node.js 6,¬†Node.js 8, and Python3
  • Automatic Scaling
  • Pay Only for Function Executions

Continue reading “Introducing Google Cloud Functions: deploying serverless microservices”

Git: Pushing Commits to Multiple Remote Repositories

Image: Git push to multiple repositories

It’s possible in practise to have multiple remote repositories for a single git project. This is a useful technique that every savvy programmer should use when dealing with highly distributed applications.

Let’s say you wish to push to the following two repositories simultaneously: Continue reading “Git: Pushing Commits to Multiple Remote Repositories”

Reading Files from Google Cloud Storage using Python


It is very common to develop Python applications on Google Cloud Platform that read various files as blobs, which are then used for some further processing. To be able to achieve this ensure you have created a service account and you have downloaded the private key credential file as a JSON.¬† This is used to authenticate all requests sent to GCP resources such as Cloud Storage by the Python application. Continue reading “Reading Files from Google Cloud Storage using Python”

NodePort vs LoadBalancer vs Ingress on Google Kubernetes Engine

It can be quite daunting deciding the type of service that manages external traffic for your Workloads containing the pods running in a cluster on Google Kubernetes Engine (GKE). The best way to come to an optimal decision would first involve having a clear understanding of the different types of services and how they operate in comparison to each other.

There are three methods for dealing with external traffic namely:

  1. Proxy
  2. NodePort
  3. Ingress

By default the Kubernetes engine provisions a ClusterIP service inside your cluster to enable pods to communicate with each other internally, with external access. Continue reading “NodePort vs LoadBalancer vs Ingress on Google Kubernetes Engine”

AngularJS Best Practises


AngularJS, thanks to Google, is a game changer! It has enabled developers to create applications that are more efficient in handling data bindings, seperating business logic from the presentation layer, as well as providing a more structured or modular approach for building Javascript web apps.

AngularJS is what HTML would have been, had it been designed for building web-apps. Declarative templates with data-binding, MVW, MVVM, MVC, extensibility, use of controllers, directives, and other reusable components has made it the must-have tool for every web developer out there.

As beautiful as it sounds, one must be aware that, such a great tool can be abused by developers who blindly write code without peering into the future to determine the potential implications of their code changes or patterns used. That is why I chose to briefly discuss about some of the best practises that lead to the development of efficient AngularJS apps. Continue reading “AngularJS Best Practises”

ReactJS: Functional Stateless Components


Smart programmers are naturally lazy! Why, cause they write code in such a way that, the next time they need a certain chunk of code, they can refer to it, with just a single line of code. Reusability, Reusability, Reusability! ReactJS provides such capability through the use of components.

Prior to React 0.14, components were defined as ES6 classes, as seen below:

class Price extends React.Component {
        return <span>$, {props.price}</span>

Continue reading “ReactJS: Functional Stateless Components”