Browsing Posts published by msanjay


No comments

Reply to an AOL article somebody had posted…

Quite a few of the points were the kind of things that we might have thought about at some point in time but end up forgetting when we get caught up with Everyday… anyway good to see a reminder! 🙂 Some comments inline…

> India has so much to be proud of. Why are we not taking her seriously?

This is something I really used to wonder a lot…. around a few years ago after my visit to the US, I came to this current conclusion [which is of course only a *generalisation* and subject to change]

The following is written from the perspective of a hypothetical human born and brought up in Mars and visiting Earth for the first time:

The West is a place where beauty first becomes immediately obvious, and the ugliness is very subtle. In India ugliness is immediately obvious, and beauty is more subtle, and more powerful.

To really appreciate India, one needs to move beyond the obvious into the subtle.

> When you are at peace with yourself and facilitate ease in your
> atmosphere, your work culture improves automatically. All managers should
> constantly be thinking of ways and means of creating an easy, informal
> atmosphere. Whenever you walk into your office, you always get a salaam;
> do you look behind the greeting? Is it really genuine?

This is a global “human” phenomenon 🙂 When I saw this comic (attached) I laughed finding it really funny, but was suddenly jarred when I wondered if I was like the character in it!!

Ok here are a few simple ideas which Ive tried to follow once in a way (might be common already, and btw not dependent on mgr)

  • get some snacks in the evenings for team mates [taking turns/tracking expenses not necessary imo]
  • make it a habit to take a short walk around/out of office with somebody maybe after lunch, but ideally in the evening, and not necessarily with the same person every day.
  • and one more thing is have lunch with some new/unfamiliar colleague at the cafeteria once in a way

> The human mind says ”only I am functioning, I am in charge of
> ‘; but there is actually something else that is at work, that gets the
> done. You can move ahead against all odds and achieve what you want,
> impossible; as long as you have faith. Your conviction will make things
> happen. Even nature supports you when you have conviction.

Reminds me of the Alchemist (book by Paulo Coelho):

“When you want something, all the universe conspires in helping you to achieve it…It’s called the principle of favorability, beginner’s luck. Because life wants you to achieve your destiny.”

“When someone makes a decision, he is really diving into a strong current that will carry him to places he had never dreamed of when he first made the decision.”


> Seventh, is IT, not just Information Technology but also Inner
> Transformation, ie, the spiritual wealth of our country. We must educate
> children. Tell me, how many of you have read Yoga Vashishta? It is a
> treasure, which carries a wealth of details about consciousness. New York
> University has printed this commentary, all these movies that you see
> (Matrix, etc.) are based on Yoga Vasishtha… But still we have not read
> All the knowledge about Self and Brahma is in it.

Hmm sounds interesting. If its available online can someone pls post the link (I found only descriptions and summaries of it by somebody or the other).

“Computer Science is no more about computers than astronomy is about

– E. W. Dijkstra

Its clear that astronomy is not about telescopes and that its about stars
and celestial bodies et al. But when we say computers science is not about
computers, what is it about then?? Perhaps if I had heard this many years
I mightve laughed at its apparent absurdity or might have just nodded and
casually forgotten about it.

Like I was saying… couple of weekends ago I was reading “Black Holes and
Baby Universes and Other Essays” by physicist Stephen Hawkings.

There in an autobiographical essay, he says after a disease and a surgery he
was terminally ill – speechless and paralyzed – completely immobile.

He still wanted to continue his research.

But his communication was limited to the help of another person flipping
through alphabets, and he would raise his eyebrows for the required one. He
would write sentences this way – very slowly letter by letter.

Then a software programmer sent him a device which flipped alphabets
similarly, and he could use his finger to indicate when the required letter
was reached. This was a major breakthrough – and it evolved gradually – the
stationary PC was eventually replaced by one embedded into his wheelchair
making him mobile. A screen was eventually replaced by a voice synthesiser –
allowing him to even speak again.

A man who was condemned by doctors to live as a vegetable counting down his
days – went on to write many more books, give many more speeches and do a
lot more research!!

(only a rough summary, explained much better in the book)

Of course it was basically the man’s indomitable spirit that got him back,
but software was instrumental.

