India IT a Limited Supply


Before founding my current company, I was on the technical staff for a large telecom provider.  In the early 1990’s about half of our tech team were hired on the H-1 visa’s  from India, all very sharp and good engineers.  As the tech economy heated up, the quality of our Engineers from India dropped off significantly, to the point where many were actually let go after trial periods, at a time when we desperately needed technical help.

The unlimited supply of offshore engineering talent evidently had its limits.  To illustrate I share the following experience.

Around the year 2000, in the height of the tech boom, my manager, also from India, sent me on a recruiting trip to look for grad students at a US job fair hosted for UCLA students.

In my pre-trip briefing we went over a list of ten technology universities in India, as he handed me the list he said,  “Don’t worry about a candidates technical ability, if they come from any one of these ten universities they are already vetted for competency, just make sure they have a good attitude, and can think out-of-the-box.”

He also said if they did not attend one of the 10 schools on the list then don’t even consider them, as there is a big drop off in talent at the second tier schools in India.

Upon some further conversations I learned that India’s top tech schools are on par with the  best US undergrad engineering schools.  In India there is extreme competition and vetting to get into these schools.  The dirty little secret was that there were only a limited number of graduates from these universities.  Initially, US companies were only seeing the cream of the Indian Education system.  As the tech demand grew, the second tier engineers were well-enough trained to “talk the talk” in an interview, but in the real world they often did not have that extra gear to do demanding engineering work and so projects suffered.

In the following years, many US-based engineers in the trenches saw some of this incompetence and were able to convince their management to put a halt to offshoring R&D projects when the warning signs were evident.  These companies seemed to be in the minority.  Since many large companies treated their IT staff, and to some extent their R&D staff, like commodities, they continued to offshore based on lower costs and the false stereotype that these Indian companies could perform on par with their in-house R&D teams.  The old adage you get what you pay for held true here once again.

This is not to say there were not some very successful cost savings made possible by Inidan engineers,  but the companies that benefited were the ones that got in early and had strong local Indian management, like my boss, who knew the limits of Indian engineering resources.

How to Survive High Contention Ratios and Prevent Network Congestion


Is there a way to raise contention ratios without creating network congestion, thus allowing your network to service more users?

Yes there is.

First a little background on the terminology.

Congestion occurs when a shared network attempts to deliver more bandwidth to its users than is available. We typically think of an oversold/contended network with respect to ISPs and residential customers; but this condition also occurs within businesses, schools and any organization where more users are vying for bandwidth than is available.

 The term, contention ratio, is used in the industry as a way of determining just how oversold your network is.  A contention ratio is simply the size of an Internet trunk divided by the number of users. We normally think of Internet trunks in units of megabits. For example, 10 users sharing a one megabit trunk would have a 10-to- 1 contention ratio.
 A decade ago, a 10-to-1 contention ratio was common. Today, bandwidth is much less expensive and the average contention ratios have come down.  Unfortunately, as bandwidth costs have dropped, pressure on trunks has risen, as today’s applications require increasing amounts of bandwidth. The most common congestion symptom is  slow network response times.
Now back to our original question…
Is there a way to raise contention ratios without creating congestion, thus allowing your network to service more users?
This is where a smart bandwidth controller can help.  Back in the “old” days before encryption was king, most solutions involved classifying types of traffic, and restricting less important traffic based on customer preferences.   Classifying by type went away with encryption, which prevents traffic classifiers from seeing the specifics of what is traversing a network.  A modern bandwidth controller uses dynamic rules to restrict  traffic based on aberrant behavior.  Although this might seem less intuitive than specifically restricting traffic by type, it turns out to be just as reliable, not to mention simpler and more cost-effective to implement.
We have seen results where a customer can increase their user base by as much as 50 percent and still have decent response times for interactive  cloud applications.
To learn more, contact us, our engineering team is more than happy to go over your specific situation, to see if we can help you.

How to Create and Send an Encrypted File With No NSA Backdoor


Hackers101

 

Below is a little routine I wrote to encrypt and decrypt a file.

This script is meant for encrypting text files and sending them privately through e-mail as an attachment.

Note: The author makes no claims about whether this encryption technique can be broken. It would not be easy.

Here is what you need to use this program.

  1. Mac or other computer that can run a perl script from the command line
  2. very basic knowledge of how to create and edit a file from the command line

Step One , cut and paste the code below into a file in your  (MAC) computer

You’ll also need this same program on any receiving computer where  you expect to be able to decrypt the file.

Create the text file you want to encrypt. I used the following and saved it off.

Dear  Mom,

I really hate my boss he is a real jerk, and I even think he reads my private out going e-mails by intercepting them. So I am using this encryption device to send you this message.

Dave the Paranoid

Here is how the process to encrypt and decrypt looks from my command line

I saved off my text to a file aptly named “file” into my working directory

I saved off the perl code below and put it  into an executable file called “test”

I then ran the encryption program.

MacBook-Air:~ root# ./test ./file ./n encrypt “you live in a tree”

./test is the perl program

./file is the input file with the text I want to encrypt

./n is the output file for the encrypted message, I could send this text file as an attachment to an e-mail , and the receiving users would need the same perl program and “key” to encrypt

encrypt is the directive to  the program to encrypt, the other option is decrypt to reverse the process

“you live in a tree”  

is my key. You can make it any text string of characters you want as long as you include it in quotes, the more random and the longer,  the harder it will be for somebody to break

