Friday, August 13, 2010

Are Indian I.T Companies Chop Shops?



There has been a lot of news about a comment made by a US Senator on Indian Software Companies. Related links about the comments are

Chop shop?

America's High-tech Sweatshops.

My Opinion about the articles and the comment is.

They are absolutely true. Being an Indian and having lived in the US for 10 years, I have seen and worked with lot of friends and co workers who were working for one of the so called top companies in India. The normal day start like this.

These guys come to work at the client side in the day as rest of us. But the day does not end for them when they reach home. Immediately after 9 p.m, they will be having an off shore call with their counter parts in India. The call will go on until 1 a.m. This poor guy would have only a few hours of sleep and then gets ready for work the next day and deal with the onsite Manager.

This is considered OK if this happens once a week. But this happens almost every day including the weekends. Just because these guys were a select few out of a 50 thousand employees and were sent to US for on-site opportunity, their Managers in India and On-site have all the rights to disturb them even in the middle of the night... Why? THEY ARE PAID IN DOLLARS. Don't assume that they are paid a hefty salary. Its not even the minimum salary. There have been multiple instances that Indian companies like Cognizant Technologies and Patni computers have been fined by the Labor department for not giving minimum wages. Are they practicing the American Labor Laws. Absolutely no.

If what I am saying is true, one may think, why nobody has complained to the Labor department, because they are all bonded in the name of Visa and a agreement signed by these guys before leaving India. They will threaten the employees with law suits even though it is not valid in many instances.

The typical employee working in these kind of companies work on an average 60-65 hours a week. Even with all these difficulties, these guys manage to save some money and send it back home.

There is nobody to fight for the Indian IT worker both here and in India. I am coining a new term for the Indian IT workers. They are the new Bluish-White Collar worker.
Why don't the media agencies interview me? I am not joking here. I can talk for hours about this.

What will happen to these workers 10 years from now?

India has a huge workforce which will work against these guys. These guys are not supermen. They are also ordinary human beings. These guys will be worn out by then like a sugar cane after the juice has been extracted. The recession has already taught a lesson to many of the Indian software engineers. Hiring and Firing happens in India too.

Friday, October 02, 2009

Value Investing: Following the foot steps of Warren Buffet

Besides my academic qualification in Finance (M.B.A) in India, I used to read lot of magazines and financial news papers. I learnt this from my old friend Mustafa in chennai, India. At that time, he was considered as the master of financial information. You ask him anything, he will give you instant answer(of course the correct one). Since I came from an engineering background, getting a grasp of those concepts was quite a task for me. Slowly I started getting interest in finance.


Then my financial reading fell off the cliff as I had to learn software to get a job in software industry. After I came to US as a software engineer in 2000, I had both money and little bit financial knowledge. I started investing in finance at the peak of the market. NASDAQ reached its highest 5000 mark in April. Luckily I was reading this this book "
24 Essential Lessons for Investment Success" . It said
  1. Do not have emotional attachment to any stock.
  2. If the price of any stock goes down by 8% in your portfolio, simply sell it

I don't remember any of the other steps.I simply sold all the stocks that I had as all of them met those criteria. In the end I got a $700 loss. I only bought well known companies like oracle,cisco,coco cola,nokia,sun micro systems.

The mistake I made was

I did not really do any fundamental analysis. The companies are still great companies but are the price of the stock worth the value?

The price of the stock was so high when compared to the earnings. Since every company was having the same trend. I simply overlooked.

Now I just finished reading an excellent book "Getting started in Value Investing". That book deserves a 5 star rating.

I believe everybody should read that book if they want to invest in stocks.

You dont need to have a Phd in finance to invest in stock market.

I know many of my friends simply invest in stocks with no reasoning on why they are buying that particular stock.

After reading that book, I have disciplined myself in investing stocks. I am going to sincerely follow the investment principles of Mr Buffet.

  1. Pay all your debt
  2. You have to be patient
  3. Invest the money that you don't need for the next five years
  4. Do not put all eggs in one basket. Diversify Diversify Diversify
  5. Invest in well known companies and huge companies(>10 billion)
  6. Analyse their fundamentals( P/E, EPS, Operating margin, consistent dividends, rich in cash reserves and less debt, consistent increase in earnings, return on shareholder equity, ).