After reading about this, Dijkstra’s words made a bit more sense than the
obvious 🙂 I felt this is what software is really about – improving the
quality of life and creating equality… Even a paralyzed person is now able
to live like an *equal* among other normal people – living a highly
respectable life!


Explain about what you do at work to anyone of a different profession.

continue reading…

Rahul, a programmer, started his journey in the software industry just like anybody else. He wrote a piece of code, compiled it, and then looked at the compiler output. It reported some syntax errors, and he them and recompiled the program. He repeated this until he got no errors. Then he ran it, and got runtime errors which he again corrected iteratively until the output was as expected.

There are some programmers who do this day after day, year after year.

Rahul however tried consciously to reduce the compiler error output and reduce blindly typing the code depending on the compiler to show them the typos later. He still got errors, but less than the previous attempt. He continued this endeavor until he come to a point when he could write a new complex piece of code, and get “0 errors 0 warnings” the first time he compiled it. He felt exhilarated that this was possible at all. He had reached the first level of perfection.

When he ran this program, he was disappointed that it crashed straightaway. He debugged it to discover the error and thought “oh how could I have made such a silly mistake and not checked if that pointer was not null!” Then he repeated the same process for runtime errors… trying to get the program passing the smoke test the first time it was executed.

He realized that he had to control his impulse to type in code straightaway, and first get his ideas clear. He got into the habit of first taking a piece of paper and writing a rough algorithm or just an abstract mind map kind of thing … to get the design right before going in front of the computer.

Program after program, he kept trying, when finally he was able to get another breakthrough… a new piece of code written such that it compiled with no errors at all; and which ran perfectly the first time.

He didn’t stop here… he kept working… kept trying to make the success rate more consistent, with every new program he wrote.

As time passed by, Rahul realized that he was generating far more output having much higher quality than his peers. He tried to help them whenever they got stuck and learnt more in the process.

Then the first terrible thing happened… he was given a promotion with a salary raise. The terrible thing was not the promotion or the raise itself, but Rahul’s perception of himself after it. He had no clue that his ego had increased. It was an achievement… no doubt, but the problem was that the pride did not dissipate but remained at the back of his head most of the time.

He still continued his endeavor to learn and get better and better at software development. He read more books on design, and started seeing patterns common to different unrelated projects. He eventually came across the famous design patterns book by the GOF. Here was a whole book on the chapter written by people far more advanced than him. He felt proud that he already thought of a few of the ideas they were presenting in the book.

As he climbed higher and higher up the corporate ladder, getting better and better paid, his ego kept on increasing. Unknown to him, complacency had started creeping in.

Until one day, when a calamity struck.

The previous evening had been just another typical family evening after he returned from home… ate some nice payasa made by his mother, had dinner with everyone, quarreled over TV channels, listened to L. Subramanyam’s violin which was a common favorite to himself and his father… and then slept peacefully after everybody had wished each other goodnight.

And the next morning his father died, expired due to a massive cardiac failure.

The suddenness of it left him numb; it took quite some time for him to get over it.

Eventually, time heals all wounds.

The scientist in him prompted him to objectively retrospect about what had actually happened.

The truth dawned on him that all the money he was earning had done nothing to save his Dad who had been so precious to him.

He suddenly saw the world in a new light… he wondered why people were fighting with each other… saying angry things to each other when none of them had any clue if they would see each other again the next day. He could see that they were all under the assumption that whatever they were fighting about was far more important then themselves. In fact he could see through how many assumptions his own life had unquestionably been based on and was almost amused at his own ignorance.
He developed the habit of first of all becoming aware of these assumptions, and then questioning them, finding out which of them were valid, and which did not hold weight. Questioning never meant rejection, it only meant reconsideration from a fresh perspective instead of blind acceptance.

