Friday, January 23, 2015

Last Day at Global Scholar

Many people do not believe chaos theory, which says that, there is a relation between the sound of the wings of a butterfly and an earthquake. Many people think Twitter messages like "Bought a TT table at office. Have to practice now. #Something" are useless. But, that message by Manikandan Sundaram has changed the direction of my life (and others indirectly). Only difference was, #Something was #Globalscholar. Had he not posted those messages, I would not have known about this company, and I might not even have come to Chennai.

It was nice to have half an hour of discussion on spirituality and Krishna Consciousness in 1.5 hours interview with Muru Subramani.

After studying Computer Science for 5 years and having experience in the software industry for little less than 8 years, when somebody proves that, I cannot code and I don't even know how to read spec, obviously, I lose my temper. When Balaji Dhinakaran and Subha Anand were proving me that, I cannot code, I lost my temper many times. With the help of Guruprasath Krishnamurthy, Hariprasad Vasudevan and Arvindh Kumar, I finished that feature somehow, which nobody used ever since. [Two years later, I realized that nobody is using, after seeing a hard coded connection string (by a great developer) which points to a server which is accessible only from that building.]

After that Kiran Kumar guided me and designed every feature that I had developed since then (till he left).

When I was working on Exam Reports, Saurabh Sarda developed UI, Subburaman and Prince Samuel wrote SQL, and Ganesh Selvaraj, Venkatramani and Venkatesh developed RDLs. Till now, I did not know what I did during the development phase of that feature.

During testing phase, When Revathi Manohar said, I fix bugs very fast, immediately, I climbed drumstick tree (to fall and never to recover). When Sudha Ganeshan, who had blind faith on me, started testing my code, my work became little easy.

Premkumar Palya used to ask me to join QA during the stabilization of every release (when I work from QA area).

During Performance Optimization, when the Vice President (Subajyothi Sanyal) was sitting infront of the system, and investigating with the inputs from then Director, why the queries were taking long time, the only thing that I did was, staring at them.

When couple of people thanked me with little emotion for the help that I had done in their work, I could not understand why they were so much emotional. Later, I thought, probably, I was the only one who did not have any work.

I was very fortunate to work with goddess Sridevi Ramasamy, about whom I will try to write separately. If she ever becomes god woman, I will seriously consider retiring and joining her ashram.

Till I started working with Deiva Shanmugam, there was hardly any time when I talked to a full time employee for more than 5 mins on non-work related topics (barring the introductory period).

Ramnath Krishnamurthy, who wrote code faster than the speed at which I could review the same, wrote lot of code, gave me the shelveset and went on leave. I simply checked in the code with my name. ;)

Once, when I was reviewing Srividhya Srinivasan's code, I seriously felt like asking whether this code was written by Guru. But, I felt it would seriously offend her and did not ask. Later, I thought, if she has a big heart, she can take it as a compliment. [By the way, this was after both got married to each other.]

Till I started sitting next to Balakrishna Jammula, there was hardly any news that I came to know before it was announced officially. After he left, Srikanth Eadara took his place and role.

For those who say that, I am soft-spoken or silent, should have listened to my discussions with Rajesh Kannan on non-work related topics. Of course, for work related topics, we both are dead silent.

Whenever I discuss with Jeevanram Kasiviswanathan, I feel happy that, my experience is of some use to someone.

When we were starting Automation Testing with Selenium, Balakrishnan Soundararajan told me that, he was happy that, he was going to learn Selenium. I told him that, I would make sure that, he won't learn anything in Selenium. Eventhough, I was not successful in that, I had done my best in that direction.

I learnt from Lakshmi Satish that, interview is not about saying yes/no for a given role, but, it is about understanding how can we use that person, if we are going to recruit.

Great offers found by Albert Selvaraj saved me lot of money, especially on food.

Thanks to Mahesh Tangella and Janani Vijayan for the laptops, and Vasudevan Murugesan for the Wireless Adapter.

It was professionally very embarrassing, when Vamsidhara Reddy, with whom I worked for very brief time, told about my work more than me in an interview. Of course, personally, it was not at all embarrassing.

Being a hard core fan of S.P.Balasubrahmanyam, I generally don't listen to others' songs. But, I want M.K.Balaji to become a great singer, so that I can tell others that I fixed three bugs raised by the top singer.

