Coding is a lifestyle and the happiness

When I was surfing Quora, I accidently happened to read the following post and thought of sharing as it truly speaks the passion of a software developer.

Quora answer by – Balaji Viswanathan, CEO of Invento Robotics

How does one get a job at tech giants such as Google, Microsoft, and Amazon? I know C++ and Python, and currently learning Java, but don’t have any project or competitive coding experience.

I have been through the interview processes of all the 3 companies and worked for one of them. I know for a fact that they all are desperate to hire top notch software developers.

This is the golden age for developers. Companies run after great developers and the kind of opportunities that Github and other tools offer in terms of showcasing your talent never existed in the past.

You have to live it. It has to be something you think in the shower, while having dinner, while you drive and while you shop. Coding is an art and great artists get consumed in their art.

However, you cannot just “know” C++/Python. You have to live it. It has to be something you think in the shower, while having dinner, while you drive and while you shop. Coding is an art and great artists get consumed in their art.

I was recently hiring someone for a senior development position and was surprised to find out that he was not as interested in coding everyday. Only those folks who consider coding as a super awesome thing to do and something that is not just a train to get you somewhere – but is the destination – succeed in hard core development. Rest go on to become managers or worse.

And coding is not mere copying a piece of code from Stackoverflow and building a sample app.

And coding is not mere copying a piece of code from Stackoverflow and building a sample app. Those stuff are akin to building small lego structures from a picture manual. Working in a large company is like building a skyscraper where you have to make additions without bringing down the structure.

To build these large structures, you need to understand common algorithms and some of the common patterns. You need to understand which problems are tractable [at least in polynomial time] and which cannot be easily tackled without some optimization procedures.

Most importantly, you need to be building all the time. I don’t consider myself to be a great developer now, but I was coding random procedures and subroutines from the time I was 12 and coding that way for 10 years until I was hired at Microsoft HQ to build Windows. During my college I spent 6–7 hours coding everyday.

My peers at these top companies also were coding for many years with passion. That is the one trait that I believe differentiates the folks who succeed in these companies versus those who don’t.

Sure, books on coding interviews can give a leg up, but nothing can beat solid coding all the time you have available. You should love coding so much that you might be building some procedures or simple algorithms even while waiting at a restaurant. That zeal and passion for coding makes the 10x developers that companies so eagerly seek.

If you really want to be a developer plan on spending 7–8 hours coding every single day before getting hired, after you get hired. You will be building projects ranging from silly to something super cool. And you will go far beyond just tinkering with sample code and snippets available on the Internet.

If you really want to be a developer plan on spending 7–8 hours coding every single day before getting hired, after you get hired. You will be building projects ranging from silly to something super cool. And you will go far beyond just tinkering with sample code and snippets available on the Internet.

If you have not built any such complex project, you might still get hired in some company by random chance. But, you might find yourself in a job you don’t like and overshadowed by peers who have built those. If you don’t build coding projects before getting hired, you need to seriously ask yourself whether you are indeed a developer and want to make a career out of it.

If you are building code – not because someone asked you to do so, not to impress someone and not because someone paying for – but just because you can and because you find happiness in it, you can succeed as a developer.

If you are building code – not because someone asked you to do so, not to impress someone and not because someone paying for – but just because you can and because you find happiness in it, you can succeed as a developer. And same is true in any complex art – painting, acting, physics research or medicine.

<end of extraction>

Is not this the real passion that software developer should poses? That is why I believe, coding is a lifestyle. You do it not because you need to do it or you are asked, you do it because it is your happiness.

The sole purpose of re-publishing the answer provided by Balaji is to make aware the readers hence no copyright infringement was intended. 

Higher denomination on notes vs Inflation

Money is one of my favorite subjects. The invention of currency and it’s valuation system feels so magical. In this article, will try to dig down the relevance of demonstrations to inflation.

Currencies such as Vietnamese dong (VND), Hungarian forint (HUF), Japanese yen (JPY), South Korean won (KRW), Cambodian riel (KHR) and ect. are having higher denominations. That means, there are lot of zeros in their bank notes. Have you ever wondered the reason?

In fact, the denomination is just a number, it has no real meaning if there is no information is available. For an example,  as at today, 1 South Korean Won (KRW) is equal to 0.00092 US dollars (USD). 50,000 KRW bank note is the highest denomination which is equal to 46 USD roughly. Vietnam has 500,000 VND bank note, which is the higher denomination on bank note among the region, I suppose. As at today, 1 VND is 0.000044 USD. The value of the highest note is nearly 30 USD.

Therefore actually the higher denomination alone doesnt mean much.

It is a known fact that the inflation plays a major role on deciding the denominations. Does it mean that those counties are associated to high inflation economies. Not really, as mentioned above, the denomination is just a number, if there is no information related to the currency is available. The reasons for having such high denominations can be due to many reasons. Inflation being one reason though. Without having information such as denominations over the past periods it is not possible to decide if the currency is currently facing any inflationary effects of the economy.