Years rolled by, and Rahul came across the Bhagavad Gita. He questioned the assumption that it was a book full of impractical theory, so idealistic it was only fit for saints and would make very boring reading. However he still gave it a shot, and was stunned to see that it made a great deal of sense even to his own software profession. He later came across the book Jonathan Livingston Seagull, which greatly renewed his quest towards perfection in software development. He could see a close relationship to the Karma yoga of the Bhagavad Gita, which says “pal… you better work without bothering about the rewards, your work itself is a reward”. This had seemed to be so impractical earlier, the immediate retort would be “would you work without a salary huh!? …what nonsense!” Now the answer was clear… obviously any employer would pay salary for work well done, and work would surely be well done when it is done with the intent of Perfection. Perks and tokens of appreciation are needed, by people who don’t know who they really are… who need somebody else to tell them “good job” to give them a sense of security and well-being. Rahul felt liberated from such needs… and once he was liberated he immediately realized they had been acting as unseen barriers to his true potential.

Appreciation had its importance, serving as an acknowledgement that he was on the right track; just like a mark on tree in a dense forest to indicate that one was going in the right direction. He recollected his earlier days of typing in code consciously to make sure it worked, the first time, every time. He understood the concept of “Being there”.

He was greatly influenced by the movie the Gladiator, where the gladiator rises up from the ranks of a slave to a leader, just by the perfection in his skills – without anybody giving him the designation of “Leader”, without the need for any external person praising him and motivating him.

He kept trying to improve; this time with a difference… he stopped tying his designation to his job. He could see that many people held various beliefs, such as that a C++ programmer should condemn everything about Java and vice versa, and it is wrong for a Microsoft technologist to appreciate anything in the Java world, and vice versa. Some believed that testing is not part of the job and its something that some testing team has to do. Some others felt a business sense is needed only by managers and businessmen, and is something totally irrelevant to a purely technical person.

He could see great brilliance and creativity in many people around him, yet how such beliefs limited their capacities. Many of them, including some senior to him, were limited by their designation and their role. They were caught up in their own closed shells, making sure that they were saving their own skin by ensuring that their own role was being played properly. Very few people were thinking about the company’s point of view and what would improve the bigger picture. There was a lot of hesitation in questioning any decisions which they felt might not be better for the company, at the same time the decision makers were so used to the lack of questioning, that they often considered silence as consent.

One particular common assumption was that once a person has done programming for x years, he should stop coding and become a manager. Rahul questioned this in his mind, because he could see a whole new range of possibilities. He could see that it was perfectly fine for a programmer with the right aspirations and skills to evolve into a manager, but did not think that the same shoe fit him. He started imagining alternatives, and one of the possibilities was to remain technical, to stay in touch with programming and at the same time learn about architecting software systems. He could sense that it was possible for a true professional to look at a problem and understand it in great depth, ask a lot of questions such that every single aspect of the problem is understood. And he should be able to intuitively visualize many solutions, and know the pros and cons of each. He should be able to visualize in his minds eye the whole system running end to end before even beginning the implementation. He learnt later that the title called Technical Architect matched closely with what he had in mind. It involved several other aspects such as developing a keen business sense and being a mediator between the end customer and the development team.

His peers had developed so much of attachment to what they knew that they considered it “their” domain and had so much of hesitation to learn anything new. Rahul learnt that the industry changes so rapidly that at times, when circumstances demand it, it is important to “let go” of some concepts dear to him, which he had mastered with so many years of experience, to learn totally new, apparently unrelated concepts. The mighty oak is broken in a fierce storm, but what survives is the slender grass which bends according to the winds.
He sometimes would get a false sense of being overwhelmed by all that he knew. He eventually realized that such impressions about him being so knowledgeable already would only serve as a barrier towards further progress. There was so much to learn, often even from people much younger and inexperienced than him, that he needed to break such barriers. He learnt the technique of “emptying himself” to be more receptive to new ideas; as Socrates had said “All that I know is that I know nothing”.

All his life, he had made many enemies, who were always acting as obstacles to his path. He had frequent battles with them, and won sometimes, lost at other times. All of these enemies were within him, the most formidable ones being his laziness and lack of discipline. These enemies formed a huge gap between his ideals and his actions. Walking the path he believed in would mean bridging this gap. Now he could clearly see these enemies, and recognize that they were not part of his nature, and stopped believing that “I am like this only”.

It was a slow transformation, but an interesting one nevertheless. No action is more fascinating than the action of self-transformation. Nothing on earth can compare with its drama or its value. In Athens, one day, Diogenes was asked whether he was going to attend the athletic contests at the local arena. Diogenes replied that his favorite contest was to wrestle with and to win over his own nature.”

