Pages

Wednesday, 24 October 2012

Drafting a career plan ...

Having been born in India, and found my way into computers early, graduated in computer engineering, some of this was choice, an equally, yet immeasurable proportion was not chosen, but was welcome in shaping my career.

These are the lessons I have learned over a decade, which I am sure are relevant even to this day:
  1. The first ever domain in which we take up a job dictates to a large extent the focus domain we will have for the rest of our lives. This statement is not restricted to information-technology or engineering but is valid across several domains.
  2. If we start with an Indian graduation, we find ourselves lacking of many fundamentals whenever we choose to apply them. It is inevitable that we spend time trying to learn-again (or re-learn) some of the core skills we need to become productive and effective in our job.
  3. Being schooled with strict instructions from our Teachers, Headmasters, we are inherently designed to wait for instructions as opposed to figure our own way out. What is often referred to as "self drive" is usually the ability to transcend this phase where the education system wanted us to stay obedient. The more obedient we are, the more passive we become, the less productive and enthusiastic is our output within our domain.
  4. As our skills specific to our job begin to increase and our ability to apply knowledge in the field increases, our performance is immediately recognized. We are then offered a choice of promotions. The preferred kind are quasi-management and quasi-domain focus, usually at a ratio that is easily measurable and acceptable. It is more likely that the emphasis on management will slowly blot out the emphasis on the domain.
  5. Unfortunately many who want to purely focus only on their skills and strength within their domain do not have easy avenues of growth that they can lay out for themselves. In short, their career growth path within that domain so long as they focus on core skills / activities / field-work that is domain specific will be minimal especially where the Subcontinent's cultural ramifications in the work environment are pronounced.
  6. There is often a motivation to put one's self ahead of one's own team. This is counterproductive in most cases and must be avoided. Growing together with one's team is possible if one's team is cosmopolitan and not bound by regional, linguistic and gender bias. All future productivity in any domain lies with the ability to become part of teams by adapting quickly and identifying oneself with the team.
  7. If one does not have the entire picture beyond the domain of the full layout and flow of the work they are involved in, then finding this 'BIG picture' as it is oft cited, is very important. Performing our work within our domain, within specific boundaries can only give us partial understanding and satisfaction upon completion. Understanding the entire task of which we are a part of, will give us the ability to contribute to multiple parts or at the very least tune our own deliverable items to fit the holistic solution.
  8. Having a 3-month, 6-month, 1-year roadmap would be very useful to help one align with the organization. This would also help in taking critical decisions whenever necessary. If important family events like a wedding or a relocation are to take place within this known duration, we would be able to ensure that they have a minimum effect on what we would like to do in terms of a career. Keeping this career plan open, will help our performance in a team much better.
  9. Last, but not least, the most important part of pushing our career forward is to grow not only in our domain, but also in communication-skills. For some domains written communication skills are given emphasis (especially science, technology, engineering, research ...) while in other domains (like sales, marketing, management, strategy, leadership...) spoken communication is given emphasis. It is best to develop our skills to augment our ultimate objectives and goals in all dimensions.
    • This may involve learning a National language that may not be English. This may also involve an interest in learning local languages in a short time even if it is meant for improving verbal communication.
This career plan can be drafted after the critical hurdle to secure the very first job in our life is done. This too must be done in an organization of our preference, where we would find it comfortable to work at least largely.

Most of these rules would remain unchanged in other geographies. The complexity of organizations involving major people interaction at multiple levels as dense social dynamics is often the case in Service Companies and Service Oriented Companies.

We should be better poised to approach an Organization or a Company with solutions we are good at. As far as Software Engineering goes, we can share source code openly on the Internet, as we can share documentation that will help prospective employers to validate us with ease. Some employers insist on processes, but are willing to reduce that load if they are able to validate us based on work we have done prior (at an under-graduate or school level.) This is probably the most important part in ensuring that our first job, and therefore all that follow are in the right field of interest we have selected. Creativity can always be expressed and shared, and it will definitely help in doing so when we are trying to find a employer who is looking for a similar set of skills.

