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…


Are you a backend developer? DevOps practitioner? UI developer?

Irrespective of who you are, you might have come across scenarios where you might have realised having knowledge about cloud providers is one essential tool to be carrying around in your quiver.

It proves to be very useful when you are working on a side project or even when you just want to host your own domain for whatever reason.

With the rise of the cloud, no one really remains untouched with it. …


Extreme programming has a huge influence on how software industries work today. TDD, pair programming, Code reviews have become the de facto standards as a part of XP.

Even after 30 years of its inception, extreme programming is still relevant and Martin Fowler calls extreme programming as a basis for agile practices.

Let us explore how and why…

In early programming days, software projects ran only on the best of the abilities of the people who wrote it. One small mistake and the code wreaks havoc.

Even without any mistakes, once the codebase gets large enough, it is difficult to…


Working on Linux you might want to keep your camera disabled when not in use. Especially to avoid those embarrassing moments when your camera accidentally starts in a meeting. But unlike windows, there isn’t a key or setting to disable the camera on Linux.

The camera module is loaded by default on system startup.

Disabling and enabling temporarily

The camera can be disabled temporarily by using the command

sudo modprobe -r uvcvideo

It can also be re-enabled by using the command

sudo modprobe uvcvideo

Disabling and enabling permanently:

You can add the webcam module to blacklist configuration file, so your machine never starts the webcam kernel module on…

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