in

ASP.NET Weblogs

uber1024's WebLog

It's not hot wings and beer, but it's still okay

July 2007 - Posts

  • One guy's view on H1-B visas

    I know this is a touchy subject, as well it should be.  I'm going to try to approach this from the perspective of a technology executive who is a US citizen and who has worked in the tech industry since 1999.  For those who know me, you know that this is not a difficult point of view for me to have.  Next time I will write a blog entry from the perspective of a dude who likes watching football and drinking beer ... also not a difficult point of view for me to hold. 

    The situation in New York City might be different than the situation in Witchita, Kansas, so keep in mind the fact that most of my career has been spent in NYC and my entire executive career has been in this technical gene pool.  Also keep in mind the fact that I'm not really trying to represent the industry as a whole, the industry leaders, or the college graduate looking for his first job.  I'm trying to represent my own views that have crystalized after sitting on both sides of the interview table dozens of times.

    My position is simply that the H1-B visa quota is good, but needs to be raised pretty significantly and maybe be made a little more reactive to the needs of the industry.  It's good because there needs to be some effort made to protect US citizens.  After all, that's the purpose of laws and governments.  We might not always be happy about that, but it's the truth.  I wanted to move to Korea and work there for a while, but I found their laws to be exceptionally protectionist and xenophobic so I don't find the US laws to be draconian at all.   

    However, having been in the industry during the 2000-2002 dot com shakeout, I realized later that this was actually the best thing to happen to the tech industry in a while.  There were a lot of people who washed out of the industry in that time and the vast majority of them deserved to.  This is a highly-paid field (even with foreign competition dragging down salaries a bit) and, as such, we need the best people we can find in it.  My company recently raised our rates to $150 an hour for our technology department (we don't see that $150 an hour, in case you're wondering) and our clients expect to get their money's worth.  Now, as the leader of the department it's my job to make sure that our programmers are worth that $150 an hour that our clients are paying. 

    And that's where we come back to the H1-B visas.  At a time like this, competition for the best developers is tight.  I'm trying to hire another developer, for example, and the resumes I've been getting are crap.  They're not "just okay," they're complete crap.  I'm not talking about "I just graduated from college and I'm going to try to be clever in my resume design no matter how many people tell me it's not a good idea" kind of resume.  I'm talking "I don't have any clue what I'm doing and I'm going to document that fact in resume form" kind of resume.   I met a programmer from South America who just knocked my socks off.  She is an outstanding developer, she's well-liked by her peers (ie, she's a great team player), and she's showing signs of developing strong leadership skills.  Basically, she's a top-notch candidate for a mid-to-senior level developer role ... exactly what I'm trying to hire.  Unfortunately, I can't.  It's difficult to understand why we would want to keep a smart, productive person from moving to our country, contributing to the economy, and paying taxes.  I understand that this is the way it is, but it needs to change.

    I'm trying to hire someone, and US citizens are always easier to hire for many reasons (less paperwork, shared background, familiarity with the American way of doing business).  But the pool of US citizens is poor right now.  The best people have jobs and are happy there.  Scraping the bottom of the barrel is not an attractive business option.  If I know someone who is interested in moving and working here that would be a perfect addition to my team ... why shouldn't I be able to hire her?

    As a developer, I remember lots of my colleagues being upset as Bill Clinton continually raised the cap on the number of H1-B visas that were available each year.  I tried to understand why, and it always came down to one of two reasons.  The most common reason was that the people in question flat-out sucked as developers and knew they were not capable of dealing with the competition.   The second, definitely less common but still heard often enough to appear on my radar, reason was xenophobia.  By which I basically mean "racism."  I'm not even going to dignify that sentiment with a rebuttal because it's ridiculous.

     I think there's a middle ground here.  There were proposals to have the visas be capped but with provisions to increase the cap if necessary.  The EB-2 visa has provisions built in that allay the fears of many.  To sponsor someone for an EB-2 visa, you have to be able to prove that you attempted to fill the job with a US citizen but were unable to do so.  Maybe this is an idea that can be applied to H1-B visas.  It would certainly make it easier to bring in talented people to ease tight labor markets and would also help US citizens find jobs during tougher times.

    I'll note here that I'm not really involved in setting salaries for my programmers.  That's the operations department.  I just let them know how good a candidate is and they make the offer.  We have one programmer here who is H1-B and I know that she is paid the same as the US citizens.  She's my best programmer and I wouldn't have her paid any less than she's worth.  The other thing to note, salary-wise, is that my current programmers are going to pay the price for the exclusion of talented foreign workers.  They're going to have to cover the slack from the missing developer role while I interview retard after retard.

     I'll finish this off by saying that I realize that the problem that many people, including me, with the current system is not the immigrant workers themselves ... but the abuse of the system by large companies.  I agree that this is a problem, but punishing companies who work within both the spirit and the letter of the law, and punishing future US citizens is really not the way to go.

     Hopefully this entry provokes some thought.  I'm sure it's going to provoke some reaction.  Whatever your opinion on the matter, I ask two things.  The first is to think about why you feel the way you do.  REALLY think about it.  Look in the mirror and ask yourself why you feel that way.  I did, and I didn't always like what I realized.  The second is to at least make an effort to be civil when discussing this topic with people.  I've found an ENORMOUS amount of ignorance about immigration laws, visas, and the state of the industry and country when discussing immigration.  It's a hot-button issue, politically, these days but I wanted to focus more on the high-tech workers and not the low-paid, under-the-table illegal immigrants that most people think about when they think about immigration.  I hope that this entry has offered a perspective on this topic that helps people understand the issue.

  • Linking 64-bit SQL2k5 to 32-bit SQL2k ... or, How to Avoid Wasting 10 Days Waiting For Straight Answers

    They say a picture is worth a thousand words, so here's a thousand words.  The situation is that we have a 32-bit SQL2k cluster and a linked 32-bit SQL2k machine (they link in both directions) and we need to execute distributed transactions across both machines and in both directions.  This works fine, and has been working for many months (after we spent a month trying to get our hosting provider to correctly install MSDTC ... another story entirely).

     It was recommended by a consultant (I know, I know, readers of WorseThanFailure aka TheDailyWTF are snickering up their sleeves at me) that we replace the cluster with 64-bit windows and 64-bit SQL2k5.  He had the picture of our network and assured us that it wouldn't cause any problems.  Predictably, it caused a host of problems immediately.  It's been 2 weeks and we're still not done with the project. 

    The problem is that we were getting a pretty mystifying error message:

    The stored procedure required to complete this operation could not be found on the server. Please contact your system administrator.
    Msg 7311, Level 16, State 2, Line 1
    Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI" for linked server "<LinkedServerName>". The provider supports the interface, but returns a failure code when it is used.

     
    I found the MS knowledgebase article which was, as per usual, not really as helpful as it could have been.  I spent 10 days talking to the database guys at our web host (and these guys are typically pretty sharp) and it finally came down to "you are on your own," which is what I figured.  We all looked at the KB article and couldn't really figure out what, exactly, we were supposed to do.  As a former programmer, I figured I'd dive into some code and lo-and-behold I had a breakthrough in like 45 seconds. 

    When SQL2k5 64-bit is trying to select data as part of a distributed transaction, it tries to run a stored proc called "sp_tables_info_rowset_64".  That jumped out at me immediately.  The 32-bit database has a proc called "sp_tables_info_rowset" that does the same thing.  So I added the following stored proc to my 32-bit SQL2k instance:

     

    create procedure sp_tables_info_rowset_64 @table_name sysname, @table_schema sysname = null, @table_type nvarchar(255) = null

    as

    declare @Result int
    select @Result = 0

    exec @Result = sp_tables_info_rowset @table_name, @table_schema, @table_type

     

    So ... kancho to the knowledgebase article that was going to have me run a 935KB sql script that would make massive changes to the master database.  From the command line. On a Saturday morning.  If I would have done it their way, I'd be here all day.  Doing it my way, I'm done in time to dash off a blog entry and then have breakfast with a beautiful girl.

    Note to Microsoft:  This is why people hate upgrading.  You make our lives suck when we try it.  Remember that we don't want to spend our weekends fixing stuff.  It's not about the money.  It's about finding out why they call it a Brazilian wax.

More Posts