Ask what you can do for the employer rather than what the employer can do for you - and this first hurdle is easily crossed. The rest is Kaizen, continuous improvement on our part.

Thursday, 18 October 2012

The Level and the Square

THE LEVEL AND THE SQUARE

by Brother Rob Morris Poet Laureate of Freemasonry

(This poem, written in August, 1854, is the most popular Masonic Poem of all time.)

We meet upon the Level and we part upon the Square.
What words of precious meaning, those words Masonic are!
Come, let us contemplate them! They are worthy of a thought;
In the very walls of Masonry the sentiment is wrought.

We meet upon the Level, though from every station come,
The rich man from his palace and the poor man from his home;
For the rich must leave his wealth and state outside the Mason's door,
And the poor man finds his best respect upon the Checkered Floor.

We act upon the Plumb - 'tis the orders of our Guide.
We walk upright in virtue's way and lean to neither side;
The All-Seeing Eye that reads our hearts doth bear us witness true
That we still try to honor God and give each man his due.

We part upon the Square, for the world must have its due;
We mingle with the multitude, a faithful band and true.
But the influence of our gatherings in memory is green,
And we long upon the Level to renew the happy scene.

There's a world where all are equal - we are hurrying toward it fast,
We shall meet upon the Level there when the gates of Death are past;
We shall stand before the Orient, and our Master will be there
To try the blocks we offer with His own unerring Square.

We shall meet upon the Level there, but never thence depart.
There's a Mansion - 'tis all ready for each trusting, faithful heart.
There's a Mansion, and a welcome, and a multitude is there
Who have met upon the Level and been tried upon the Square.

Let us meet upon the Level, then while laboring patient here;
Let us meet and let us labor, though the labor be severe;
Already in the Western sky the signs bid us prepare
To gather up our Working Tools and part upon the Square.

Hands round, ye faithful Brotherhood, the bright fraternal Chain.
We part upon the Square below to meet in Heaven again!
What words of precious meaning, those words Masonic are --
We meet upon the Level and we part upon the square.
 
This poem has been reproduced without permission from "The Freemasons" page on 'Facebook'

Wednesday, 17 October 2012

Is Corruption in India *the problem* ?

I have been pondering on the hot topic of debate these days. Thanks to Kejriwal,A and Hazare,A who have brought it to the limelight. I am not a student of political theory nor a qualified political theorist. This is an amateur and perhaps layman view of the state of affairs as I see it.

The political purpose of a nation, primarily is to define its geopolitical boundaries and therefore "own" land. The land endorsed by the nation is thereafter leased to individuals who are the primary citizens. Others who are permitted to dwell within these land perimeters are residents who may be guests or refugees or citizens themselves. For this, each citizen pays a conglomerate of governing bodies (read: municipality, local government diplomats, state government, central government, government authorized regulatory bodies) for the privilege of being allowed to dwell in the land. 

As there are truly no other rights other than the permission to dwell, a constitution and legal code is drafted to control every living activity [communication, exchange of goods, cooperative tasking, commuting... ] of the residents. This is merely one of the instruments of regulation. As these rights are entirely secondary to the primary right of dwelling in a nation, their enforcement and regulation is purely on theoretical, humanitarian/moral grounds and an attempt to ensure that the security of the residents is guaranteed so long as they *pay* for this service.

Governments are therefore, in-effect "Real Estate as a Service." No one other than this government owns "land", but merely has a lease that lasts for a finite period of time. This is the very premise that is attacked by subversive or underworld or underground (non-governmental or anti-governmental) organizations or units who attempt to take ownership of land.

Therefore, the primary machinery for the Government in offering security to ensure these "promised" rights to the residents is the Military. All other Civilian bodies are "value-additions" and not requisites.

As this is the primary source of revenue (and all else is secondary), the root of subversive governance or the underworld or organized crime (as it is sometime referred to) is primarily linked to controlling the ownership of "land" and secondly the right to reside securely without sustaining injury.