It was nice working with Dale Bronk, Senthilrajan Egarajan, Mustafa Husain, Sateesh Naramsetti, Rajaji Kare, Manivannan Murugesan, Suresh Goduguluru Lakshmi, Charulatha Shankar, Harikishore Reddy, Uday Kumar Pogula, Kiran Duvvuru, Balaji TB and many others whom I missed to mention.

I would have been more happy, if people were little more professional. Of course, I might have topped the list of unprofessionals. If I had done any mistake, I am ready to do almost anything to make it as if that mistake did not happen in the first place. But, if it is not my mistake, but if it is (extreme) difference of opinion, then there is nothing much that I can do in this life.

Tuesday, January 20, 2015

Software Performance Improvement

Whenever anybody asks me to improve performance of any software, typically, I say I cannot do it.

But, what I do is,

Clean the dirty code.
Remove the redundant code.
Refactor at method level to make it more clean and simple.
Refactor at class level to make it more clean and simple.
Make the design more clean and simple.
Change the design to make it more simple.

If this improves the performance, then well and good. After all this, if the performance is still not improved to the expectation, then I would say, this is the limit. If you want better performance, get better hardware or get more servers.

For performance improvement, if anybody does any of the following, I try my best to stop them from doing it.

Any change to the code/design which reduces the simplicity of the code/design. This is one of the biggest grey areas and it is mainly trade-off. How much are we ready to sacrifice the simplicity/cleanliness of the code for how much performance. Typically, I am always on the extreme side of clean code/design.

To improve the performance of some functionality, which is there in the performance test suite, reducing the performance of other features which are not there in the test suite.

Not caring about the functionality which is having very bad performance, since it is not there in the performance suite, and caring about only the features that are there in the performance suite to improve the numbers.


If anybody gives me clean code with clean design, and asks me to improve the performance, then they would say that, I am the most incompetent developer that they have ever seen.

Wednesday, December 24, 2014

Time Complexity

If I am an organizer of Kaun Banega Crorepati, I will ask the following question as the last question.

What is the complexity of this? for(i=1; i<n; i++) print i;
A. Logarithmic
B. Linear
C. Polynomial
D. Exponential



If I am giving input, and you are calculating output, then

Linear - You spend roughly equal amount of time as me
Polynomial - You spend significantly more amount of time than me, but, you will do it.
Exponential - I spend couple of mins, and your whole life is not enough to calculate the output.

My input is 100000000000000000000000000000000000000.

Sunday, November 30, 2014

Eating Salt - Bad for Health

Naturopathy doctor Mathena Satyanaraya Raju asked to avoid salt, and following is his comparison of salt with others.

If you take chillies, it may burn your mouth, and heat in your body may increase. Other than that, it does not have any effect on the body.
If you take lot of sugar, then phlegm may be formed, but, it does not have effect on all the cells.
If you take lot of masala, at max intestine and nerves would be irritated. Other than, it does not change the ratio of Sodium and Potassium at all the cells.
If you take oil or ghee, it may accumulate in the blood veins or in liver. But, it does not cause effect on all the cells. Even if you take more, it may form fat. But, it does not accumulate at all the cells.
If you take lot of tamarind, at max your intestine would be damaged. But, it does not damage all the cells in the body.
If you smoke a lot, only your lungs would be damaged or cholesterol would be formed in blood veins. But, it does not effect the trillions of cells in our human body.
If you drink alcohol, then your liver would be damaged. Other than that, it does not have any impact on your body.

But, if you take salt, then it effects all the cells in your body, and it will create many problems.


By the way, those who want to reduce salt, they must take more vegetables, fruits and water. Otherwise, it will create problems.

Sunday, November 23, 2014

Global Warming - Non Vegetarian

It is generally believed that cars and trucks and airplanes contribute an ungodly share of greenhouse gases. This has recently led many right-minded people to buy a Prius or other hybrid car. But every time a Prius owner drives to the grocery store, she may be canceling out its emission-reducing benefit, at least if she shops in the meat section.

How so? Because cows - as well as sheep and other cud-chewing animals called ruminants - are wicked polluters. Their exhalation and flatulence and belching and manure emit methane, which by one common measure is about twenty-five times more potent as a greenhouse gas than the carbon dioxide released by cars. The world's ruminants are responsible for about 50 percent more greenhouse gas than the entire transportation sector.

Excerpt from Super Freakonomics by Steven D.Levitt and Stephen J.Dubner