Tunnel Rat posted on September 28, 2007 17:50

Like the Zodiac Killer, I tend to emerge from long periods of dormancy to indulge myself. One of my indulgences is to blog about idiots I have encountered in my line of work, which happens to be applications development, mostly web stuff.

There seems to be no end to the line of naïve, delusional, and audacious fools who equate the development of complex technical programs with trivial keyboard banging.

And most post on Craigslist.

For kicks, I like to harass these clowns. They are usually young, come from privileged backgrounds, and are digitally savvy, wildly narcissistic, but above all, logically challenged. They grew up in a world where everyone got an award for showing up. Thus, when they enter the real world, they expect everybody to look at them in awe and take them ever so seriously.

They hate details. They bore easily. They are the types banging away at their Blackberrys or laptops at all the meetings, ignoring whoever is talking. Oblivious. Arrogant. Rude. They say “whatever” a lot.

And they mass in urban centers, where they can bask in the comfort of their fellow well-to-do peers, taking jobs in dot-coms, hip retailers, and consulting companies. They hang out at trendy breweries and sushi bars. They are irrationally obsessed with their iPods, VWs, and global warming. I heard this written about Hollywood, but it applies to this crowd also -- they are so self-absorbed, it's like they have autism.

Many were busy dry-humping conceited party girls from their privileged high-school clicks to notice the dot-com meltdown at the beginning of the century. Too them, it was ancient history. Times were now different – this was Web 2.0, after all. Forget the old rules, there is fresh money chasing after great ideas! And dammit, they had those ideas!

And they post those ideas on Craigslist, trolling for suckers to share in their delusion.

It was there, in the Spring of 2006, that I came across this ad:

Basically I love to come up with new ideas but as one person can't do it all. I am sure there are others like me who with the help of others can take things to the next level.

This is a phenomenal opportunity to build a great social networking-site, like Friendster, but way better.

We need to launch this in 3 months, so I need someone to work nights and weekends in exchange for equity when we go public.

Shit-for-brains “Mr. Idea Guy” had already caught the attention of a few Craigslist pranksters, and they were flaming the hell out of him. Every other post after his was a sarcastic response, full of venom and rebuke.

“Get a clue, asshole! Nobody wants to work for free!”

“This ain’t 1999, dumbass!”

… and on and on it went.

I decided to get into the fray. I sent a cynical email in response to his post:

“Yeah, right dude, I can’t wait to work for you – for free, of course. You sound like a real genius! Let’s get rich together!”
I sent the missive from my desk at the Sweatshop In A Nightclub, not really caring that the email got sent from my company’s email domain. I had been at that shithole “interactive media” company for almost two years, working like a galley slave, and I was burnt out. I did crazy stuff all the time, just to amuse myself.

It was there that I had once secretly recorded an arrogant creative director (he was a young, vain Canadian named Jeremy) indulging himself in some theatrical conceit. Not that there's anything wrong with being from Canada.

I taped him in a meeting (concerning another over-budget, wildly under-bid project) where he was literarily pounding his fist in the table, screaming something like “THAT WILL RUIN MY ENTIRE CREATIVE VISION FOR THE SITE! THAT 90 SECOND FLASH INTRO MUST BE THE FIRST THING USERS SEE!”

BTW, I think the Flash intro is the genital wart of the internet. I'm sure the Flashers will flame me, if they can ever get away from Halo 3.

I then looped that diatribe over and over to a backtrack of Pearl Jam's “Jeremy”, with a little bit of the Cool Hand Look stuff from Guns 'n Roses "Civil War". It made him sound like a whiny, over-indulgent punk, which he was.

I then sent that audio mashup to a few co-workers. Over the course of the day, I could here the clip playing on their PCs:

...Jeremy spoke in...THAT WILL RUIN MY ENTIRE CREATIVE VISION FOR THE SITE!...What we got here is a failure to communicate...THAT 90 SECOND FLASH INTRO MUST BE THE FIRST THING USERS SEE!...Jeremy spoke in, Jeremy spoke...What we got here is a failure to communicate...THAT WILL RUIN MY ENTIRE CREATIVE VISION FOR THE SITE!...Jeremy spoke in, Jeremy spoke...THAT 90 SECOND FLASH INTRO MUST BE THE FIRST THING USERS SEE!...

You get the idea.

I didn’t take long for my wuss boss to call me into his office one morning. “Jeremy saw your little email. He’s a little upset.”