Likewise, the underworld also operates by controlling ownership of land, residence within the land (even without the approval of governing bodies), security and business of the residents. Subverting the government they also collect their crudely organized *taxes* from the residents with the promise of guaranteeing the above.

The Government makes a *promise* of guaranteeing the above-listed rights in return for Taxes that are supposedly structured. The Underworld makes a *promise* of guaranteeing the same rights. Between the Government and the (supposedly unstructured) Underworld, there is a race to control territory. This is a battle that has raged for centuries and will continue. If the Underworld prevails, then whatever is named governance fails, and becomes less & less structured.

Whenever the underworld gains the upper-hand, they further subvert the governing bodies by replacing key personnel or diplomats or officials with their own people. These people start melding or merging the fund-flow to the underworld and the government, often favoring whoever put them in-charge. It automatically follows that government officials properly appointed try to favor the government, while subversives favor the unofficial controllers of rights [or underworld.]

Whenever the subversives become part of the government or officials of governing bodies favor the underworld in return for either basic security and safety and rights to residence (which the governing body fails to control) they create a underground economy becoming intermediaries who pay high-value low-volume transactions to the real controllers of the rights. If the real controllers of the rights are not the governmental officials, this amount they pay (in few transactions) needs to be routed from different channels. Hence they create a system to collect it in return for providing "their services" as government officials or subverts to the public.

Governmental bodies usually exert power over most small officials. Hence the tax is not completely removed. This ends up with citizens paying two different fees for the same services. The first being the tax of the governmental body. The second often referred to as the "bribe" to the subversive body.

Once the subversives take control of more "land" and consequently the land offering them other resources, they slowly grow into high-net-worth-individuals (HNIs). This slowly pushes them up the ladder to begin controlling large resources and becoming impossible for the government to get rid of them. They finally end up becoming part of the government or getting linked to high-ranking officials within the government. They too have maintenance costs for their deals that are underground (as we might term them.)

At one point, the old monarchy or dynasty is recreated following unequal distribution of wealth. Inherited wealth becomes legally permitted and laws to prevent large land ownerships (land-ceilings) become ineffective or are sometimes erased through legal process. The entire political landscape is riddled with people related to each other, either by blood or as business partners in an underground/government-subverting ventures. Slowly the political ambitions of the entire machinery controlling the "land" of a nation is guided by this select few, who due to high-net-worth become very powerful.

This problem cannot be eliminated by communism or nationalism or hypothetical benevolent dictatorships or military regimes or any such alternatives. This is because all of the listed ones including communism or nationalism also have economic systems where tangible low-value high-volume transactions through currency are limited by exercising additional powers of the government. If the government has already been taken over by subversives, all such measures, including solutions like the Lok Pal will end up as a farce.

Fundamentally, the premise of governance on the basis of morality is not soundly based on the core biological goals of evolution ("survival of the fittest.") Hence organizations like the UN or the Geneva Convention or NATO or the Non-Aligned Movement are examples of major failures in attempting to enforce cooperative solutions across multiple nation-state boundaries.

Can human beings develop true empathy? Can human beings truly rid themselves of instinctive actions and base their actions only on logic? Is morality logical? These questions have already been answered in the negative. Plato's dialogues were the start, while philosophical treatises like Tractatus build a strong basis that philosophy too is built on mathematical principles.

Summarizing my thoughts and structure, democracy - or representative democracy is a farce. Human beings when put in high-density residences with limited resource availability are incapable of escaping their instinct in majority. While "hope" alone floats, scientifically it is unsound to support rebellions to create morality driven governance models. Thousands of leaders have failed in such attempts and have always left no successors as they were the exceptional few who could beat the instincts, but not the majority.

If you think corruption is a problem, you are looking at the wrong issue. The whole world is suffering from a malady of population-explosion induced disregard for morality/humanitarianism. This malady is growing. It has been historically demonstrated that a general decrease in world population has always led to better governance and socio-economic and political enforcement of such values. This is a bitter answer and hard to believe.