He watched the movie Beautiful Mind, and was impressed by the way the mathematician copes up with the creations of his own mind. He says “you feed the past and it becomes your present”. In the movie, he ignores the imaginary people no matter how much they convince him to get him to talk to them… esp. that sweet little girl with a cute smile and her arms open … or that military guy who shouts at him to convince him. Rahul felt that everybody is a schizophrenic in some way or the other. The difference is that a schizophrenic sees imaginary people. For the others, the objects are not always people but something else, some notion that they’ve fed for many years and cannot get rid of it overnight when they realize it is baseless.

He remembered the earlier days wasted in cribbing for an endless number of reasons. He came across a story told by a wise man, which he wished he had seen at that time:

“There are two Goddesses that reside in the heart of every human being. Everybody is deeply in love with these supreme beings. But there is a certain secret that you need to know, and I will tell you what it is.

“Although you love both Goddesses, you must pay more attention to one of them. She is the Goddess of Knowledge, Sarasvati. Pursue her, love her, and give her your attention. The other Goddess, Lakshmi, is the Goddess of Wealth. When you pay more attention to Sarasvati, Lakshmi will become extremely jealous and pay more attention to you. The more you seek the Goddess of Knowledge, the more the Goddess of Wealth will seek you. She will follow you wherever you go and never leave you.”

He dreamt of a future of the company he worked in; that it would be like a university, where there was free flow of knowledge regardless of project groups or sections. Every single person would find out for himself what he was best at, and take responsibility for gaining expertise in one particular skill; at the same time being open minded about learning and exchanging information and opinions about others. Buddha’s words “Your work is to discover your work and then with all your heart to give yourself to it” made a lot of sense.

In his dream, every senior expert such as a technical lead or architect would take it upon himself (or herself) to mentor younger members of the group. They would identify and empower them to build upon their strengths. They would effectively work towards bringing the younger members up to their level, so that they themselves would become redundant and would be in a position to take on greater responsibilities. He dreamt of a sound knowledge management infrastructure in place, with people needing no encouragement to go ahead and participate and share their knowledge. There would be well attended technical seminars at a company-wide level, as well as frequent discussions and presentations at individual project group levels.

What a powerful company it would be!

He’d seen sevral of these things already around him, for example in some recent KM initiatives. He guessed it might only be a matter of time that the others fall into place, and felt like contributing his own mite towards it.

He eagerly described these ideas to his friend Naren. Naren replied “What?! You want everybody to become geeks!! Forget it pal… no way am I going to be a 24 by 7 bookworm”.

Rahul replied “no no… you’re missing the point here…! If people are totally knowledge oriented… the chances of them getting stuck in a project at a critical time would reduce drastically… the need to spend hours working overtime would reduce… their productivity would shoot up… and they would be able to be more happy overall… have less worries at work… and so more cheerful when they would go home every day.”

Naren waited for Rahul to catch his breath… and admitted that he was more confused than impressed with Rahul’s ideas.

Rahul repeated it again… this time more slowly… and added “Just imagine… you would actually look forward to come to work everyday, and be happier when you go home.” Naren thought about it and said “hmm… maybe it makes sense”.

Rahul replied “dosent matter if it makes sense or not, unless we actually try it out”.

Naren said “what makes you think there already aren’t people thinking along the same lines?? There are plenty”. Rahul replied… “true, but they only form the minority, they are sparsely distributed, and don’t know about each other much. For something like this to click, it must work on a larger scale… you know, like radioactivity… there has to be a critical mass for something worthwhile to happen… or else it just becomes a fad which dies out in no time”.

And Naren asked “and how do you imagine this critical mass will get started?”. Rahul was silent, he had no answer. Eventually he confessed “Actually… I don’t know… first of all I have my own problems… I’m such a lazy guy that I keep thinking of so many things but never end up doing anything… I must work on myself first”.