For example, Japanese yen having high denomination, not because the economy of Japan is experiencing an inflation right now, but because it experienced devaluation of currency in World War II period. Same goes with the Vietnamese dong, (VND) in early 1980.

Taking Vietnamese dong, the economy of Vietnam maintained inflation rate of 3.2% in 2016[1]. That is pretty good value. But after 1975, there was a soaring inflation which reached above 450% in 1986. So the high denomination could be due to the inflation occurred in 1980s. Without that information, the higher denomination of Vietnamese dong is just a number.

It is a fact that German economy collapsed in early 1900s, after the World War I due to inflation. It hit 29,500% of monthly inflation rate in 1923[3]. How come at present they have lower denominations then? The reason is, in 1923 the currency was German Papiermark. Later Rentenmark replaced Papiermark at the rate of 1 trillion Papiermark per 1 Rentenmark.

Another good example is Hungary. In July 1946, it hit 207.19%, daily inflation rate. Hungarian pengo was the currency at that time and it has been replaced by korona, and then later korona is replaced by forint (HUF) which is the official currency of Hungary today. The highest denomination of a bank note is 20,000 HUF even though the inflation rate is 0.4 % in 2016[2].

Zimbabwe faced the same issue recently. At this moment the official currency is the US dollar. Zimbabwean dollar was discontinued in 2009 as the inflation rate reached sky high. The highest denomination was 1.0e14. (14 zeros after 1)[3]. The daily inflation rate was 98%.

Another reason for having high denominations could be, not having decimal part in the currency. South Korean won or Japan yen have no decimals in the currency. Therefore when it is required to denote the smallest amount, higher denomination is required, even though it is not possible to buy anything using 1 KRW.

Apparently, it is not possible to compare currencies using the denomination. No currency gets stronger or weaker based on denomination of the notes, even though it feels that way. When taking alone, it is just a number and nothing else.


Higher denomination of a currency mean nothing much if no information of the currency presents. Inflation could be a reason for higher denominations.




Planning your future family using Pascal’s triangle

Recently I came across a problem similar to this,

What if you you are planning for your future family of 3 girls and 3 boys, how difficult it is or is it 50/50 chance?

Need few minutes to think of it? Go for it…

Amidst different methods of solving this problem I decided to use Pascal’s triangle. This is trivial but it was fun, therefore I decided to note it.

The above events distribute along a binomial distribution. Theoretically it satisfies four conditions:

  1. There are n trials
  2. Outcome of each trial is binary (two values, Girl or Boy)
  3. Through out the trials, probability of having a girl or boy is constant.
  4. The trials are independent to each others.

To calculate the coefficients we use Pascal’s triangle. As you all know the rows of the Pascal’s triangle relates to binomial expansion. Check the below Pascal’s triangle.

First 7 rows of Pascal’s Triangle

For example: elements of the 3rd row relates to the coefficient of the binomial expansion of (x + y)^3 = (x^3 + 3x^2y+ 3xy^2 + y^3) or in general nth row of the triangle relates to (x + y)^n.

Lets take having a boy is denoted by x and having a girl is denoted by y. In that case (x + y)^6 would give all the possibilities. However we are interested of having 3 girls and 3 boys. In order to solve that we can take the 6th row of the triangle which is;

1    6    15    20    15    6    1

It can be denoted as follow too:

1.x^6 + 6.x^5.y + 15.x^4.y^2 + 20.x^3.y^3 + 15.x^2.y^4 + 6.x.y^5  + 1.y^6

The coefficient of having 3 boys and 3 girls is 20 (20.x^3.y^3)

How about the total number of events with different combinations? Since there are two outcomes and 6 trials, it should be simply 2^6 = 64 in other words the sum of all the coefficients of (x + y)^6 , again it is equal to the sum of numbers in the 6th row.

So the probability of having 3 boys and 3 girls in your future family is

20/64 = 31.25%