“What’s the big deal?” I asked. “He’s a big boy – he should be able to handle it. After all, he has no problems telling us how easy it is to code his wacked-out designs.” The Canadian (Not that there's anything wrong with being from Canada, per se) pussball had a habit of telling us programmers that if we just switched from .NET to FLEX, all of our problems would be solved. FLEX lets you write really nasty ECMA-script so that your data-entry apps can look like video games. Graphic artists want all apps to look like video games, because they are all compulsive gamers.

“Well, he’s a little weirded out by it.” Boss-man looked like his typical wishy-washy self, trying to be firm, yet metaphysically wetting himself. He made a good living out of appeasing who ever was standing in front of him. A while ago, it was a seething Jeremy. Now it was me. He could be as non-confrontational as needed.

Anyway, because of that stunt, I was already on the skyline at Sweatshop In A Nightclub when I decided to engage in a little bit of fun with my new friend from Craigslist.

First, Mr. Idea Guy sent me an email, stating that he figured out where I worked by going to my company’s web site. The freakin’ genius was able to figure this out by merely looking at my email address! Shit, I didn’t know who I was messing with!

Then, he called the first contact listed on the web site – the head account executive, some jerk with a fauxhak named Rowan. The guy was a sociopathic scumbag, a divorcee who had banged a couple of the AEs. I wasn’t too worried about him – I was already mentally checking out of that establishment anyway.

Mr. Idea Guy had sent his real name in his email and I Googled him.

UCI MBA….Some frat pics…and his profile was on some engineering consulting company’s website…

…And then, bingo…

The fool had a MySpace page.

Typical MySpace twenty-something stuff. Pictures of beer-pong games. Drunk looking girls in football jerseys. Captions like “Hanging wid de homies.” What kind of upper-class white kid tries to sound like a gansta? Pussies, mostly.Wiggers.

Some guy on Craigslist summed it up nicely:

I hate to have to put it this way but the white culture is extremely bland and could be labled as stale..I am soooooo sick of hearing white people try and emulate the Black culture..."Dog this, Dog that".."What up my niggah" and all the rest of the bullshit slang...I've even heard little white Newport Beach girls calling each other niggah...Another thing that truly irks my skin is when I see a White person crimp their no rhythm arm and churn out the Cabbage Patch Dance...Cmon now, you look ridiculous..Just stick to having zero rhythm and roll on about your business..

I actually used to have a pansy white boy hack programmer from the O.C. suburbs who had a habit of greeting me with "wuz up, my nig!" I gave him the stink-eye and started calling him "Cowboy."

After a few months, he got the balls to whine "Please don't call me Cowboy. It has a negative connotation among programers."

"Really," I said, standing up and backing him out of my cube. "You mean like 'my nig'? What conn-a-fuck-a-tation does 'my nig' have?" He skurried back to his office.

But I digress.

Anyway, Mr. Idea Guy had won some kind of engineering contest for making what looked like a tobacco bong, like a hooka or something, and he proudly displayed it on his MySpace page.

But then, Mr. Idea Guy somehow got my home phone number.

And he called me.

Big mistake, gansta wannabe.

I cussed him out royally and told him to go back to slipping girls Ruffies and gang-banging them on pool tables, which is what rich kids in SoCal do for fun. He threatened to call the police if I didn’t leave him alone, and then I reminded him that he was the one that had called me.

Plus, I let him know that at his age, I was humping a PRC-77 across the Kuwait desert.

But above all, I told him to get out of the fuckin’ Internet business.

As for Jeremy, he had his entire staff working on designing new business cards for six months, and then fled back to Canada, leaving his office plastered with site designs that looked like tattoo art and erotic etchings. None were ever implemented.

Posted in:   Tags:
Tunnel Rat posted on September 28, 2007 17:37

For the second year in a row, I had a job in the summer that lasted 6 months. And once again, it was in the medical business. Plus, it was a non-profit. And as usual, it sucked, just like TCTSRN. But at least I was a contractor.

I was starting to see a pattern -- most IT work having anything to do with the medical field sucks. It just attracts the biggest bunch of hacks. For example, here's a quote from a Senior Programmer Analyst who works for a Michigan HMO:

When I was in third or fourth grade, I just loved to hack on Basic. I still get to do that now, only I mostly do it in Perl and SQL.

- Dr Dobb's

Note the operative word here: hack. The medical vertical is infested with these types.

I tried to hold my nose and just code, but my boss was a clueless, sneaky bastard. He would take my into the copier room and bad mouth other programmers and ask me to fix their code. Of course, those guys were usually hastily hired, not given any specs, and thrown into to the deep end, working unsupervised for weeks at a time.

He went on vacation for a week and the project manager (another ex-military guy with some balls) and I tried to stage a little coupe de tat. You know, nothing special, just setting up proper QA environments, implementing code-reviews, unit-testing, some semblance of analysis. Basic shit.

Then the fucking idiot boss comes back and wigs out.

"We don't need a QA environment. We can test in DEV!"

"Don't test all the shopping cart -- it pushes real transactions to the production server! We don't have time to configure the sandbox!"

"All the source code is on my laptop! You don't need to see it!"

"My framework is the best! As soon as I finish coding it, it will save the entire project...I should have it ready in a few months, right before we launch!"

More on him later.

I'll fill in the details, but for now I have to do some real work. I have a primary client that I am billing 40 hrs/wk to (a foul VB.NET/ASP.NET site -- but it pays the mortgage, and the work is off-site), and three other projects that I moonlight on.

I am starting to get the blogging urge again. This is what serial killers must feel; the ever-increasing desire to do something very satisfying. And it looks like people are reading. I have some admirers and a few grammar obsessed critics (you know the old saying -- those that can't write, edit).

Plus my blog is up to about 150 on Blogtopsites, when it used to hover around 400.

So stay tuned, I have some updates from the trenches, such as:

1. The Menopausal Bitch DBA
2. God, I'm Sick Of Ruby Freaks
3. The Sweatshop In A Nightclub

... And More.

Posted in:   Tags:
Tunnel Rat posted on July 15, 2007 16:11

More to come about the One Week Job, but now it is time to shed some light on the shady practice of hiring foreign programmers at below-market rates. To do this companies must prove that they can't find qualified American developers.

There is no programmer shortage, just a bunch of fake job ads. According to Programmers Guild:

Last summer Americans were shocked by the 7th annual Cohen & Grigsby immigration law seminar3 in which immigration attorneys explained how not to hire qualified Americans during the PERM recruitment process. The solution is not to eliminate this token requirement, but rather to reform both the H-1B and green card processes to require a good-faith, open, and public recruiting process.

Here a lawyer explains how American companies can post bogus job ads to prove that there are no U.S. citizens available to take hi-tech jobs:



This number is not fabricated, it comes directly from this:

Increasingly, Indian consulting firms (off-shorers and cross-border body shoppers) such as InfoSys and TATA, are operating in the U.S.A. and discriminate against Americans who are not of Indian descent. These firms pay wages that are 25% below market rate. This harms not only U.S. workers, but also U.S. consulting firms who can no longer competitively bid on public and private sector contracts.


Tata Consultancy Services (TCS) vice president Phiroz Vandrevala even admitted that his company enjoys a competitive advantage because of its extensive use of foreign workers in the United States on H-1B and L-1 visas. "Our wage per employee is 20-25 per cent less than US wages for a similar employee," Vandrevala said. "Typically, for a TCS employee with five years experience, the annual cost to the company is $60,000-70,000, while a local American employee might cost $80,000-100,000. "This (labour arbitrage) is a fact of doing work onsite. It's a fact that Indian IT companies have an advantage here and there's nothing wrong in that. The issue is that of getting workers in the US on wages far lower than the local wage rate."

After a few days at my new gig, which sucks, I decided to get a little adventurous and post this on Craigslist:

Yes, I admit it –I get paid too much and do too little. In my last three contract positions as a C# developer I have made over $75,000 and spent most of my time sitting around. Considering all the training I have, not to mention the countless hours and dollars I have spent keeping my skills current, I can’t believe I can’t find someone who can fully utilize my skills and leverage my fourteen years of IT experience.

To give you an idea, I had one gig where I was hired by a giant Japanese corporation to making enhancements to an existing time tracking system. It was a three month contract, and I was done in a week. I mostly sat around for the several weeks, blogging, learning some new technologies, and knocking out the trivial tasks that were occasionally assigned to me. It wasn’t like I was scamming them – my manager pretty much told me to stop bugging him for things to do.

My next contract had me working at an established dot-com rolling out a new web site. They needed some back end work done and all I had to do was enhance an existing C# application that called a stored procedure, created a couple of text files based on some business rules, and FTP’d the data. For this engineering challenge, I was hired for a six month contract.

I was done in three weeks. That included UML diagrams, unit testing, documentation, and deployment.

For the rest of my stay at this dot-com, I rewrote their entire outbound data feed system using multi-threaded Windows Services that were entirely XML driven. That took a couple of months, but I needed to look busy. Too bad that their QA department was backlogged by several months, so the application gathered dust while I built NUnit tests and generated a 100 page technical spec with NDoc. I turned down their offer of a full-time job because I was bored and wanted to do more web development.

Most recently, I am at a dysfunctional non-profit that knows little about .NET. They make extensive use of clipboard inheritance and block-boxes written by long-gone contractors that are routinely disparaged. Every now and then one of the cowboys on the team will come by and tell me to copy a few hundred lines of code from some class and make a new web page that is sort of, kind of, like another one. If I suggest that maybe a user control is the way to go so that we can encapsulate the logic, I get a terse response and irritated glare. “We don’t have time for anything fancy – just get it done.” So I hold my nose, copy and paste, and dream of better things.

That brings me to your needs.

Do you even know what you are doing? Can you scope out a project, define the requirements, dictate an architectural vision, staff the job properly with talent, and oversee your staff in a manner that allows them to excel?

Or are you just another poser, throwing bodies at the problem, mumbling clichés and acronyms as your staff lounges, blogs, fiddles around with Ajax, LINQ, or whatever is cool and utterly irrelevant to your project?

Now be honest. You know who you are, so don’t call me. I’ll just get in your shop, figure out that you don’t know what you are doing, and rack up tons of billable hours. Of course, I’ll complete all the little assignments you give me in a fraction of the time you allocated on your Gantt chart, and then surf the net or dabble in XAML. All on your dime.

However, if you think you can keep me challenged and busy with meaningful, substantial work involving ASP.NET, C#, and SQL, I’d like to hear from you.

Oh sure, you’ll be skeptical and bombard me with all sorts of technical questions in the interview (maybe after you Googled for some), and I’ll answer most if not all of them.

We can talk about multi-cast delegates, Manual Reset Events, the maximum amount of threads that a Wait Handle can monitor, Datasets vs. DataReaders, @@IDENTITY vs. SCOPE_INDENTY(), inheritance and interfaces, yada, yada, yada…

You get the idea – I’ve been doing this stuff for a while.

But before you contact me, ask yourself these questions:

1. Can you keep a sharp, hardworking developer engaged, productive, and motivated?
2. Will you or your staff feel insecure if he knocks out deliverables at a blinding pace in a thorough, well-designed, disciplined manner?
3. Are you able to give this hired gun all the tools he needs? That means something other than the 14” CRT and the Pentium 3 that you throw at other contractors. (No joke, I actually had someone hire me at $50/hr to program in .NET on a P3 with 128 MB or RAM. This was a few months ago – needless to say, I left that gig after three weeks.)

If you are not already ashamed and indignant because you can’t meet these criteria, send me an email.

Don’t worry; I’m articulate, friendly and personable. I’ll be worth every dollar of my billable rate, and I won’t waste your time (that is, unless you want me to).

Posted in:   Tags:
Tunnel Rat posted on June 27, 2007 17:22

As the my team huddled tenatively around the DVD player, I played the scene from Casino where Sam (DeNiro) fires the redneck running his slots. Classic DeNiro...

Sam: Now you're insulting my intelligence. What's the matter with you...?
Redneck: I think you're overreacting.
Sam: Listen, you fuckin' yokel. I've been carrying your ass ever since I got here. Get your ass outta here.


I let the scene play out for a few more lines, and turned off the DVD.

Get your ass outta here!
Godamn, I wanted to say those words to Charlie, and the TAC also. In fact, I wanted all of them out.

"Man, I love that movie," I told the boys, smiling. They looked back at me, shocked. It was like I had just shown them a hard-core bestiality video. Fuckin' pussies.

I leaned against the conference table.

"Now, don't get me wrong, nobody's getting fired. But I do need to make a few things clear. We got a lot on our plate, and there's huge pile of work to be done by the end of the year. So I just want to let you guys know that I'm counting in you..."

Silence, and some shoegazing.

"...And I've been in places where companies lost faith in thier development teams. It happens quickly, and it ain't pretty." I scanned their faces for any hint that I was getting through to them. Nothing. I was embarassing them, and they didn't like it. I continued anyway.

"I've seen guys tapped on the shoulder, and then never seen again. I've been in shops where they outsourced the whole operation to Indians -- guys I liked to work with were kicked to the curb..."

"What, is there uh problem?" Burning Man asked.

"No, not yet, but we have a lot of work to do." I checked the clock -- I only had a few minutes left before I lost the conference room.

"Oh, and one more thing -- this company has a pretty good deal going for some of you guys with this 9-80 deal, and I'd hate to see someone on my team cause them to pull that privilege." I needed to let them know that I was on to their shit -- their coming in late, leaving early, and in general, being royal jerk-offs.

Charlie rolled his eyes. Mr. Coffee looked like he was running late for his daughter's basketball game. The TAC was confused. The three Asian guys all had something in common -- they weren't listening.

I have a theory that most Asians think white guys are stupid. I mean, after all, while most of my cracker friends and I were trying to score some good bud or fingerbang Suzy Rottencrotch, guys like the TAC were cramming for a Trig exam. Most didn't even get laid until they were well into their twenties. I don't think the TAC had ever even smelled pussy. So, by default, I was some kind of idiot in there eyes, unless I proved otherwise.

The tree hugger spoke up again. "What, is somebody on this team taking advantage of that policy?" whined Burning Man.

"No, just a heads up." I started packing up. "Thanks a lot guys."

Now, I don't care of someone comes in, kicks ass, bitches and moans, but generally, gets the damn job done. They can work two hours a day for all I care. But these clowns were far from productive. When they did get something done, it looked like a stinking, runny pile of feces...

...the TAC, with his stored procs that had more lines than the manuscript for Infinate Jest...

...Mr. Coffee, who built an entire web app with hard-coded links to a stylesheet that resided only on his computer, and then did nothing when the CIO called to inform him that he could see nothing but a black page...

...and Burning Man -- with his pretty hair, CD collection, and ignorance of the most basic IT concepts...

..and Charlie...fuckin' Charlie...

Hiding, dodging, slacking, engaging in all sorts of mastrubatory coding exercises that accomplished nothing -- I was sick of it. And I've been carrying their sorry asses since I got there, and like DeNiro's character, I was tired of it. I was ready to get my weekends back and my life in order. By then I didn't care what my team thought about my antics. I was in full frontal assault mode, and I was going to clear this damn tunnel.

The crap had started to seep into my family life again. The night before, after several glasses of wine at dinner, my wife and I had gotten into it after I started bitching about work.

"What is with you?" she had asked. "You get these jobs, they work you to death, and everybody you work with is an asshole. Maybe you're the one with the problem!"

Well, she did have a point -- I was an asshole. But I got the job done. These guys on my team where assholes, and got nothing done. But that was about to change.

I just had to make an example out of one of them, and Charlie was it. And that train had left the station.

When I came in the next day, Mr. Whiteboard called me into his office.

"Don't worry about Charlie anymore," he told me. "Everything will be taken care of next week"

Fuckin-A! Now we're talking, I thought to myself.

"Thanks. Look, I'm sorry about all the trouble I've stirred up. I appreciate your support."

"Ok," he said. He stared at me blankly. The meeting was over.

I was stoked. Charlie was on his way out. I could get some things done now. And since the Online Query App was out the door, I wasn't going to have to work this weekend. I called my wife and made plans for dinner.

When I came in on Monday, Charlie's cube was empty. The little snake didn't even say goodbye. Maybe he was escorted out of the building on Friday. He was sure worthy of it.

But now, I had to clean up his shit. All of his unfinished work would need be prioritized, rescheduled, and eventually, coded, mostly by me...

...I had to buy some time from Ferris and the other stakeholders. Man, it was a lot, and then there was that Suicidal Caller thing that the clueless, gayish CIO wanted done...

...and that Archive tool...

...and I had to get the TAC back on track...

...plus, Burning Man was going to have to set up the new servers by himself, after he learns what IIS means...

My phone was ringing -- it was the HR lady.

I got fired that afternoon.

It was like I had chased Charlie deep into to the tunnel, had him cornered, and at the last minute, he pulled the spoon on a grenade that blew both of us up.

I saw the ad for my old job on Dice the next week:

Title: Supervisor, Applications Development
Skills: VB.NET, ASP.NET, SQL Server
Tax term: FULLTIME
Pay rate: Market

The ideal candidate will have experience supervising the work of others as well as knowledge of developing and making changes to applications in Microsoft technologies such as ASP, ASP.NET, C#.NET, AJAX, VB 6.0, MS SQL Server, Web Services and XML.

Examples Of Duties: This position will provide first level supervision which involves accountability for assigning, coordinating and evaluating the work of subordinate staff.

1. Develop and make changes to applications in Microsoft technologies such as ASP, ASP.NET, C#.NET, AJAX, VB 6.0, MS SQL Server, Web Services, XML etc.
2. Design and develop, with the help of DBA, MS SQL Server database objects (tables, stored procedures, functions, etc.)
3. Develop software that meets requirements and provides desired functionality.
4. Work with consulting group and technical resources to analyze requirements and define solutions using Visio, Visual Studio etc.
5. Test implemented software changes to ensure functionality, stability and scalability.
6. Develop and deliver required technical documentation.
7. Participate in project and design meetings.
8. Resolve complex technical issues.
9. Follow defined software development methodology.

Mr. Whiteboard was going to have hire another SAD.

Posted in:   Tags: ,
Tunnel Rat posted on June 26, 2007 17:16

I Predict a Riot. I couldn’t get that song out of my head.

For days I had been driving into work at TCTSRN, listening to that Kaiser Chiefs song about hooligans and condoms. And I was starting to sense that something was building.

...I Predict a Riot…

Mr. Whiteboard had started to give me the stink eye after I mocked his habit of changing code in stored procs and rolling them straight into production. We weren’t really seeing eye-to-eye on the whole Charlie debacle, either. I had show him the HR paperwork after I wrote Charlie up for sitting on his ass instead of resolving a major production break, and he had done nothing. I started to sense that he was up to something, but couldn’t figure it out.

...I Predict a Riot…

Because when a shitbird IT manager starts feeling pressure, they tend to resort to all sorts of tricks to protect their turf. That is how, in spite of overwhelming evidence of their incompetence, they manage to retain power for years. And they don’t like to be threatened with exposure of their incompetence.

...I Predict a Riot…

And I had threatened Mr. Whiteboard.

TCTSRN had a Compliance Department and it was their job to ensure that the company was not playing fast and lose with patient data. They audited things and responded to confidentiality issues. But most importantly, they said it was the responsibility of all employees to report privacy violations.

When the last prod break happened, Mr. Whiteboard should have notified the Compliance people and at least given them the heads up that there might have been a breech.

But he had done nothing.

...I Predict a Riot…

Man, I was ready to stir up some shit.

At my next meeting with old shovel face, I asked if he had done anything about that HR paperwork I had given him.

He looked at me. Blankly. “You mean that CAR form you wrote up for Charlie?”

“Yeah, isn’t it supposed to go to HR or something?”

“I’ll take care of it.” He didn’t sound too convincing.

I picked it up a notch. “You know, we had some privacy issues on that last production break.” I leaned forward, lowering my voice. “Do we need to notify the Compliance folks?”

He knew what I meant – I could get him fired. He stared at me. Blankly. I thought I could see my reflection on his forehead.

“I’ll take care of it.”

The meeting was over.

...I Predict a Riot…

So, I had dropped a veiled threat to my boss, and was working on getting one of the turds on my team fired. The rest of the boys needed some attention. They just weren’t getting the hint.

Projects were undone, trouble tickets three months old were still open, and they still hadn’t given me any documentation detailing the applications that they thrown into production over the years. Bastards.

With the atmosphere thoroughly polluted by Mr. Whiteboards foot dragging and Charlie’s belligerence, I had nothing to lose. I was going to fire things up a little bit.

...I Predict a Riot…

The morning of my weekly staff meeting, I dashed out to the local Blockbuster video store to pick up a special movie. I found it on a rack of older titles – Casino.

I got back to my desk a few minutes before the meeting and loaded the DVD into my portable player. I queued up the scene where DeNiro is about to chew out the redneck who was running the slot machines. I was getting tired of my team insulting my intelligence, and nobody could make that point better than DeNiro…

Oh, shit, I just lost my train of thought…My manager just snuck up on me while I was blogging…wanted me to sign my termination letter…it’s my last week at this gig…

…Damn, I have to finish this up later, maybe after I leave my current contract in a few days. I don’t know why I should even worry - I turned down their offer to go perm and have been, for all intensive purposes, sitting around for the last two months…having to smell Bababooey’s lunch and trying to look busy, blogging, maybe even doing a little bit of moonlighting on their dime…

…Fuck it – what are they going to do, fire me on my last week?

…Let the blogging continue in earnest…

My team shuffled in to the conference room. Charlie and his dingy white shirt and bell-bottom slacks. God, he looked like he belonged in the motherboard aisle at Fry’s. Mr. Coffee and his, um, Starbucks cup. The TAC, probably still trying to figure out how to stream HTML out from a stored procedure. And Burning Man, with his lavender hair and old Doc Martins.

“Hey guys, I have little treat today. It’s a scene from one of my favorite movies.” I turned on the DVD player. “Now this movie is rated R, so you guys don’t mind if there is some adult content, do you?”

Burning Man looked scared. “Like what, Nazi stuff?”

Geez, what a fuckin’ hippie. What is it with people like him? Why, if you have hair cut about your shoulders, and dress fairly conservatively, and show up on time, and also happen to be a white middle-aged male, you're assumed to be a fucking Nazi?

“No, just a little cussing, that’s all.”

I rolled the tape…

Posted in:   Tags: ,
tunnel rat posted on June 25, 2007 16:14

Gee, I must have pissed off some CEWPs (Curry Eating Wage Pirates), because the day after I posted my last blog my ISP got hit with a massive DOS attack that shut it down for a few days.

Now, I’m not pointing any fingers, but it wouldn’t surprise me if some CEWPs in Bangalore or some other open sewer of a city in India got together and slammed my ISP’s servers after reading my post. That would be typical of a culture that spent their time and energy developing nuclear weapons instead of fixing their decaying infrastructure that forces men to piss in public urinals in full view of female passerby.

I can’t believe these offshore companies are even trying to recruit American programmers in the U.S. I keep getting calls from thick-accented Indian recruiters with unpronouncable names, wanting me to work on contracts on the other side of the country. And if you mention that maybe working for Indians may not be the best scenario for an America developer, you are met with outright indignation, albeit in broken English. Maybe they are starting to get some push back from American clients who find themselves forced to deal with shoddy programmers who can barely speak English.

And evidently, the Indian diet evidently has caused some issues in the American workplace, as this post from Craiglist’s best shows.

But enough about the CEWPs – I need to wrap up the
TCTSRN thread.

Six weeks into my gig at that non-profit, where I was SAD (Supervisor, Applications Development), I finally had my chance to get rid of Charlie.

We had launched the Online Inquiry App, and it took all of a day for the Senior Business Analyst who gave me the specs and tested the app to figure out that it was broken. Like, major security, HIPAA violations broken. Like, anyone could see confidential patient data which they did not have authorization to see. It had something to do with the hacks buried in the login process. Easy fix, and it would only take a few minutes to correct the issue.

But there was one problem -- I wasn’t around when they found out about the bug.

I was spending the day in Leadership For Results training class with a bunch of ladies, and one or two male middle-managers, doing role-playing games and other worthless exercises dreamed up by HR consultants.

By the time I got back to the fourth floor that afternoon, all hell was breaking lose. Mr. Whiteboard was running around dealing with some other production break, and the analyst filled me in about the nature of the Online Inquiry App problem.

“Did you tell Charlie?” I asked her. As worthless as he was, he could have fixed the bug pretty quickly.

“Yes, I told him this morning.”


“I haven’t heard,” she told me before rushing off to put out another fire.

I made my way over to Charlie’s cube. He wasn’t around. Neither were Mr. Coffee, or the TAC. It must be Starbucks time for the Asian developers, I thought.

So I decided to wait in Charlie’s cube. I prepped for an ambush. Lock and load, bitch.

He showed up five minutes later. He looked freaked out when he saw me sitting on his desk.

“Hi Charlie.”

He said nothing as he scurried to his chair. The cube was small and L-shaped, and I was on one end looking over his back as he logged in. I had a good field of fire.

“How are we coming on that production problem?” I asked calmly.

“Wud problem?”

“You know. The Online Inquiry App.” His computer screen opened up, displaying a bunch of code that was part of his “Massive Architectural Framework” that I had told him to stop working on.

“Uh, I dun know. I havend look ad id.” He started shutting down windows on his computer, hiding his work.

“So we have a production break, and you’ve known about it since this morning, and you haven't looked into at all?” I triggered the Claymores and initiated the ambush.


“What’s the deal? It looks like an easy fix,” I told him.

“Why you giving me heat? I dond do nuding unless you tell me.” He was returning fire.

“Don’t you think this a serious problem?” I was laying down rounds in full-auto.

“I dun know.”

I started putting down some covering fire and securing the perimeter. “How about the server migration project? Where do you stand with that?”

He tried to outflank me. “I still working on dat.” He showed me a half a page of worthless specs.

“That’s all you got?”

“Uh, I don’t think I like this…You giving me heat.” He was withering under the barrage of small arms fire.

I was done bullying him. Yeah, I admit, I corned the little creep and pushed him around a bit. But I wanted to let him know that goofing around and taking leisurely coffee breaks when things were blowing up was not standard operating procedure. He was using my extensive oversight of his work as an excuse to do nothing.

But he was too clever for his own good. I had layed a trap.

Nothing intentional, but I had taken a legitimate production issue and his lack of response to it and used it too my advantage.

I had enough here to pen-fuck Charlie.

I went back to my desk, fixed the code, and rolled it into production. Not like I had to worry about a QA department to test the fix or anything.

With that fire out, I went to the HR portal and found the CAR (Corrective Action Report) form. Six pages of red-tape, but the first step in documenting Charlie’s wayward response to things. I was doing things by the book, just like the HR lady had suggested.

I got set for the next ambush. Charlie’s days were numbered.

Posted in:   Tags:
Tunnel Rat posted on June 8, 2007 16:24

Man, it’s hard to blog consistently. It takes a lot to drag yourself out of bed an hour early everyday and write a few interesting, coherent paragraphs.

But I found myself on some other blogger’s blogroll (Scruffy Looking Cat Herder), and that gave me some newfound inspiration. BTW, that’s a pretty good blog from another passionate developer.

I’m tempted to blog at work, but that is not very smart. For one, my manager has a tendency to walk by my cube and glance at my monitor. Like most middle-age guys, he needs reading glasses, but I think he scan my screen from five feet away and figure out that I not typing code. Secondly, it’s hard to get in the writing groove in a fairly busy office. Finally, the company may be monitoring what I am doing with their computer, although I doubt it. They can barely monitor their own web site and keep it running.

But some things are starting to get my blog juices flowing, so I am covertly typing this text inside what looks like a functional specification document with a bunch of tables and techy mumbo-jumbo. God, I wish I had my own office again.

Now, what I really want to write about is CURRY EATING WAGE PIRATES.

You know -- HI-Bs from India.

Those folks that you can’t understand because they speak and write in broken English.

The ones who make foul smelling food that they eat at their desk.

And write really bad code for a fraction of the price of an American coder.

You know, the foks who always nod in agreement, even though they have no idea what you are saying to them.

The ones that are imported by big companies that claim that they cannot find enough qualified coders in the U.S.

I am surrounded by two of them as I write this. One is really, really obnoxious, so I don’t talk to him. His name is Babo, but I like to think of him as Bababooey.

He talks really fast about technical stuff and makes no sense whatsoever. He’s a blowhard that rolls his r’s. And of course, he makes stinky lunches.

But the worst thing is that he has a habit of sneaking up behind me and reading my screen, and making asinine comments about what I am working on. I guess in his country they are used to looking over your shoulder while you code, probably because the ratio is ten programmers to one computer over there.

“Ah, a VinForms app. You shoood yoooz Vindows Presentation Framework…yada yada yada….”

And you should go back to that shithole sub-continent you came from, Mr. Stink-Boy, I wanted to tell him.

At first I was polite. Now I just ignore him, even when he stands over my shoulder, mumbling about the work I am doing. I act like I can’t hear, or say something like “what, you wanna read my email now?”

Bababooey once tried to suck up to me by sending me PDFs of course material he had copied from an AppDev class. He said he had all sorts of digital manuals, and showed me a ring full of thumb drives that he pulled out of his pocket.

“You vont need do buy any booooks, jus ask me, I have dem.”

I reminded him that we have copyright laws in America. He sneared and mumbled something sarcastic about China.

I sent an email to the AppDev company and said some programmer was peddling their copyrighted material, and it looked like he's in a piracy ring with his H1-B buddies, trading curry recipes, software, and digitized tech manuals. They were not pleased – the courseware runs about a thousand bucks a pop.

And the recent controversy about the Senate immigration bill really has me worked up. The politicians actually want to bring in more Bababooeys to illegally duplicate courseware, write bad code, mumble their way through the day, and nod like retards. They say that there is a shortage of skilled programmers, and the only way to solve the problem is to increase the H1-B quotas.


If there really was a shortage of developers, I would be making twice what I made 10 years ago, not 60% of that amount. And I’m a free-markets kind of guy, and don’t mind competing in the global workplace. But dirty, nasty, maggot ridden truth about Indian programmers is that they are usually horrible programmers, and for the most part, insular, passive aggressive snakes.

Part of the reason has to do with the caste system. Because of aggressive affirmative action policies inacted by the Indian government, there are a huge amount of "untouchables" that have made their way into Indian software companies. They have a modicum of education, but are severely discriminated against by the Brahmims and other upper-caste members of the society because of their poor communication skills and lack of social graces.

The offshore companies send most of these "Dalits," as they are known, to America so that they won't have to deal with them at home. So, if you find yourself staring at the blank face of a mumbling, dull-eyed H1-B, rest assured that he was not even allowed to sit in the same room with his bosses back home.

I once had a client ask me to do a phone screening of some potential contractors for a project that needed some more bodies. I talked to three, and the most adequate was a man with a pleasant Hindi accent. He was fairly articulate on the phone and answered most of my questions correctly. I recommended him to the client.

The body shop sent someone across country the next day. Needless to say, this was not the same mofo that I had talked to on the phone. This guy could not speak a lick of English. Plus, he was surly, confused, and utterly worthless. It was the old bait-and-switch. My dumbass supervisor told me to get him up to speed on the project and parked his curry-eating ass next to my desk for two weeks.

It was a hopeless cause. The guy could barely read English, much less code. Plus, to add insult to injury, I had to spend so much time getting him to do the simplest things, I missed some of my own deliverables. When the burn rate got to be too much, they let me go with half a day's notice. The firm was obligated to give my Dalit friend two week's notice of termination, so he ended sitting around for a while longer, grimacing, fumbling around with some code, and frowning at everybody else on the project until he was shipped back to New Jersey.

Honestly, has there ever been a successful commercial software product produced by an Indian company? Even the rigid Germans have SAP, but that is understandable because those guys are such great engineers, they found a way to exterminate 12 million poor souls very efficiently. Bastards.

But the Indians have nothing. All they do is send indentured servants to America, where they take up residence in poorly run IT shops. And any IT manager that thinks they are saving money by hiring H1-Bs is fucking idiot.

No, really -- if you are doing that, you are a dumbass. How do you expect to get complex applications written by people who come from a country that still has the plague? Did it ever occur to you that the thick accent that makes it impossible to understand the H1-Bs you filled your shop with also makes it hard on your native programmers, who now have to deal with a language and cultural barrier?

I have a theory. The IT managers who bring these ill-dressed, mumbling buffoons into the country and pay them below-market wages have no clue about programming. To them, tech-speak may as well be Latin. They don’t understand complex programming issues even if they are explained to them by an articulate, patient, American programmer. So it doesn’t matter to them if a musky-smelling H1-B is feeding them a load of geek bullshit. It’s all the same, so why not save a few bucks?

Sorry for jingoistic rant, but the Wall Street Journal’s editorial page said today that we need more foreign computer scientists. Sure, and we also need more editorial writers working out of some Bangalore slum – I am tired of paying so much for that paper. I think a nickel a copy is about the right price, and I am sure all those journalists with degrees from Columbia wouldn’t mind stagnant wages for the rest of their careers.

But H1-Bs are a reality, so I’ll be content to be a festering ball of rage, giving Bababooey the stink eye and relaying my numerous anecdotes about working with his ilk. Trust me, it’s not only their lunch that stinks – it’s their fuckin’ code.

Stay tuned…

When all you have is a hammer, everything is a nail. For the folks at TCTSRN, all they had was a 20 ounce ball peen called T-SQL to solve their IT problems. That’s fine if all you need to do is generate file extracts or shuttle data from one source to another behind the scenes of an enterprise application that had a front-end. But after a few years, the TCSRN users started to demand more, like custom intranet applications. If you have been doing nothing more than data-diddling for a long time, you are woefully ill-equipped to deliver anything more than crap to the end-user.

I was trying to get that point across to my team – they didn’t know shit, and they were going have to get with the program. I was more than willing to show them the way, mentor them, coach them, whatever. But they where going to have learn something more than SQL.

They didn’t like that idea.

For one, SQL is a procedural language. It’s great for linear thinkers. The code at the top runs before the code at the bottom. Nice, top down paradigm.

Secondly, you could keep monkeying with a query until you got the results you wanted. Hit EXECUTE, and you get instant gratification.

So, with the nice procedural nature of SQL, and the immediate results that show up in your editor when you hit F5, it becomes a very comforting programming environment. Sort of like a application development security blanket. Always there. Stable. Controllable. Complex enough to keep you awake. But even if you are trying to solve complex data issues, all you need to know is the basic syntax, and you could hack your way to a solution. The language hasn’t changed in over a decade.

But developing applications requires more. Event-driven programming, object-oriented programming, multi-tier development, remoting, etc. – some of that is hard shit that requires some creativity, tenacity, and curiosity. My team had none of those traits.

This became painfully evident when Mr. Whiteboard asked me to work on a web project with the TAC (Thick-Accented-Cambodian).

“I don’t want you to do the coding, but help him out,” the shovel-faced bozo had asked me.

That would be rather tough, I had thought to myself, since the TAC had never coded anything but SQL. But I took it as an opportunity to demonstrate how things can and should be done in the shop. This would be the app that I could leverage as a learning exercise for the team.

On the surface, it was a simple page that queried the massive back-end system, combing through millions of records to return just few, depending on the specific criteria the user entered. With the brute force approach of building a dynamic query and passing it to a stored procedure, it would take minutes to return a result – a worthless solution. But with some sophisticated front-end work using AJAX, a solid middle-tier object that does the bulk of the processing, and a basic stored proc that returns small recordsets, the app would rock.

Not that the TAC was going to be able such an app – he was a SQL-writing idiot who knew one way of doing things – brute force. His stored procs sometimes where 5000 lines long. He thought temp tables were a gift from the heavens – and fancied himself to be a genius for knowing how to use them.

Get a clue, you data-diddlers – temp tables are no big fucking deal. If not used properly, they are just a way to get yourself in more trouble. And most of you are really lacking in the creative side, so I see a lot of brute force in those nasty stored procs you SQL hackers are so proud of. So many of you write like you get paid by the line of code. The rest of us are not impressed – after all, there is something called elegant coding. But I digress.

To top it off, the TAC has a nasty habit of nesting sub-queries. His code looked a lot like this:

From TableYada Where YADA_ID IN (Select
From Where YadaYadaID IN (Select YadaYadaID
From Table YadaYadaYadaId)))…

... And so on, and so on and so on…

You get the idea. It was like the TAK would curl himself up in a little ball of logic and fuck himself.

So I decided to lead by example. I came in on a Saturday (that was getting to be a habit), and wrote a nice prototype ASP.NET application that solved the problem. Leveraging some 3rd-party AJAX components (not some Atlas vaporware), I had a UI working in hours that queried that database and offered drill-down functionality without post-backs and excessive delays. It used one stored procedure that was twelve lines long.

I commented the C# code, excessively. I wanted the TAC to get the idea -- not everything can be solved by SQL.

It didn’t take long for me to figure out that the TAC was not impressed. I met with him the next Monday in my office.

“Did that code make sense?” I asked him.

“Uh, wud, the web page thing?”

“Yeah, notice how the middle-tier database code reduced the round-trips?”

“Uh, ummh, maybe,” he stammered. “But maybe, uhmm, it not so good. Maybe you can make it stored procedure, so not so much C sharp code.”

Really, I thought? Little shit-for-brains SQL boy thinks we need more spaghetti code…

Fuck, I was going to loose it….

“And how would we debug that?” I asked. “There are four levels of detail, each with its own query.”

“Uh, maybe you use PRINT statements,” he said. I realized that this marble-mouth cretin had never used a debugger. It was a lost cause. All he had was a hammer, and the world was one big nail to him.

Posted in:   Tags:

I've been away from the blogging routine for awhile, and have had some time to reflect on a few things. You see, I have been doing some heads-down coding for the last six months and haven't had to deal with any management or political issues, and I've come to a conclusion.

Most programmers are shitty employees.

No, not bad coders. Bad employees. Of course, I generalize.

But is there a group of people more anti-social, belligerent, unjustifiably arrogant, and plain unproductive than programmers?

And God-forbid one should dare suggest that. If so, prepare for indignant rants, suggesting that management is always the problem. After all, how dare someone expect an employee to communicate professionally, follow some standards, and for the most part, not be a fucking self-indulgent, quasi-autistic jerk all the time?

As someone from both sides of the great programmer/manager divide, am starting to realize that maybe the poor reputation of I.T. managers is not very accurate. Some suck. Some suck more. Some are very, very good.

As for programmers, most are horrible people to work with, and especially, to manage.

For example, my current contract has me working in a cube on a floor that is primarily filled with salespeople, and I’ve noticed a few things.

  • They dress nicely.
  • They smile when they pass you in the hall – even if they don’t know you.
  • They banter, flirt, and generally engage in polite social mannerisms during the workday.
  • They hold the door open for you.
  • They say ‘excuse me.’
  • They are polite to coworkers and bosses.
  • They wash their hands after using the toilet.

Most programmers do none of these things.

OK, I’m sure the trolls are ready to flame me and say “If you weren’t such an asshole, people would be nice to you!”

But even the programmers I don’t know, the ones that work on different floors, that have no reason to think that I am an asshole, share these common traits:

  • They are rude.
  • They dress poorly.
  • They are downright mean. Like “fuck you, I can code” mean.

Just an observation, and I am probably over-generalizing. But I try to counter the stereotype by being somewhat polite, holding doors open for people, and whipping the anti-social sneer off of my face when I am not staring at the screen.

So for an IT manager, there is a huge hurdle that has absolutely nothing to do with technical competence that impedes their ability the get things done and successfully manage projects -- their staff are assholes.

And I’ve noticed a cottage industry developing in the blogosphere that revolves around IT manager bashing, and I am partly guilty of that. But let’s not give the jerk-off programmers that dominate the trade a pass. They are the ones causing management to move jobs to India. I mean, if you want a surly, smelly developer with poor communication skills, you can get one from WiPro or Infosys for a lot less money.

Now for an update – I haven’t felt the urge to get up early and blog lately, and I can’t with good conscience blog at work. But I’ll try to post a little bit more often.

Posted in:   Tags:

- Vineet Nayar, CEO, HCL Technologies

Recent Posts

Slumdog Comment Generator

Not Sure How To Respond?
Use the Slumdog Comment Generator!


«  December 2017  »
View posts in large calendar

Month List

The thoughts expressed on this blog may or may not be the author's own and are protected by the 1st Amendment. Any attempt to reveal his identity by contacting a slumdog hack at Google, or a corrupt Desi sys-admin at his ISP will be dealt with promptly and severely. Civil and criminal penalties may apply if one is found to have used private information in an attempt to get the author fired at the Hindu-only I.T. ghetto he currently works at. In addition, any Desi who attempts to burn the author's house down because they are enraged over his writing will be prosecuted to the fullest extent of the law. This isn't India.

© Copyright 2017 Life of an I.T. Grunt

View My Stats