The worst part is that, unless induced by a natural or man-made disaster that drastically decreases world population (of humans especially,) any other benevolent attempt to reduce population and population-density will be blocked by the subversive governing officials/individuals who also include politicians. Pushing my solution further, if you want change, we need world-war-3. It is a very dangerous risk that may even put the survival of our species in dire straits, but is perhaps the cheapest risk we can take to rid ourselves of the primary maladies of bad-governance and corruption.

My earlier opinions were that the world was filled with complex problems with no solutions as the problems became too inder-dependent and entangled. Now I realize that the fundamental woes of humanity are being decided biologically by evolution which, by promoting survival of the fittest, promotes the haves against the "have not"s.

Population of the world is the more critical problem, and India being the second most populous is facing the woes sooner than the rest of the world. Corruption is not a malady, but a mere side-effect of several sociopolitical and tribal traits that humans have inherited over thousands of years. Comparisons with 'China' on their present success rate can easily be disillusioned by illustrating the collapse of the erstwhile Soviet Union. No major nation-state has survived to be large enough in terms of population, area and population-density. We could easily conclude that China's growth as it is being exhibited to the rest of the world is akin to the growth of the USSR with the people behind the iron curtain. This is clear demonstration of putting the nation/government/'land'-regulator ahead of the individual. Despite the fact that this is a sad state of affairs, the number of those who have benefited by these discrepancies is high enough to even conclude that corruption works positively in an economy.

I apologize to greater thinkers like Amartya Sen who have postulated the opposite. I have strong reasons to believe my views reflect the sombre reality of today.

Sunday, 7 October 2012

The debate over Functional Programming

Yesterday, I attended the "Centenary of Turing Talks" Talk[4] at Persistent/Pune. After introducing Robert Milner's work, the objective was to decide whether _every_ programmer should learn functional programming. The debate, as with all human debates, digressed quite a bit. However the question remained unanswered. I am just giving an ardent attempt to answer this.

Details of the event are available at the following link:
http://www.persistentsys.com/About/Turing100.aspx

Summarizing the discussion and the points that were raised:
  1. Functional programming is a better abstraction and helps in thinking more about what 'needs to be' or what will be 'what is' ('is-ness' as Prof.Modi mentioned.)
  2. The best place to start learning Functional Programming would be Erlang or Haskell'98 (as Dr.Anuradha mentioned.)
  3. Starting out with monads and trying to run away from 'typed' variants is not recommended for those who are first stepping out into functional programming. (Dr. Anuradha) - (I have done this mistake, so I know this is true.)
  4. You could opt to write 'C Programs' with functional abstractions and Object-Oriented concepts like polymorphism. You could even do this with Assembly language - but that would be too cumbersome if a functional programming language already exists. (Prof. Modi) 

Everyone on the panel or otherwise knew functional programming and also knew that it doesn't get used in production.
  1. The reason functional programming gets lesser attention is the lack of digital infrastructure to support it.
  2. The "Harvard Architecture" in the market essentially assumes sequential code execution, thanks to Alan Turing's early papers. Hence concurrency is also another blocker as the architecture hasn't been rewritten to help that happen - not entirely mathematically despite the fact we have parallel processing, multicore computing happening.
  3. People start learning an "Imperative" language like "C" or "Pascal" or "Fortran" to begin with. Hence they get fewer opportunities that coax them to try out or spend time on functional programming.
  4. The switch usually has to be made at the cost of non-office times for a professional programmer, which leaves a shorter percent of time allocated towards it which is another factor that discourages people.
  5. Most people without a strong theoretical background in computer-science find it difficult to understand Object-Oriented Programming ... making Functional Programming more fringe. 
  6. Deterministic problems are seldom solved (in general practice) with functional programming as Structured programs are easier to verify and prove to be theoretically correct.

Thanks to more discouraging infrastructure factors to the more recent ideas of Functional Programming, Object-Orientation fused with Functional Programming; the 1967 creation of K&R lives on even today in production.

Recommended Reading

For Programmers you can find companies like:
http://www.janestreet.com/
http://www.helpshift.com/
who have a motto to do all their work exclusively on functional programming.