Compare this with the industry that they belong to and with their competitors.

If you ask me how you can know what all these ratios and how to intrepret them buy the book that I mentioned in this post.

Here is my portfolio and I am going to wait for 5 years. Lets see what happens.

Here are the other books in personal finance that I liked
  1. Intelligent Investor
  2. Mortgage rip-Offs and Money Savers
  3. The Warren Buffet Way
  4. Sensible Stock Investing
  5. Nolo's Essential Guide to Buying your First Home.

Tuesday, November 04, 2008

Encrypting Connection Strings using RSA

ASP.NET has built-in tool to encrypt sections of the config file. The tool that is used to encrypt sections of the web.config file is ASPNET_REGIIS.EXE . It can be found in
%WinDir%\Microsoft.NET\Framework\v2.0.50727

The following are some of the sections that can be encrypted.

  • <appSettings>. This section contains custom application settings.
  • <connectionStrings>. This section contains connection strings.
  • <identity>. This section can contain impersonation credentials.
  • <sessionState>. This section contains the connection string for the out-of-process session state provider.

The following are some of the sections that cannot be encrypted.
  • <processModel>
  • <runtime>
  • <mscorlib>
  • <startup>
  • <system.runtime.remoting>
  • <configProtectedData>
  • <satelliteassemblies>
  • <cryptographySettings>
  • <cryptoNameMapping>
  • <cryptoClasses>


There are two providers available in the .NET Framework to encrypt. They are

○ DataProtectionConfigurationProvider
○ RSAProtectedConfigurationProvider( The default provider )

There are two containers used to encrypt. They are

○ Machine level container
○ User level container

Machine level container will be available for all users and User level key containers will be available for that user only.

In this post, the objective is to encrypt the connectionStrings section of the web.config file.

There are two options to encrypt

○ Virtual Directory
○ File System

Assuming the virtual directory name is "MachineRSA" and it is located in
C:\Projects\MachineRSA

The command to encrypt the virtual directory is

aspnet_regiis -pe "connectionStrings" -app "/MachineRSA"

Pasted from

The command to encrypt the file system is

aspnet_regiis.exe -pef "connectionStrings" C:\Projects\MachineRSA

Pasted from

The -pe switch specifies the configuration section to encrypt.

The -pef switch specifies the configuration section to encrypt and allows you to supply the physical directory path for your configuration file.

Wednesday, July 02, 2008

My Links at Del.Icio.US



Friday, July 27, 2007

I-485 Checklist of Supporting Documents

ALL CHECKS PAYABLE TO THE US DEPARTMENT OF HOMELAND SECURITY

  1. I-485 ($395) I-485 ($225 under 14)
  2. G-325A G-325A G-325A (if 14 and older)
  3. I-693 Immigration Medical I-693 Immigration Medical I-693 Immigration Medical
  4. I-693 Supp – Immunization Chart I-693 Supp – Immunization Chart I-693 Supp – Immunization Chart
  5. I-765 ($180) I-765 (optional) I-765 (optional)
  6. I-131 ($170) I-131 (optional) I-131 (optional)
  7. I-134 (if filing for dependents too)
  8. **I-134 Affidavit of Support: Principal alien is required to complete, sign and have notarized a separate I-134 for each dependent.
Click the link below for USCIS Civil Surgeon Locator
Civil Surgeon locator


Principal Alien:

  1. Photocopy of I-140 Approval Notice
  2. Two Passport Size Photographs per application–Instruction sheet attached
  3. Photocopy of I-94 Arrival Departure Record – front and back away from passport
  4. Photocopy of all immigration status documents (I-20 / IAP-66 (DS2019) / EAD / I-797 Approval Notices)
  5. Photocopy of all Passports used to enter the U.S. – all pages (color copies if possible)
  6. Photocopy of Birth Document
  7. Photocopy of Marriage Document
  8. Photocopy of Divorce Documents – if Applicable
  9. Last year of Tax documents – 1040 & W2 forms
  10. Current proof of employment – employer letter and/or 3 most recent pay stubs