I then reversed the process to decrypt the file ./n and store the results in file “x”

MacBook-Air:~ root# ./test ./n x decrypt “you live in a tree”

the cat command below prints the contents of the newly decrypted file x
MacBook-Air:~ root# cat x
Dear Mom,

I really hate my boss he is a real jerk, and I even think he reads my private out going e-mails, by intercepting them. So I am using this encryption device to send you this message.

Dave the Paranoid
MacBook-Air:~ root#

————–code starts below this line do not include this line————–

#! /usr/bin/perl
# encryption tool ARG1 input file name, ARG2 key,ARG3 output file name
$key=$ARGV[3];
if ( ! defined $ARGV[3] )
{
print ” encode infile outfile [encrypt|descrypt] key\n”;
exit 1;
}
open (INFILE, $ARGV[0] ) || die “open whitelist file $ARGV[0]”;
open( OUTFILE, ‘>’, $ARGV[1]) or die “Could not open file ‘$ARGV[1]”;
while ($string= )
{
chomp($string);
if ($ARGV[2] eq “encrypt”)
{
my @chars = split(“”, $string);
my @keychars=split(“”,$key);
$charsize= @chars;
$keysize=@keychars;
$n=0;
for ($i=0; $i < $charsize; $i++) { $num1=ord($chars[$i]); $num2 = ord ($keychars[$n]); $chars[$i] = ord($chars[$i]) + $num2; print OUTFILE “$chars[$i],”; $n=$n+1; if ( $n > ( $keysize -1) )
{
$n=0;
}
}
my ($str) = join “”,@chars;
print OUTFILE “\n”;
}
if ( $ARGV[2] eq “decrypt”)
{
#decrypt
$n=0;
my @chars = split(“,”, $string);
my @keychars=split(“”,$key);
$charsize= @chars;
$keysize=@keychars;
for ($i=0; $i < $charsize; $i++) { $num1=$chars[$i]; $num2=ord($keychars[$n]); $num3 = ($num1 – $num2); $chars[$i] = chr($num3); $n=$n+1; if ( $n > ( $keysize -1) )
{
$n=0;
}
}
my ($str) = join “”,@chars;
print OUTFILE “$str\n” ;
} # end decrypt

} # end while input line

Pros and Cons of Using a Reseller for Networking Equipment


There are various advantages  for using a reseller when purchasing networking equipment.  There are also benefits to buying direct from the Manufacturer. Below we detail those trade-offs with some intelligent introspection.

 

Reseller: Logistics, the reseller holds local stock, and takes care of taxes, tariffs, currency fluctuation in your region.

Within the US and Canada  and other common trading partners, there may be no logistical advantage for ordering from a reseller over  a direct purchase; however if you are in a remote country where most products must be imported it is almost  a necessity. Some countries have less than above-board customs,  and taxation rules, dare I say bribes. In these cases,  a  local reseller who specializes in local corruption etiquette is a necessity .

Reseller: Local Support, easy to reach technical support in your time zone, training, returns, and trials.

A well-trained reseller who  exclusively  handles the product you are purchasing is essentially an extension of the Manufacturer. Think of Automobiles. This complex and expensive product to support, could not exist without a large dealer network. In the world of Networking equipment , some things are becoming  more of a  commodity , routers  ,firewalls, and thus, diminishing the need for a reseller. Buying through a channel and the associated mark up may not be worth the added value ,especially if the manufacturer  offers good direct support , and an overnight replacement policy.

Reseller: Pre Sale Product Knowledge, a good reseller will educate and explain options for the products they represent.

The potential downside here is that often the Reseller is motivated by the Equipment they give them better OEM incentives to sell, hence if they are selling more than one product line, they may actually downplay one over the other.

Reseller: Representation to the manufacturer , for new features, re-calls

The reseller often times can carry clout to represent you back to the Manufacturer since they represent many sales , they can be very  beneficial if you have a problem that needs to be resolved by the manufacturer .

Reseller:  Requirements for competitive bid, or government contract dictating approved venders

Companies that provide this type service are generally puppets set up by a government agency , often out of political need to create jobs.  If you work for a government agency that forces you to buy through an approved reseller , you are likely well aware of the game.

Reseller and Manufacturer: Personal Relationships

Having  a trusting relationship with the person you purchase equipment from is the tried and true way of doing business in many industries, and often these relationships trump all other factors.  I personally try not buy based on relationships because I feel it is a disservice to my employer, hence I keep them at arm’s length.

Manufacturer: Price Price Price

Buying direct from the Manufacturer should give a major price break. Any product purchased through a reseller channel is going to add a minimum 35 percent to the direct price and often even double or even  triple, depending upon the product and number of hops in the channel. OEMs and channels partners have had a love hate relationship since perhaps biblical times. As mentioned above, personal relationships are the key to most sales in many industries,  and for this  reason  manufacturers must rely on a local sales partner. On top of that, there are also agreements that manufactures sign so as not to undercut the local reseller price, hence the end customer has no choice but to purchase through a reseller. For many traditional products. However new companies  coming on the market are often going direct to get a pricing advantage, after you talk to your reseller for a product  be sure and do some research on your own and look for similar products sold direct, the price difference could be significant.

Manufacturer:Support

Why is it that Cisco’s best customers  are provided with direct engineering support?  The answer is simple, because it is better.  If you can get direct support take it.  I’ll leave it at that.

%d bloggers like this: