Flow zone is that state of mind in which a programmer is highly focused on solving a particular problem. His brain is fully concentrated on the problem and he is disconnected from the rest of the world. When he gets out of the zone, he gets the feeling of getting things done. He gets an immense feeling of being productive and wants to get into the flow zone often.

Being concentrated and solving a problem is the best thing that programmers should do. But what is wrong with it? According to Uncle Bob, the flow zone is a trap. It…


According to Uncle bob, there are three rules that should be followed to get the best results from TDD. They are:

  • You should write only enough tests that are sufficient to fail
  • You should only write enough code that is sufficient to pass the written failing code
  • Write production code only to pass the failing tests.

So did that sound a bit strange to you? Maybe you have been doing it all wrong since the start. For example, you might be writing all the tests ahead of time and then start writing the production code. Or you might be writing…


A lot of things have changed in recent years in the tech industry. It is getting harder to cope with the relevant skills and expertise to sustain the fast-growing tech industry. With the burst of numerous frameworks and programming languages, now we have tools to solve every different kind of problem. Trying to learn each of them to keep up our skills relevant will only make us feel burnout. So what should we do if we can’t learn everything? I have summarized a few of them in this article. Let’s keep rolling.

There is one perfect saying called those who…


Working on a large codebase is tough. Even a small change can cause many side-effects. The fear of not changing the codebase due to the fear of these consequences is even more harmful to the codebase in long run. The fear is because of lacking test cases. Running the test cases can give you instant feedback on all the side-effects.

If we want our codebase to be flexible, we need to flex it. Modern software engineering is all based on the principle of flexible software. The design patterns that we discovered, the SOLID principles we formulated are all based on…


It is practically impossible to write software without bugs but it is even harder to foresee the side effects to make sure everything is in order. No software professional wants to take this hippocratic oath to write code without bugs but the rate of bugs you create as you mature in the profession should asymptote to 0.

I really love this idea from uncle Bob “human body is also a complicated system but doctors take an oath to do no harm still diagnosing your disease and doing the treatment”. If doctors can do it why can’t software professionals? …


fig. overfitting

Overfitting can occur due to different reasons. There are some ways to prevent this and improve your model. Some of them are:

  1. Perform early stopping
    Early stopping is one of the effective methods to try when you notice that the validation loss increases while training loss decreases. Remember that to perform early stopping you might need to divide your dataset into train, test, and cross-validation sets.
  2. Do Regularization
    Sometimes regularization is necessary because your model might be suffering from overfitting. In such a case adding the regularization term in your loss function prevents your model to learn complex functions from the…

Building a successful ML model can involve twisting and tweaking hyperparameters that give the best model for the dataset you are working with. But among all other hyperparameters, there are some of them that are present in almost any machine learning or deep learning algorithms and play an important role. Without having a good idea of how to tweak them, it is often impossible to build a model with good accuracy.

  1. Learning Rate(alpha)

An artificial neural network is trained in optimization algorithms like Gradient descent, Stochastic Gradient Descent, and Adam optimization. The objective of these algorithms is to find the…


source: https://junyanz.github.io/CycleGAN/

CycleGAN is one of the most complex and powerful GAN architecture. The idea genesis from conditional GAN architecture. In this architecture, we condition an entire image. One of the most comprehensive examples of CycleGAN is what if you convert apple to orange and the same orange back to apple? That is what cycleGAN helps us achieve. Being a quite complicated architecture, we get the following components if we break down into smaller pieces:

  • 2 generators — to generate apple to orange and reverse
  • 3 discriminators — to supervise each generation

The traditional image-to-image translation had the following main issue:

  • need…


Deepfakes are fabricated multimedia contents that are alike to original ones. We have seen so many deep-fakes on the internet that are a synthesis of famous people like Barak Obama and other celebrities. In this article, I am going to discuss how deep-fakes can also be used for positive applications, and how we can make use of deep-fakes in such cases. Some of the applications of deep-fakes are:


Kubernetes is an 800-pound gorilla that comes with a price tag

The above line was written on the nomadproject.io website by a reviewer who seems to be frustrated by Kubernetes. The review depicts the necessity of having similar orchestration tools that are easier to get started with at the same time being suitable for small to large projects. Just like the docker is not only the solo player of the container ecosystem, Kubernetes is also not only the container orchestration tool to orchestrate containers. …

Rabin Poudyal

Software Engineer, Data Science Practitioner. Say "Hi!" via email: rabinpoudyal1995@gmail.com or visit my website https://rabinpoudyal.com.np

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