Simply put, the not invented here syndrome is a mindset that favours internally developed products over externally developed products.

NIH can be observed in individuals or organizations. It can turn into a problem when it leads to “re-inventing the wheel”.

NIH can be a result of pride or in general, less trust in solutions not created by oneself.

Impact

The impact of NIH can be observed at 2 levels:

  1. Individual
  2. Organisation

Individual-level

NIH in itself is not a good or bad thing. Its implications on individuals may vary based on the situation.

Pros

  1. Increased confidence in the solution, as you feel personally…


The principle of Shift Left is to take a task that’s traditionally done at a later stage of the process and perform that task at earlier stages.

It is an awesome terminology that can be applied in various fields but is most popular in software development.

In software development, Shift Left is a practice intended to find and prevent defects early in the software delivery process. The idea is to improve quality by moving tasks to the left as early in the lifecycle as possible. Shift Left testing means testing earlier in the software development process.

The idea is to…


At one point or the other, we have all found ourselves guilty of trying to merge our changes before everyone else’ to avoid bearing the pain of resolving the infamous merge conflict hell.

Often resolving merge conflicts takes up a huge chunk of the development time and is sometimes even accepted as a norm.

Is it possible to reclaim this time and go faster?

Let us start by understanding a few of the most popular and adopted development strategies when working in teams.

Trunk based development


Being a developer we often spend more time fixing bugs than developing features(introducing new bugs 😜).

Source: starecat.com

As the code evolves, bugs increase as well. We often see more bugs being added to bug backlog than being fixed in the sprint.

Bugs in production may not just cost millions of dollars but often days of the time that would rather have been spent in development.

One fine example of such a bug is Papa Musks’ PayPal accidentally credits man $92 quadrillion

Many practices such as Clean Code, Test Driven Development, Code reviews aim to minimise bugs in production. …


From mobile apps to micro-services, managing dependencies is one of the most crucial yet tedious tasks. Various build tools like gradle, maven, ant, grunt, etc exist to make us developers’ lives easy.

Gradle is one of the most popular such build tool with a focus on build automation and support for multi-language development. Linkedin, Netflix, etc all use gradle as their build tool.

The dependency labyrinth

source: https://solidsoft.wordpress.com/2016/06/07/gradle-tricks-display-buildscript-dependencies/

As the project size gets larger the number of dependencies increase. In distributed systems, this can quickly get out of hand. Managing dependencies itself is a formidable task let alone managing scope and platform-specific dependencies.

How do…


We all know, like many other fields software development is one such area that requires constant learning and improvement.

In the ever-changing and fast-paced environment of software development, one cannot stay stagnant and expect to grow.

One needs to be proactive in constantly learning new things and upskill themselves which is probably one of the most daunting yet the most exciting part of being a software developer.

It is thereby extremely critical to understand the stages of acquiring any new ability. I call these the 3 horsemen of learning.

Picture credit: Emily Webber

To understand this better let us consider the example of learning…


Ever wondered how to write a good test? Are tests just assertions on expected and actual? Is there anything more to them? Should tests only act as a safety net for incoming changes or refactorings?

Let us address all these questions.

We all at some point have written tests just for the sake of increasing code coverage. These tests have no real value and give a false sense of safety. On top of that, they don’t provide any value to the person reading them.

Let me tell you a story where well-written tests helped me understand the problem I was…


Let me tell you the story of how I learned this the hard way.

First of let’s understand what are AWS profiles:

AWS profiles are a combination of user credentials with their configurations. These are used to manage multiple users on the same machine. When you give them a name they are called as named profiles.

This helps us choose between various profiles for various operations you perform inside your AWS account.

$ aws ec2 describe-instances --profile [name-of-your-profile]

An example profile looks like this which are typically stored at ~/.aws:

Credentials are stored in credentials plain text file:

[omkar-test]
aws_access_key_id =…


Working on the command line efficiently means to jump between directories as fast as possible.

Along with using plugins such as autojump, pushd and popd etc, I also use some custom aliases that I have created over time which help me be more efficient.

One such alias that I use is

cd.. nwhere n represents the number of directory levels you want to move up

The script is very crisp and elegant

function cd_up() {
cd $(printf "%0.s../" $(seq 1 $1 ));
}
alias 'cd..'='cd_up'

script credits : grigory-k

Add this function to ~/.bashrc to be able to use the alias anywhere.

Usage:

Let us assume my current working directory is ~/interleap/Desktop/work/projects/userclient

~/interleap/Desktop/work/projects/userclient$ cd.. 2
~/interleap/Desktop/work$ cd.. 3
~

Script breakdown


In this article, we will be exploring the journey of how a piece of code translates to cloud infrastructure using Terraform.

To get an overview of Terraform you can read this article. Let’s get started.

Here is a basic terraform code snippet

provider “aws” {
version = “~> 3.0”
region = “us-east-1”
}
resource “aws_instance” “backend” {
ami = “ami-0947d2ba12ee1ff75”
instance_type = “t2.micro”
tags = {
Name = “terraform-server”
}
}

Would you believe it if I tell you that these few lines of code create an elastic compute instance/server on AWS?

Yes, that is it! This snippet can do…

Omkar Birade

Co-Founder at Interleap. I write to learn more.

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