Image Credit : user:gunther (
This article is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported (CC BY-SA 3.0) license. 

Overcoming the conventional stumbling block to global success

I do hope you will enjoy the following article as much as I did. May it be a motivation …

Dr. Sanjiva will be delivering “The IESL Ray Wijewardene Memorial Lecture – Nobody to Leader : Achieving Global Leadership with Software”, today (2017 Sep 7) at IESL. More Info…

a 22-year-old, ftesh out of university, can solve problrms but they haven’t seen many problems yet. You learn problems as yoh go along. The key to being a good entrepreneur is not about identifing problems but about caring enough to solve it.

Copyright Notice : This article appeared in DailyFT paper, 2017 Sep 6. and I hold no copyrights. Shared with an intention to educate others. All rights reserved by the above named publication.

Google abandoning “Google Code”

It is Googles’ fashion to shutdown services which are not popular enough. The latest victim was Google Code project [1] which was started in 2006. Google was very frank on the press release I suppose. I would like to quote the following.

When we started the Google Code project hosting service in 2006, the world of project hosting was limited. We were worried about reliability and stagnation, so we took action by giving the open source community another option to choose from. Since then, we’ve seen a wide variety of better project hosting services such as GitHub and Bitbucket bloom. Many projects moved away from Google Code to those other systems.

It is true that GitHub gained increase popularity among developers for code hosting and many developers are comfortable with it too. However as Google claimed it was true that in 2006 the choices were limited, even GitHub started in 2008 [1]. However the large picture is quite astonishing. In 2006, Google was a giant company and Google Code was one of the projects they have started. They could have done something better than GitHub, I believe.

However it is good to see the dynamics of Google, other than few, most of their interests never seems fixed. It quite sounds like the open source way too.

I worked closely with Google Code repositories few years back and it is quite sad to hear that it is getting shutdown. But I think it is the right decision they took. Need to move forward with new interests and causes.

Good Bye, Google Code for the support hosting open source projects through the decade of service.




Inevitable destiny of Sri Lanka with South Africa in quarter finals ?

In ICC world cup 2015, most matches in Pool A and B are already come to an end. Most of the teams are waiting for their final match while Sri Lanka completed all 6 matches in first round and got qualified for quarter finals.

Photo credits :
Photo credits :

Though Sri Lanka played in Pool A, there is a quite interest towards Pool B, because of the quarter final opponents will be decided by their standings. Sri Lanka would end up being at the third place with the collapse for Australia. Therefore there should be a keen interest on the Pool B 2nd place, whatever the team securing the 2nd place will play against Sri Lanka in quarter final match.

In Pool B, India undoubtedly secured the first place and they will be playing against Bangladesh.

The next match, South Africa is playing against UAE and will secure 8 points.

West Indies is playing against UAE and will secure 6 points.

The only doubt comes on who wins the match, Pakistan vs Ireland. The winning team will secure 8 points and would be competing for the 2nd and 3rd places (net run rate decides the winner) and the loosing team has to compete for the 4th place with West Indies again. It sounds quite interesting, isn’t it?

However since South Africa and West Indies are playing against UAE there is a high possibility of gaining of their net run rate compared to Pakistan and Ireland. If it is assumed that Pakistan blow out Ireland, then based on the net run rate South Africa will be 2nd, Pakistan will be 3rd and 4th place will be securing by the West Indies.

It seems like, most of the time Sri Lanka will be played against South Africa on 18th March, the first Quarter final match. Wish Sri Lanka good luck !!

Birth Control – Introduction

Recently I participated for a pre-marriage counselling program and physical relationship after marriage was discussed as a topic of the program. However there was no enough time to cover the everything and as a result I started reading on the topic, focusing on the birth control techniques. Then I decided to share my findings with my readers hoping it would be helpful.

Birth controlling has started since many couples are not eager to except what god gives them as it is. The main idea behind is to avoid unexpected pregnancy.

However to achieve that goal there are two methods available, one is natural birth control and the other is artificial  methods.

“Effectivenessofcontraceptives” by Center for Disease Control and Prevention. Licensed under Public Domain via Wikimedia Commons

Pills, condoms, surgeries fall under artificial methods. Other than wearing condoms, the other artificial methods are having side effects more or less and may be directly cause for infertility. Therefore it is good to keep those methods away as much as possible.

However it is good to know some theory behind.

Ovary, in female reproductive system releases eggs at a rate of nearly once a month (menstrual cycle). A female has two  ovarys where eggs releases alternately. Then the egg is traveled through the Fallopian tube to womb. The approximated travel time is 1-2 days through the Fallopian tube from the time the egg is released. For a successful pregnancy, a sperm should meet the egg while the egg is in the Fallopian tube. If such happened then the reproductive system generates hormones that signal the brain and command to ready for a pregnancy. The brain adopt the changes and stops releasing eggs since the message has been already delivered about the pregnancy.

When using pills the above natural process is simulated with the help of chemicals. Therefore with no eggs the chance of getting pregnant get low. However there is no easy and fast recovery when taking pills is terminated. That is why those pills can be lead to permanent infertility or disorders.

Following video explains well about release of the egg

While the pills changes the hormone structure, surgeries block eggs and sperm contacting each other. Like blocking the Fallopian tube and etc. Condoms and other wearing protections do the same but they do not interfere internally or chemically.

Therefore when artificial methods are concerned, there are two folds. What is the safest and side effect free method. There is a scale for it. Known as Pearl Index [1].

While my preference is always lies with wearing condoms as the one and only artificial birth control method you can refer to the “Comparison of birth control methods”[2] and get to know more.

** Please bear mind that I am not a medical practitioner and this is no any medical advice, please refer to family planning consultant for more reliable information.