Naren replied… “ha, you do that first… then think of advising other people!” Rahul was surprised “look up pal, there’s a difference between advising people and sharing one’s thoughts. If one can advise people only when one is perfect, we know that nobody is perfect and that will never happen. When one is only sharing one’s ideas, the people who listen are free to question what I say or reject it. Because by the time I ever actually win all my inner battles and come close to becoming a real expert, others would be losing invaluable time. On the other hand, if I were to only put all my energy into telling people what I believe, nobody would take my words seriously since I myself wouldn’t be in a position to prove their value by example. So the only way out is the middle way… to maintain a balance.”

At lunchtime (assuming its at the cafeteria)… have lunch next to some random colleague you dont know at all or are only vaguely familiar with.
continue reading…

April 2002 to March 2003

HP MAB is a first of the kind effort in the industry to provide a comprehensive framework to allow a plug-n-play architecture for the media and entertainment industry. It is the next logical step, beyond the point-to-point integration of applications. It adds value by providing a set of standard interfaces for media applications.

It supports multiple transports between applications, through XML based, message exchange transport abstraction. It has the ability to tailor the application-to-application workflow for specific customer solutions. Workflow customization at multiple levels of application granularity are possible. It includes a simple but extensible integration API that can seamlessly support new MAB application integration.

Responsibilities included researching new technologies and evaluation of the concerned third party products:

  • Coauthored a widely succesful whitepaper on Digital Content Management.
  • Created a knowledge base of the concerned technologies and shared it with the rest of the team in the form of a series of presentations on asset and rights management.
  • Wrote many prototypes as proofs of concept for many ideas which proved to be a value-adds to the solution.
  • Reused a lightweight workflow component to productize it and incorporate it into the solution.
  • Developed adapters to enable various products to work together.
  • The products among others, include: Virage’s video indexing product Videologger, Telestream’s transcoding product FlipFactory and TIBCO’s messaging product Rendevous, Realnetwork’s streaming server Helix, and Microsoft’s Media Player and Media Encoder.

Development Environment: Windows XP

Development: C++, Java

Technologies: Digital Media technologies such as Video Ingestion, Video Indexing, Transcoding, Broadband, Content Management, Workflow, Storage, Metadata store, Messaging

Team Size: 4

Duration: 11 months

Designation: Associate Software Analyst


September 1997 – November 1999

Various banking related projects were executed, some at the client’s site in Dusseldorf, Germany as well. This is a banking server, which confirms to the German banking standards and processes clients (account holders of the bank) requests. It is responsible for the communication between the customers of the bank and the banking software that does the accounting. The ZKA standard standardizes the computerization of banking in Germany ; a client does communication by sending different types of files for each order. Currently FTAM protocol is being used, and the file is received at the bank side by the banking server, and processed accordingly. If the client has requested any information, the data is sent back in a file, through FTAM. The software is being implemented as three modules.

The first is a DLL that handles the sending and receiving of files through FTAM called the Protocol Handler. The second, a DCOM component which exposes a dual interface, and implements core functionality such as decompression, encryption, submission of files to the host (the accounting software, a black box to this project). The third is another DCOM component that acts as an interface to the database, and all access to the database by any of the modules is only done through this component. The latter two components are implemented in Java, for reusability on other platforms, as a COM DLL. The communication from the Bank Server to the host is done using the file transfer project described below.

This was the project where I got the maximum exposure to a variety of technical and non-technical skills. It is in this project that I first started going beyond my specified duties, and went on to lead and mentor the other teammates, and guided them to successfully finish the project. Withstood the tremendous pressure of milestones and changing requirements. Designed and implemented the Protocol Handler, at the same time playing the role of a Technical Lead finding out ways to overcome hurdles in the project, guiding and training the other younger people in the project and taking responsibility by my own initiative to ensure high quality software.

Among other tasks, developed a wizard using AWT, JNI, Java Cryptography libraries, which enabled first time users to establish their connection to the bank supplying their public key, hash value, and various other details. Provided some innovative ideas about the user interface design to the client that significantly improved the quality of the product.

Development Environment: WinNT 4.0, Unix (for testing by the client s/w)

Development: VC++ (for the DLL), VJ++ for the DCOM components

Technologies: C++, Java Servlets, Java AWT, Java JNI, COM, VBScript (for scripts associated with each order type)