Spouse:

  1. Two Passport size photographs per application
  2. Photocopy of all passports used to enter the U.S. – all pages (color copies if possible)
  3. Photocopy of current arrival/departure record (I-94) – separated form passport, front and back
  4. Photocopy of all U.S. Status documents – Approval Notices, Receipt Notices, I-20, IAP66 (DS2019)
  5. Photocopy of birth document
  6. Photocopy of marriage document
  7. Photocopy of termination of marriage documents – if applicable.


Child:

  1. Two Passport size photographs per application
  2. Photocopy of all passports used to enter the U.S. – all pages (color copies if possible)
  3. Photocopy of current arrival/departure record (I-94) – separated form passport, front and back
  4. Photocopy of all U.S. Status documents – Approval Notices, Receipt Notices, I-20, IAP66 (DS2019)
  5. Photocopy of birth document

**Please forward a certified English translation for all documents not originally issued in English

*** Please put name and date of birth on back of all photos in pencil

Monday, July 09, 2007

Design Patterns Cheatsheet

I recently joined one more user group in Boston and that is the "Boston .NET Architecture Study Group".
This group meets every third Wednesday of the month at the Microsoft's waltham office in Boston. After going to the .Net user group at the same place, I gained valuable knowledge and attended some weekend code camps too. I happened to meet a lot of technical gurus and book authors and of course the technical recruiters. I found this design patterns cheat sheet in the forum.

From Design Patterns in C#

Adapter - Provide the interface that a client expects, using the services of a class with a different interface.

Façade - Provide an interface that makes a subsystem easy to use.

Composite - Allow clients to treat individual objects and compositions of objects uniformly

Bridge - Decouple an abstraction (a class that relies on abstract operations) from the implementation of its abstract operations so that the abstraction and its implementation can vary independently.

Singleton - Ensure that a class has only one instance, and provide a global point of access to it.

Observer - Define a one-to-many dependency among objects so that when on object changes state, all of its dependents are notified and updated automatically.

Mediator - Define an object that encapsulates the way a set of object interact. This keeps the objects from referring to each other explicitly and lets you vary their interaction independently.

Proxy - Provide a placeholder for another object to control access to it.

Chain of Responsibility - Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.

Flyweight - Use sharing to support large numbers of fine-grained objects efficiently.

Builder - Move the construction logic for an object outside the class to instantiate

Factory Method - Define the interface for creating an object while retaining control of which class to instantiate.

Abstract Factory - Provide for the creation of a family of related or dependent objects.

Prototype - Provide new objects by copying an example.

Memento - Provide for the storage and restoration of an object’s state.

Template Method - Implement and algorithm in a method, deferring the definition of some steps of the algorithm so that other classes can supply them.

State - Distribute stat-specific logic across classes that represents an object’s state.

Strategy - Encapsulate alternative strategies (or approaches) in separate classes that each implement a common operation.

I also became a member of the OpenGroup which is a open standards group for architecture and other technology related stuff. Visit their site if you want to know more about the TOGAF(The Open Architecture Group Architecture Framework. Did you learn something new today :) Have a good one.





Friday, June 15, 2007

Who is a Software Architect?

Though I have been working the Software Industry for over 8 years, I am yet to become an architect. I have interacted with many architects in my previous assignments. Each one of them had different background,different academic qualifications but one thing was common. That was EXPERIENCE . I am sure many of you would wondering what it takes to be an Architect. These are following responsibilities of an Architect. This is not all inclusive.
  1. Support business visioning and scoping activities
  2. Translate between business and IT requirements
  3. communicate with stakeholders both within business and IT
  4. Weigh different interests
  5. Determine solution alternatives
  6. Create viable and feasible design
  7. Choose solutions
  8. Manage quality
  9. Manage Complexity
  10. Mitigate Risks
  11. Communicate
I got these points from the Microsoft Architcture Journal. One more interesting website to note. It is the Skyscrapr. This is from Microsoft. Lots of articles are there. Have fun....