Tunnel Rat posted on December 27, 2006 18:31

I have to take a break while I get some things in my life in order. I am buying a new house and recently got back into the contract programming arena.

To give you an update, I landed a nice gig at an established dot-com survivor that went public in 1999, so it has a mature software shop that values specs, design, documentation, and QA. This is more than I can say for the Web 2.0 space, which is full of flipmeat and the code-and-load culture of open-source, anything-but-Microsoft, make-it-up-as-you-go MySpace wannabees.

Seriously, does anyone actually believe sites based on Ruby, running on a tag-based scripting language like PHP, and hitting a MySQL database can scale and be maintained and enhanced for years? Currently, I am working on some code that is on average five years old. But if it is encapsulated, documented, and done by someone other than a former Starbucks barista or Everquest junkie who downloaded ROR and reinvented himself as a web-developer, I can maintain it. Try that with the vaporware getting VC funding now.

When I look at these job postings for programming gigs at start-ups using PHP (which I used to think stood for Programmers Hacking Porn, because every adult site is written in PHP), Ajax, Ruby, MySQL, yada-yada-yada, I think of one thing: Hacker Sweatshop.

The minute I would try to create a class diagram, or properly model a database, or write a functional spec before banging out some code (all of which are SOP at mature Microsoft shops), I'd be called into an IKEA-decorated office of the so-called CIO. Now, this CIO would probably be nothing more than a twenty-something, Blackberry banging, iPod wearing, excessively-pierced dork who is working for promised stock options. He probably has a case of chronic ADD, mixed in with OCD, so he can never, ever, decide what to obsess over. In addition, he has a perpetually twitchy thumb from years of game-console operation that has progressed to PDA obsession. And most-likely, he has a Bluetooth earpiece that allows him to carry on conversations with his MySpace pals while he holds staff meetings.

And once he discovers that I haven't coded his MySpace/YouTube/Flikr rip-off in the 7 days he thought it would take, he would fire me and say some crap like "we need some heavy-hitters in here" or "we are a results based company" or "we don't have time for all this design stuff, you get paid to code, not design" or "we expect you to work more than 12-hours a day, because we need to launch the site to get mezzanine funding."

So that said, I've been too busy to devote adequate attention to this blog. I find that it takes me an hour or so to properly formulate a post, edit it, and update the blog. I don't feel comfortable posting a few random sentences with links to other sites, so when I do post, I want it to be worthwhile reading for my readers.

So stay tuned, I have a lot of topics to cover in the near future, such as:

  • Cheap I.T. Bastards
  • Why None Of Your Medical Data Is Confidential
  • Dumb Bitches Of The Computer Business
  • Most FTE Programmers Suck
  • Curry-Eating Wage Pirates
  • LAMP, Ruby, and the Code-and-Load Culture
  • Taking Things Up With HR

... And More!

Posted in:   Tags: ,
Tunnel Rat posted on November 29, 2006 17:08

Charlie was bloviating again. Three cubes down, he was going on and on about Active Directory, impersonation, authentication…yadayadayada. Dweebs like Charlie love an audience, and the victim that day was Ferris, a systems guy. He was the Supervisor of Network Systems, or something like that. He dealt with hardware, installing applications and mapping printers.

So why was he dialoging with Charlie? This happened every week; Charlie was writing some application for Ferris, but I wasn’t sure what. I drop an email to Ferris.

“Can we get together sometime and discuss the apps that Charlie is working on for you?”

Ferris met me the next day in a conference room with a big whiteboard.

“I’m sorry, I didn’t even know Charlie reported to you. I have a standing meeting with him on Thursdays. You should probably be in on that,” he said.

Nice. I’d been there a month and there were people who still didn’t know who I was or what I did, or who reported to me. Good job, Mr. Whiteboard. Outstanding way to spread the word and integrate me into your organization, you blank-faced creep.

“No, problem. I’m just trying to get a handle on what Charlie is working on,” I told Ferris.

We spent the next hour diagramming all the various web sites and interfaces that Mr. Bill wanted, and the numerous single-user apps that Ferris had Charlie working on. Small stuff, but a considerable amount of work in its entirety. Apps that integrated with Active Directory and the HR system, apps that talked to eTicket, stuffed that moved data around. After the whiteboard was filled with chicken scratchings, I asked Ferris what he needed done right now.

“There’s this Phonebook Admin tool that Charlie almost has done,” he said. “The phone dude needs it to manage all the different extensions.”

“Ok, I can’t promise anything, but I’ll get all this work in the queue, prioritize it and see about getting some of it wrapped up.”

I went back to my desk and cracked open SourceSafe. Now, in a normal, healthy organization (is there one?), I would have just walked over to Charlie and asked him for a status on these projects. But since he wasn’t even answering my emails, I figured I'd get better results by snooping around the archives then by trying to get meaningful data out of that surly, evasive, ground-dwelling turd.

I started at the root and drilled down to what looked the stuff Ferris was talking about. Nested three projects deep was a folder called “PhoneBookManager.” I dragged the source code down to my PC.

Man, that’s a lot of code I thought as I watched the “Copying files…” dialog. I fired up VisualStudio and started digging.

A half-hour later, I finally got the app to run. What I had stumbled upon was Charlie’s sandbox – a one-page, one-user app that was going to be his pilot project for every new technology he was curious about and wanted to explore. Never mind that the users were clamoring for basic functionality and Mr. Bill was pissed that the Online Inquiry app was late. Nope, Charlie had more important business to attend to.

It was like an elevator to the moon.

This measly one-page web site did nothing more that manage the data in a single table that stored user names and their phone extensions. But in this app, Charlie had managed to incorporate Atlas (Microsoft’s feeble attempt at Ajax), web services (required by Atlas), and his own hand-rolled framework of data classes and security components.

Now, without any supervision and no accountability, most developers would go hog wild and do what Charlie had done, which was basically turn the company’s IS department into his personal playground. Not that it made any fiscal or strategic sense, but Charlie didn’t care. He was having too much fun.

I had come across Ajax development not that long before. It was a hot new technology, but very demanding. It involves a lot of asyncronized communication between the web client and the web server. In its purest form, it requires tons hairy JavaScript. After writing a few Hello World apps with raw Ajax, I found some third-party components (ComponentArt) that encapsulated all the nasty client-side stuff. With Ajax, you can create slick web pages with UI features that used to only be possible with Flash.

It drove the creative types crazy, because now a lot of their wacky designs could be done in ASP.NET, with all the benefits that a non-Flash application has. Things like readability, reusability, object-oriented development; concepts completely alien to the pierced-eyebrow, perpetual three-day beard, dingy ball cap crowd known in the trade as “graphic designers.”

But Charlie was doing it all wrong.

He had jumped aboard the Atlas bandwagon. Atlas was Microsoft’s lame attempt at competing with the Google-driven onslaught of Ajax-enabled websites that were all the rage. Things like Google Maps were full of high-fidelity web interfaces with minimal postbacks and all sorts of eye-candy. As usual, Microsoft was late to the game and trying to catch up. They had hastily thrown together a mishmash of components that supposedly abstracted the vagaries of Atlas and posted them on a web site.

It was garbage.

Atlas was barely documented, wildly buggy, and a typical Microsoft “lets throw something out there to keep people guessing until we come up with something solid” delay tactic. It was pretty much vaporware. Joel Spolsky called it “Fire and Motion,” just an attempt to keep moving forward. Atlas was for hobbyists and hackers with too much time on their hands. Charlie fell into the latter category.

Now, I'm sure there are some readers that are just dying to flame me and say that third-party tools are a waste of money, and Atlas is a robust Ajax framework, and having to create a web-service to get an Ajax callback to work is no big deal (unless you need to change the URL of the web reference), and I'm just a big pussy because I don't want to get my hands dirty with bleeding edge technology...yadayadayada...


One of the skills a developer learns over the years is to recognize immature technologies and stay away from them. Atlas was such a technology. Ajax.NET is no better. After all, if Ajax.NET is in beta, what the hell was Atlas? Alpha? For those out there hacking away at Ajax.NET, enjoy. I have better things to do than try to get things like "rounded corners" and "accordians" to work. Now if you happen to work at one of those "not invented here" shops, or your manager is a Cheap I.T. Bastard (more on that later), and your work doesn't involve deadlines or profit motives, be my guest. I myself prefer to drop a server-side control on a page, write a couple lines of JavaScript, and spend the rest of my time setting control properties and working in the code-behind.

Ok, enough ranting about Ajax. I added the PhoneBookManager to my list of crap to cleanup. My whiteboard was filling up quickly.

Posted in:   Tags: , ,
Tunnel Rat posted on November 21, 2006 17:04

While the whole Charlie mess was going on, I was trying to get my team on the same sheet of music. I had laid the groundwork for the version control system, and needed to standardize the development process. To that end, I was holding weekly staff meetings where I would try to introduce some new technologies and development principles.

These meetings were less than successful. I tried to keep them interesting. I even started each one with a Dilbert cartoon or some funny video I had found on YouTube. But for the most part, my team could care less about best practices, standards, reusable code, documentation, or configuration management. And it showed.

Charlie would doodle. Aggressively. Now, I too used to have a serious doodling habit, but I have since learned to curb it in meetings. When a programmer really wants to show you they don’t give a fuck about what you have to say, they doodle furiously in your meetings. Heads down, elbows flying, hard-core doodling. Some even erase their doodles and make a lot of noise wiping away the eraser rubber. They never really told me how to deal with such insolence at Toastmasters.

Mr. Coffee would nod off. For as much coffee as that ass kisser would drink, he was shockingly narcoleptic.

The TAC would ask some questions. Hard to understand questions, but he at least was faking interest.

Burning Man would look scared and bewildered. He would ask questions about the most mundane of things. One time he asked “What is IIS?”

I thought he was kidding. “Uh, it’s, like, the Microsoft web server,” I answered calmly. I tried to be patient.

But I started to wonder if this guy was ever going to do more than hack out SQL scripts for the rest of his days. Seriously, if a developer just took a .NET class, and works in a Microsoft shop, and still does not know that IIS stands for Internet Information Services, he’s beyond clueless.

I realized that I was going to have to work with Burning Man to get him up to speed. We hadn’t really gotten off on the right foot. He had come by my cube once and I had told him some mocking story about this environmentally sensitive bimbo that I used to work with at SIAN, and how she would cut up the plastic six-pack rings before throwing them out.

“I do that,” he had said.

I had tried to laugh it off, but he had looked at me, sternly, like I was some kind of Neanderthal. Not that I’m not, but I don’t need to be reminded. What a militant tree-hugging fucker, I had thought.

But I was eager to mentor the poor, frightened hippie. There was a project that had got dumped on me by the network guys where I could use his help. We needed to get our web sites off of an old server and set them up on a new server. It was grunt work, mainly loading files and making configuration settings, but for a newbie, it was a daunting task. I wanted Charlie and Burning Man to work together, load the servers, configure them, and document the settings. Then I wanted them to set up a backup server, going off of nothing but the documentation. It was a chance for Burning Man to get up to speed with the web world, and a way for me to marginalize Charlie for a while.

After one of my staff meetings, I went by Burning Man’s cube. He worked in the dark side of floor, where the staff had barricaded themselves behind six foot high cubicle walls so that no one could easily see what they were doing. It created a sense of forbidding personal space that made it awkward for one to just drop in; you had to kind of work your way around their cubicle partition to get to their desk, and you could really freak someone out if you just barged in. There was an unwritten rule in that section of the floor – if you were about to walk into someone’s five foot square domain, you tapped on the partition wall.

“Do you have a second?” I asked, tapping on his cube. His purple mane peered out from behind the partition.

“Oh sure, no problem.”

I sat down in the extra chair he had in his cube. It was dark in there, even though he sat next to a window. The blinds were always closed. Something smelled funny, I couldn’t pin it down. Lotion? Stale soy?

He had stacks of CDs on his desk. He had yet to join the iPod revolution. I looked through the stack, hoping to find some common ground in our musical taste. I saw a Bowie disk. Bingo.

“Hey, you like Bowie?” I asked.

“Some. I don’t really listen to him that much.”

“Cool. I saw him in concert. Over twenty years ago.”

“Uh-huh.” He was wearing scuffed up Doc Martins that must have been ten years old. In my book, shoes that you wear to the mosh pit are not business casual. They just make one look like a dork. A troll. And his purple hair that he had pinned in a bun behind his head was absurd. I had run into him a couple of times in the men’s room, and he was always in front of the mirror, doing something with his hair.

I tried not to think about his appearance. “Yeah, he was excellent.”


This wasn’t going well. I decided to get down to business. “I’ve got a project that I wanted to talk to you about.”

I told him about the server migration.

“Uh-huh,” he responded.

“Yeah, so if you are interested, I think it would be a good opportunity to learn some new skills. But don’t feel like you have to do it. It’s your call.”

“No, sure, I’ll do it.”

“Great. So you have some vacation coming up?” I had just signed off on his request.

“Uh-huh.” He crossed his legs delicately, and perched his elbow on his knee. He was resting his chin on his palm, like a woman. A pale-skinned, purple-haired woman.

“So, where are you headed?” I asked.

He hesitated. “Uh, have you heard of, uh…Burning Man?” He was almost whispering.

I wanted to appear hip, in the know. In truth, I knew something about Burning Man; at least enough to know that it was little more than a bunch of burn-outs sitting in a dry-eyed Nevada lake bed for a week, tripping and acting “communal.” Fucking hippies.

“Oh, yeah, I know all about it. It’s like some performance art festival thing in Nevada.”

“Well, it’s a lot of things,” he said smugly. What a damn counter-culture snob, I thought.

He went on to tell me what a great experience it was. He had been going for years. “It’s like, uh, you’ll be walking around, and some guy will come out of his tent, and give you a ham sandwich. For free. Money is strictly taboo.”


“Yeah, it’s all barter. They call it gifting. And the art, the music, it’s awesome. I mean, it’s like a life changing event.” He was getting so intensely serious, like Dennis Hopper in Apocalypse Now when he was talking about god-like Colonel Kurtz. “Like, you survive a week out there, and you’re, uh, just so different than before.”

“Uh-huh. I can imagine.” I faked being impressed. He the spent the next 10 minutes describing a huge cube someone made of light bulbs and the bulbs would go on and off in random patterns, like some kind of 3-D analog screen saver.

Life changing event? Walking around half-naked, or totally naked, for seven days, exchanging mushrooms for ham sandwiches? This was a life-changing event for him?

I mean, we did have some common ground. When I was his age, I too was walking around the desert. Except it was the fucking Kuwaiti desert, and that desert was in the middle of a war zone, and I had a hundred pound pack on my back, and if I wasn’t careful, I could have stepped on a cluster bomb fragment and blown my goddamn toe off . That, you self-absorbed, hyper-sensitive hippie, is a fucking life-changing event, I wanted to say to him. Pussy.

I got up. “Ok, so we’ll get started on that server project when you get back. Sound good?”


“Ok, cool. Enjoy your vacation.”


Posted in:   Tags: ,

Marines are taught not walk atop a ridge where they may be silhouetted against the sky and easily targeted by the enemy. When a Marine was raising too much hell and pissing off his superiors, he would be told to “get off the skyline.” Keep his head down. Lay low for awhile.

I had to get off the skyline.

I couldn’t overplay my hand on with Charlie. I would have to work within the system and either marginalize him, or pen-fuck him (another term from the Corps that means to write some one up) until he was gone.

In the meantime, I got busy. I had to write so much code, so fast, that Mr. Whiteboard would have no choice but to let me have my way.

I started with the open ticket report. Was there even an “open-ticket report?” The only way I could see what my team was working on was to query the crappy e-Ticket application that Mr. Coffee has written. “Application” was glorifying it – it was a bunch of screens cobbled together, with no flow, no standards, a hack of biblical proportions. You would click on a link in the InfoNet, and a screen would pop up with a bunch of fields. You couldn’t tell if you were supposed to start entering your ticket, or search for an open ticket, or get up and walk down to Starbucks. It was that bad.

I hate programs that suck. I especially hate programmers that write programs that stuck. I was starting to hate Mr. Coffee, because the more I used his crappy, illogical, convoluted e-Ticket “application”, the more I hated it. I can understand if a developer is new to development and not quite sure how to design a user interface. I can understand if a developer is in over his head. But I can tell if a developer just doesn’t give a fuck. E-Ticket had “fuck-it” written all over it.

I called Mr. Coffee into my cube.

“I’m trying to run some queries to find all the open tickets.”

“Yeah, sure, no problem.” Mr. Coffee was always so damn agreeable. “Just select that drop down, fill in that field, and click search.”

I followed his instructions. I got some bogus results, tickets from the network department.

“Oh, yeah, sure, you just need to enter ‘AppDev’,” he explained. I followed his instructions and got all the open-tickets. For everybody. Even though I had selected Charlie from the “Assigned To” drop-down.

“Umm, What’s up with that?”

“Oh, yeah, sure, I know. There’s a bug. I gotta look into that.”

I looked at him, nodding. Hard to get pissed at such a pleasant fellow.

“Isn’t there some sort of report that goes out to the supervisors with the open tickets?” I had seen such a report in one of the meetings.

“Yeah, sure, you should be getting it. All the supervisors get it.”

That didn’t surprise me. I had been there a month and there were still people who did not know what I did at TCTSRN. It’s not like Mr. Whiteboard sent out a memo. Pussy.

“Well, who runs those reports?”

“Yeah, sure, I’ll call her. Sure, no prob, can I see your phone?” He had a habit of starting every sentence with an affirmation.

He called the girl in charge of the reporting and handed me the phone. “You’re not on the distribution list. It’s for supervisors only,” she said. She was nice. Competent. Articulate. And white. Could I get her on my team, I wondered? I felt an urge to get some diversity on my staff. A white female would go far in tipping that equation away from 75% Asian males.

“I am a supervisor.”

“I thought so. Just have Mr. Coffee put in a request to put you on the distribution list.”

I hung up. “She said something about putting me on a distribution list.”

“Oh, yeah, sure, no problem.”

Man, he was agreeable. I was starting to like having a yes-man. Not starting to like Mr. Coffee, just the idea of having someone constantly agreeing with you. “So let’s see what open tickets you’re working on.”

“Sure, no problem. Just check that box, change that drop-down, and push that button,” he said, pointing to my monitor. At least he knew how to work the site he had written. That’s the true sign of a bad developer – their programs make sense only to them.

The page reloaded and pulled up about four open tickets assigned to him. I noticed one that was about three months old, opened by Mr. Bill. The CIO.

“What’s the story with this one?”

“Oh, yeah, sure. It’s some project planner page that I did for Mr. Bill. Yeah, it only works on my system. Not sure why…yeah, not really sure.”

“Only on your system?”

“Yeah, only my system. Yeah, don’t know what’s going on with that page.”

“Can I take a look at it? Do you have the link?”

“Yes, no prob, sure.” He rattled off the URL. I keyed it in and a black page loaded, slowly. That was odd. It was like there was an image that was being loaded, or some reference that was out of whack.

I viewed the source. I found the problem in the third line.

“Your stylesheet path is pointed to your machine name. Every time the page loads it tries to connect to your PC and load the stylesheet. Since the server doesn’t have access to you system, the page hangs.”

“Oh, yeah, sure, no problem. I can fix that. Wow, yes, I’ll get right on it.” He was nodding and smiling. Bobblehead.

I nodded with him. We sat there, nodding together. Agreeing.

I wanted to see how agreeable he was.

“What would you say if I asked you to shove this Logitech G7 Laser Mouse up your ass?” I asked as I held up my mouse.

“Yeah, sure, uh, no problem…”

I made that last part up.

But how does one actually get a hard-coded reference to a stylesheet in a page in the first place? God, did he even view the source? And what was Mr. Bill thinking, waiting three months to get a page to work on his very special InfoNet. This is what he was talking about that day he called me up to his office. The shear incompetence, the slough, the lackadaisical approach to all things related to “Application Development”. He probably thought Mr. Whiteboard’s developers were idiots, and I agreed. I started to hate Mr. Coffee again.

“Ok, let’s get that page fixed and close out that ticket. And please get me on that distribution list.”

“No problem, sure. I’ll get right on it.” He backed out of my cube, grinning, his head still bobbing.

I realized I was going to have to start coming in on the weekends.

Posted in:   Tags: ,

Many of the folks at TCTSRN had a good scam going. The company had worked to implement a plan that let people work eighty hours in nine days and have every other Friday off. In theory, this meant that those in the plan would work something like eight nine-hour days and one eight-hour day, or some convoluted equivalent that added up to eighty hours in nine days.

In reality, you never knew when anybody was going to be around.

Now, keeping your ass in the office for nine-hours is not as easy as it sounds. Especially if you have to drive from South Pasadena, stop at the gym for an hour workout, and leave in time to catch your daughter’s Chinese Girls Youth Basketball League game, like Mr. Coffee would. BTW, I always wanted to start a Fat Guys Basketball League, with eight-foot baskets, small balls, and a jump-shots only rule, but I thought it might be a little bit exclusionary.

To actually work nine hours a day, one would need to get in at 9:00 AM, take an hour lunch, and leave at 6:00 PM, almost every day. But if you stroll in at say, 9:30 (Mr. Coffee), or 10:00 (the TAC), you have to stay until 7:00 PM. And if you take a two-hour lunch, like most everybody did, you would have to stay until 8:00 PM. The beauty of this plan was that nobody of any authority was around after 5:30 PM, so a guy could start shooting the shit in his buddies cube at around 5:45 PM while most of the staff eased out, and slip out the door shortly after 6 PM, and nobody would notice. After all, all his other buddies were drifting out around the same time.

I know, because I used to pull the same stunt when I was a permanent employee in my twenties. I rarely put in more than 35 hours a week. But that was back in the day when I would sleep off a hangover in my car at lunchtime. At least I didn’t spend company time beating off in a men’s room toilet stall, like my friend Evil proudly claimed to have frequently done when we worked together in the nineties.

With this schedule, the place was a ghost town every other Friday. I didn’t mind working the normal schedule, because I could get in later and leave earlier, plus get a lot done on those Fridays that no one was around. I myself made it a point to be actually be at the office forty hours a week, at least until my probationary period was over. It was not so much that I craved working so much, but I was still paranoid after getting fired from The Job I Had For One Week for supposedly not working eight-hours a day. And I wanted to set an example/keep an eye on the slugs that worked for me/make sure I was around at around 5:00 PM, (which is the only time Mr. Bill would walk around, acting like he wasn’t really just checking to see who was still in the office).

It was on one of those Fridays in my first month that I started to get paranoid.

I had finally started making some progress getting the Version Control system in place, and Charlie and I were working off the same archives for the Online Inquiry application. At least I was working on the same archives – Charlie wasn’t doing squat except bloviating about how much he knew about Atlas, Triple-DES encryption, etc. I had pretty resolved myself to doing all the bug fixes and getting that project out the door. Charlie could take a flying fuck as far as I was concerned. It just meant that I would have to work a little bit more OT.

When I opened up Source Safe that day, I found some personal files in the archives. Nothing too sensitive, just some Excel templates I was going to use to get a handle on all the different applications. But I had never checked them into Source Safe.

How the fuck did these files get from my hard drive into the archives, I asked myself? I checked the version dates – they were three weeks old. I hadn’t touched those files since my first week. I sure as hell didn’t check them into a folder called “Documentations.”

Charlie had put them there. I was back in the tunnel.

He had hacked my hard drive. I was sure of it. Now I had something to nail him on. I’d show Mr. Whiteboard the evidence and I could get rid of this nasty thorn in my side. No more busting my balls – this little shit was done.

I called my boss’ extension and got his voicemail. It was around 11:00 AM. Where the heck was this guy, I thought? I never saw Mr. Whiteboard before 10:00 AM. No wonder his staff was always UA (the Marine term for AWOL -- I hate the fucking Army and will only use USMC terminology here, unless I am referring to ‘Nam).

I was getting impatient. I called one of the network guys, the narcoleptic who would doze off in front of his monitor.

“I think I have a security issue. It looks like someone hacked into my system,” I told him.

He passed the buck and told me to call his boss. I didn’t really know that guy, but he seemed cool enough. I always made it a point to make nice with the guys that had their own I.T. fiefdoms. I relied on them to get my apps running. The DBAs, the Systems guys, Ops – I was a scheming, manipulative alliance maker when it came to those folks, like the the Naked Guy From Survivor. Most were good to go, except the ones like Fishboy at TSINAN (more on him later). And at least this network guy wasn’t Asian. I was starting to get the impression those folks stuck together at T.C.T.S.R.N.

We met in a conference room. I gave him the details and told him that I thought Charlie had hacked my system. He asked some configuration questions about how Source Safe was setup. He wanted to now if I had left my PC logged in while I wasn’t around, whether I had opened up any file shares on my hard drive, basic stuff. I shook my head.

“I’ll check the logs and let you know by the end of the day,” he said, getting up.

We walked out of the conference room and I saw my boss duck into his corner office. It was almost lunchtime.

I leaned into his doorway. “Do you have sec?”

“Uh, yeah, ah, sure. I guess.” He was always hesitant. I thought that if I would ask him an obvious question, like “Do you have a dick or a pussy?” he would ponder the inquiry. “Uhm, well, I guess, I suppose, I, um, have a dick.”

I sat in front of him. “I think Charlie hacked my computer. I found some of my personal files on his system, in the archives.”

“Oh my.” He looked like he was going to wet himself. “Ah, are you sure?”

“Yeah. It’s a problem we should take care of.”

“I need you to explain to me how this Version Control stuff works. How could your stuff get in his archives?” He was looking for some technical solution to a personnel problem.

“He would have to be at my PC, or get my files from my PC, and check them into SourceSafe,” I explained.

“Geeze. So what do you think we should do?”

I saw my opening. “Ask him to resign and give him two-weeks to wrap his stuff up.”

“Man, I don’t know about that. Let me talk to him.”

Talk to him? About what? Gee, uh, Charlie, I don’t think you should be getting into your supervisor’s system and playing with his personal files…

I left his office, confused. Mr. Whiteboard didn’t seem too eager to take this issue up. I got back to my desk and sent Charlie an email:

First thing Monday, I need you to explain to me how my files got into your archives. For one, I would never need to check in these files, and two, “Documentations” is not a word.
This shit would be all over by COB Monday, I thought to myself. Finally. I had fragged that bastard Charlie, deep in the bowels of the tunnel.

Posted in:   Tags: ,
Tunnel Rat posted on November 14, 2006 18:07

Mr. Whiteboard came back from Hawaii. It was my third week, and the Online Inquiry app was still a mess.

“So what do you think? Can we go live this week?” He smiled weekly.

Far from it, bozo, I thought. But I had to break it to him gently.

“There are a lot of open issues. The code is badly designed and not easily maintainable.” I tried to spin without getting too technical. “But I did find a way to get these fixes in and not do a total rewrite.”

“Really. That’s good to hear.”

Cool, I thought, now I have a dialog with this guy. He has confidence in my technical skills, and I’m bailing him out of this jam he got himself in by mismanaging this project. I can bring up the nasty topic of Charlie.

“Did, uh, Charlie expect to take over the position you hired me for?”

He stared at me, blank-faced. “I told him I didn’t think he was ready.”

“’Cause, he’s kinda, uh, adversarial. Like, not very cooperative.” I didn’t want to lay it on too thick and take the risk of looking insecure.

“Maybe he’s just young. A little immature.” He quickly changed the subject. If anything, he was deft procrastinator. “How about the other guys?”

“Oh, they’re fine, real good folks,” I lied. I thought they were lame. “Can I take a look at their resumes? I want to get a handle on their strengths.”

“Uhmm, well, their kinda dated, I mean these guys have been here a few years.” He was dodging. I knew for a fact Charlie had only been there a few months. What was he hiding, I thought?

I moved on. “It’s just taking awhile for them to get some stuff done.”

“Like what?”

“I’ve got the TAC and Burning Man getting me a report on all the production jobs so that we can get the code archived in SourceSafe. I just think it’s taking awhile. I think it just may be the culture.” Your people move like slugs, I meant to say. Like the folks at the DMV. Slooooowwwww. They code like old people fuck. I resisted the urge.

I realized he might take offence at my use of the word culture – as if I was talking about their Oriental culture. I, know I’m not supposed to use that term, Oriental, but fuck it. Asian is getting old.

"To Asians steeped in Confucian concepts, time is an endless river flowing from an infinitely regenerative source. It is a commodity to be valued, but because it is of such unlimited abundance, one can hardly use too much of it. Time to Westerners is always precious; to the Oriental it is something that can be spent with generosity"

-- The Tunnels of Cu Chi

I was dealing with people who were completely lacking a sense of urgency, all because of how they perceived time. No wonder there were no deadlines.

But I wasn’t talking about that culture, I was talking about the corporate culture, the organizational mindset, the company DNA. The hands-off, move at your own pace culture. And I realized that I was talking to Mr. Hand-Off himself, the high-priest of benign neglect.

“You know, I am somewhat protective of my staff. If you have any problems with them let me know.” It was a threat. His boys were made, untouchable. His blank face glared at me.

I was fumbling. “Sure, I understand.”

“Good. Let’s agree to meet weekly. Are Thursday’s good for you?”

“Sure. That sounds great.” At least I would get some face time, I thought. Blank, oblivious, vacuous face time, but face time none the less.

Posted in:   Tags: ,
Tunnel Rat posted on November 14, 2006 18:05

Monday morning came and went. As usual, Mr. Whiteboard was nowhere to be found. Wasn’t this a serious issues for him? One of his staff, this golden boy that he had hired to drag his company into the web age, was snooping around his new supervisor’s hard drive. How about a sense of urgency?

Finally, at 3 PM, he called me into his office. Charlie was there, sitting rat-faced in front of his desk.

Mr. Whiteboard gestured for me to close the door and take a set next to Charlie.

“I think Charlie has an explanation for this, uh…, SafeSource thing.” It’s called SourceSafe, but never mind, you non-technical bozo, I wanted to say.

Charlie started showing me some screenshots. He has taken my documents out of one folder in the archives (which resided on his system), and moved them into a new folder that he named “Documentations.” I didn’t remember checking in those files, but the datestamps were three weeks old.

I reasoned that I could have checked them in, maybe to check if SourceSafe was setup correctly. And a reckoned that Charlie probably was doing some rearranging and moved my archives around into a folder that he created. Reasonable enough.

So instead of pleading guilty to the Class-A felony of hacking my hard-drive, he copped to a Class-C misdemeanor of moving my files around without informing me. Not really a firing offense, but one deserving of a reprimand.

What’s the big deal, you anal dweeb, you may be asking yourself.

Well for one, if you are working on a large project with hundreds of files, and you are mapped to specific working folders in the archives, and if someone moves your folders around, you have to spend some time remapping those folders to your working environment. This might have to happen when a few people are standing in your cube wanting to know if how soon you can fix a hellacious production bug. Trust me, you do not want to be squaring away your mappings in such a situation. Been there, done that – it sucks.

Secondly, moving someone’s files around in the archives without telling them is equivalent to bitch-slapping another developer. It’s like saying “Fuck-you, bitch. I can do whatever I want to the code base and not tell you. You’re my bitch!” It’s a complete and utter lack of professional courtesy, which was not Charlie’s strong suit.

I weighed my options. I could counsel Charlie in a nice, measured tone, demonstrating my soft skills to my boss and proving that I could take an awkward situation and use it as an object lesson. But I sensed Mr. Whiteboards attention span seeping out the room. He had no patience for this sort of arbitration.

I punted. “OK, I guess it was a misunderstanding. Next time let me know if you are going to move some files around.”

That should have been the end of it. Mr. Whiteboard was smiling. Not the spastic grin he got when Mr. Bill was around, but a smile of relief that I hadn’t escalated things.

Then Charlie pulled the pin on another grenade.

“O, ah wanded to show you dad I was correct aboud dad email ding.”

Want the fuck was he talking about? My mind did a table scan.



That stuff about send email via SMTP from…?


…a local mail server?

Record located….

Oh, that “email ding.” A few days before, I was having trouble with some code that sent email from a web page. It took me a bit of Googling to find that Microsoft had reworked the Mail namespace and that it took some tweaking to get it to work in some rare cases. No big deal, but one of this glitches that developers in the trenches face every day.

Most programmers get the code to work and move on. I try to document these lessons learned and post them somewhere so that other developers on my team don’t have to waste their time retracing my footsteps. One of the first things I did at T.C.T.S.R.N. was to setup an internal forum site for such purposes, and I had been posting to it.

But I had started to see a pattern. Every time I posted something, Charlie would respond with his own posting, usually a worthless comment like “You could also do it this way…” and maybe have some code that was sort of like mine, but slightly different. Sometime his code had bugs. Sometimes he would just link to another site. But the point was that none of my posts would go unchallenged.

I had gotten tired of this pissing contest. After he posted some bug-ridden code in response to my SMTP mail post, I had sent him an email and told him to knock it off. I suggested he visit a site that held coding contests, that way he could demonstrate his programming genius to the world. I also demanded that he delete his buggy code from the forum before any other developers get confused. He had done neither.

Charlie let the spoon fly.

“My post was basically correct because de nedwork peeble said dad we should not be using our local mail servers to send email.”

Mr. Whiteboard glared at me with a “What the hell is he talking about?” look.

I went ballistic. Here I was, taking the high road and letting this whole sordid version control episode get swept under the rug, when the least that should have happened to Charlie was a written warning, and this feral creature…this underground-dwelling dweeb…this toxic-breathed maggot, was using my graciousness as an opportunity to score geek points in front of our boss. Motherfucker…Cocksucking Piece of Shit…That Little Fucking Shitbird!

I felt my face getting red. I was losing it.

“That code is wrong and you knew it!” I was pissed. I was on full-auto and firing for effect. “I told you to get that bogus code off of the forum! And now you’re trying to turn it into a network issue. This is absurd!”

It was a good thing that the door was closed, because my voice was above the “touchy-feely/let’s respect everyone’s opinion /strive towards a win-win result” level. Fuck win-win. I wanted his ass, the little turd. The nerve of him.

Mr. Whiteboard was reeling. “Uh, uh, what’s this all about?”

Shit. Now I would have to explain the technical details about this crap to my boss, and indulge Charlie in an esoteric debate about the difference between a programming issue and a networking policy. No way, I thought.

“Look, we don’t need to get into it. I setup a forum to exchange technical details and Charlie’s been using it to demonstrate his programming expertise. This is trivial.” I had lost my bearing and was trying to recover. My ears were still ringing from the concussion of Charlie’s grenade. The office seemed small and hot.

My boss was clearly in over his head. A more seasoned guy with a modicum of gonads would told us to knock it off, sternly reminded Charlie of his place in the food chain, and told us to get the hell out of his office. But not Mr. Whiteboard. Pussy.

“Now, um, you guys need to work together. I, uh, don’t want to see anymore of this stuff.” He was doing his best Rodney King impersonation. I expected him to whine “Can’t we just get along?” God, he was a fucking pussy.

Posted in:   Tags: ,

Mr. Coffee came by one afternoon and invited me to go to Deidrich’s at the children’s hospital. It was a ritual, once, if not twice a day. Sometimes he and his pals would even walk the three blocks to Starbucks. Not wanting to appear anti-social, I joined him and a few other guys.

We made non-geek small talk in hospital’s cafeteria while sipping iced mochas. He mentioned his three daughters, and his long drive from South Pasadena, which didn’t seem to bother him. I figured the guy was on the road three hours a day. But he had been at the company for years, so it probably didn’t bother him. Nice guy, I thought. Articulate, congenial. Very friendly. But clearly a Yes-Man, definitely Mr. Whiteboard’s Yes-Man. Their daughters played basketball together in some Chinese girls youth league. For that fact, he was pretty much untouchable.

I never had my own Yes-Man, and didn’t now if I could put up with such an ingratiating type. Always so agreeable, these guys, never a harsh word. They flourished in companies large and small, and their were plenty in IT.

But they usually couldn’t code.

The rigors of software development require an ability for technical give and take that Yes-Men were ill suited for. So non-confrontational were they that the mere idea of having to defend their code or criticize someone else’s hack was alien to them. It was all about back-slapping, mocha-sipping, and collegiality. Those values weren’t much help when you were tracking down some nasty bug at 11 PM the night before a site was to go live. They were never around.

“Are you bowling tonight?” he asked.

It was another of the many, almost daily, “events” that the company’s glee club was constantly sponsoring. Pot-Lucks, ice-cream socials, fund-raisers. I had signed up for Bowling Night in the hopes of getting to know some of the guys.

“Oh, yeah. Sure.” I faked enthusiasm.

A few hours later, I was fighting traffic, stumbling through a nasty neighborhood in Anaheim filled with Arab markets and pawn shops. I found the 50’s-era bowling alley just as play was starting.

I saw Mr. Coffee, the TAC, and Charlie. My team. Yeah, I’m all for this…maybe.

I was broke and bumbed a twenty off of Mr. Coffee to get a beer. I drank quickly as I waited my turn to bowl. The company had taken half the lanes over, with some of the teams wearing team shirts. I took a look around…I was the only white guy. Period. Oh, there were some hefty white ladies, but no white guys. I felt old, and out of place. I went to get another beer after throwing a couple of balls in the gutter.

Charlie was quite the bowler, at least he had his own shoes and ball, and looked like he’d spent some time in the lanes. I tried to make nice, high-fiving him when he got strikes, asking about where he usually bowled (some place on Brookhurst), talking utter gibberish. I felt like the idiot manager from The Office (not the NBC version, but the BBC one with - Ricky Gervais ). I didn’t like him and he didn’t like me.

Twenty frames and three beers later, I was checking my watch. God, this sucks, I thought. These guys are just dweebs, I can barely understand them, and we had nothing in common. Nada. Nill. Zero.

Some Asian guy from Operations was getting shitfaced on shots a few lanes down and making a bunch of noise, but nobody else was drinking, except the fat white ladies from HR. I find it hard to dislike someone you can have a few drinks with, and I was having fun with those girls. But since my “team” didn’t drink at all, there was to be no bonding with them tonight.

Now, I had heard that many Asians had a some kind of enzyme deficiency that made it difficult for them to metabolize alcohol, but this was fucking ridiculous. Have a beer, for Christ’s sake, you Pho-eating geeks!

God, they were boring. The TAC muttered all night, Mr. Coffee was uh, nice, and Charlie was his usual asshole self. Even my patronizing compliments about his bowling didn’t have any affect on his surly demeanor. Burning Man probably knew better than to show up, and I could see why. His purple haired skinny hippy white ass would be really out of place. But he probably didn’t even drink, because I don’t think you can derive alcohol from pure soy, which is all he consumed. Pussy.

That’s the problem with these company sponsored events, sometimes they just highlight the differences you have with coworkers, and you start realize you want nothing to do with these people after working hours. It was like bowling with the people at the DMV.

Posted in:   Tags: ,
Tunnel Rat posted on November 8, 2006 17:09

Mr. Whiteboard and I met the next afternoon.

“I’ve been thinking about the stuff with Charlie. I, um, stayed late last night after the meeting and did some thinking. Look, I probably should have given you the benefit of the doubt. I was just trying to be fair.”

“I appreciate that,” I told him. Cool; now we were getting somewhere.

“I just want to let, uh, you, uh, know, if we need to do something about Charlie, I’ll back you up. But we have to follow the procedures. I’m not even sure what the, uh, procedures are, I mean I’ve never had to do something like this, but if that’s what it takes, I’m for it.” He was giving me the green light to shit-can Charlie.

“Yeah, sure, I understand.”

“But we have to do this right,” he explained. “We just can’t get rid of the guy, I mean, it’s not something I’ve ever done.”

I bet, I thought. “Sure, gotcha.”

“Ok, we just have to do this thing together, ok?”

“Yeah, no problem. I appreciate this – I know it’s not easy. I mean, I would have hated to be in your spot yesterday when all that went on.” I actually would have enjoyed it, but I faked sincerity.

I looked around his office. He had pictures of his daughters in their basketball uniforms on the wall. I could like this guy, I thought – maybe. I just have to get him step up to the plate, back me, get this joke of an I.T. shop cleaned up, and we’d be square. I thought I could manage up, help him get some balls. Maybe.

As soon as I could, I checked the Org Chart. Under the Human Resources branch there was a “DOD” - Director of Organization Development. I fired off an email:

My supervisor and I have an issue with one of my
subordinates. He’s been adversarial, insubordinate, and absent from work. We’ve
talked about it and agreed that we need to take further measures. Can we talk
about this sometime?

She called me back in 10 minutes. “I’ve got some time after lunch. Do you want to come down?” she asked.

“Sure, see you then.” Nice. At most places, the HR people take a few days to get back to you.

I went down to the second floor and found the DOD. She was finishing her salad out of a Tupperware bowl.

“Hi, am I early?” I asked, leaning into her office.

“Not at all. Have a seat. Close the door.”

I felt like I was in a session with my shrink.

“So, let me guess. This is about Charlie,” she said as she put the lid on her salad bowl.

Bingo! This would be easy, I thought. The little turd was already on HR’s radar.

“Yeah, how did you know?”

“Well, we had some issues with him before. Let’s just say he didn’t really get off on the right foot.”


“Yeah, there was an incident at the new employee orientation. One of the I.T. supervisors gave a presentation on computer policies, and Charlie took it upon himself to challenge the guy. Not good.”

I was starting to like her. “I would think not.”

“So, what’s on your mind?” She was all business. I detected a slight East Coast accent, New York maybe. She had balls.

“Well, this Charlie guy…”

I told her all about the issues I had – the surly attitude, the jacking with my files, the disappearing acts during working hours.

She pulled out a matrix. I recognized it from one of my business school classes. It had five columns, ranging from “Passive” towards “Aggressive”. She started drawing on it.

“Look, on a scale of passive to aggressive, you are probably here.” She circled the column somewhere in the middle of the matrix. “Charlie, on the other hand, is way over here,” she continued, circling the “Aggressive” column.

“I see,” I said, fascinated.

“When a guy on this end of the spectrum,” she said, pointing to the “Aggressive” column, “ comes into contact with a supervisor like you on the left side of the matrix, he will attempt to assert himself.”

“Yeah, that’s definitely happening.”

“Ok, so the question is, what are we going to do about this?”

“Well, I’ve talked to my manager about him, and he said he is ready to follow whatever process is in place to resolve this issue. But he’s kinda of hesitant,” I explained. “I mean, he didn’t even let me see my team’s resumes.”

She stood up. “That’s no problem, I can get Charlie’s resume right now.”

This is cool, I thought. The DOD is so in my corner.

She handed me Charlie’s resume. I took a few minutes to scan it.

“This is pretty bogus,” I told her. “It says here that he has twelve years of programming experience, but he graduated in ’96. That means he was coding in his sophomore year. And this garbage about .NET, ActiveDirectory, CSS, I mean, it’s obviously padded.”

The DOD nodded.

“And it says here that he went to Cal State Fullerton in ‘99, but no grad date. He’s a drop-out.”

I looked at the letterhead. It was from an I.T. recruiting firm I had come across over the years.

“MacArthur Associates! I bet they padded this resume. That is one of the flakiest outfits in Orange County.”

I knew how places like that worked. They were the ones that gave I.T. recruiting a bad name. Body shops. Resume mills. They had been around for years, and spawned numerous clones. They all had offices in fancy high-rises near the airport. They had a formula:

• Do a Job Search on Monster or Dice. Find company XYZ Inc. that is looking such and such skill set. Then do a candidate search for skills that match that job. Call the candidate (lets say his name is Joe Hacker) and tell him you are trying to fill a spot for a company (don’t mention the company) that needs his exact skill set. Get Joe Hacker to let you submit your resume to the company you are “representing”.

• Then call XYZ Inc. and tell them you have a perfect match, several matches even, for the spot that they are trying to fill. Get them to agree to have you send these perfect matches to the desperate hiring manager and have him sign an agreement that if XYZ Inc. hires one of your “candidates”, they will pay you about 20-40% of their first year’s pay as a “finders fee”. You have now become the Joe Hacker’s exclusive agent, and nobody else can represent him at XYZ. In fact, if you piss off XYZ, XYZ is prohibited from hiring Joe Hacker for at least 6 months.

• Lassen, MacArthur, and a few others do ALL their business this way. They post excited, too good to be true job requirements on Dice and Monster with lots of exclamation points. Here’s one from Lassen:

“Orange County based Search Engine Development company is looking for a few good
C# Programmers! They are developing search engines that center around consumer
products and markets. Right now they need at least two C# / ASP.NET Programmers
who have 1+ years of experience, lots of potential, and the ability to learn
quickly from a highly touted team. They are using .NET 2.0, SQL 2005, and other
next generation Microsoft technologies. Apply immediately if you are ready to
see how high your ceiling can be!”

• The reality is that Lassen may not even know this Search Engine Development company. But if you send your resume to Lassen, and it has a tiny mention of C#, they can then call the company and give them the hard sell. They will tell Mr. Bozo IT Manager that they must hire their “candidate” by the end of the day because he is so hot, he is mulling over 10 offers and will make a decision soon. “We gotta move quick, Mr. Bozo! This C# guru won’t be around in the morning!”

• The poor guy on the other end will be forced to bring you in for an interview. And let’s say that you are this VB.NET guy with a little C# experience; the firm may even embellish your skill set to Mr. Bozo (who doesn’t know C# from C++) to make it sound like you have done lots of C# work. When you go out and meet with Mr. Bozo, he shakes your hand, and sends you into a room where you get worked over by a couple of geeks that ask you a bunch of C# questions that you can’t answer. No job, and this company will NEVER call you again, because you looked like a phony who tried to bullshit his way into a job he wasn’t qualified for. You now have been blackballed at this Search Engine Development company, thanks to Lassen or MacArthur.

That is how Mr. Whiteboard had found Charlie. The only thing was, Mr. Whiteboard was too naïve to have someone do a real technical screening, and Charlie had slipped in, smelling like a rose. Mr. Whiteboard’s Golden Boy. He would fix everything; after all, he had the credentials. Years of development experience. Fancy acronyms on his resume. He had to be good.

Mr. Whiteboard had gotten conned.

The DOD got me back on track. “Ok, never mind that resume. The key here is to take measured, firm steps to correct this behavior.”

She outlined a three-step plan of “graduated discipline.” Verbal counseling, followed by written warning, and finally, documented steps of correction agreed to by both the supervisor and the subordinate. It would take months to get rid of this flake, but I was ready to work within the system.

“Thanks,” I said, getting up to leave.

“And if you have any problems, or just need to talk, let me know,” the DOD said. “Anything, give me call. Please.”

“Absolutely.” I really did like her. Competent, to the point. Assertive. New Yawker, probably. We’d get along just fine, I thought as I walked back to my cube on the third floor.

Posted in:   Tags: ,

In my first week as S.A.D. (Supervisor, Applications Development) at TCTSRN, I started looking through some code. Lots of it. It wasn’t hard to find. They didn’t even use any version control, just some rudimentary archiving features of Sharepoint, which sucks at version control.

I started worming my way through the various portals they had set up. All the projects had cryptic names, and they were setup willy-nilly in folders called “Code” and “Specs” and “Docs”. Script files, batch jobs, stored procedures, even Unix Korn scripts (shit - are they running Unix?…That would suck.). I grabbed a handful of stored procedures that Sharepoint said were owned by people on my team and dumped them to the printer.

10 minutes later, they were still getting printed. I killed the print job and took a look at the files. They were massive. Thousands of lines of code in each proc. On and on they went…cursers…temp tables…a few hundred lines of commented-out code…more cursers…some case statements…more lines of commented-out code. Aliases. Eight table inner joins. Crappy naming conventions. Breadcrumbs left by other developers (“Bob – put your code here”).

I was wading through the alimentary canal of TCTSRN. This is where all the shit came from. All the extracts, downloads, uploads, everything. All of it living in hundreds of 5,000 line files. Procedural. Hacked. Undocumented. I felt like Martin Sheen in Apocalypse Now, going through the dossier of Colonel Kurtz. Bewildered. Floating up the river on a secret mission to Cambodia.

Speaking of Cambodia, I called TAC into my cube. I pulled out some stored procs with his name in the comments.

“I am trying to sort out this code. Can I get a report on all the production jobs that you guys have running?” I asked.

“Well, id iz so many. Dad wud dake long dime.”

I parsed his response. Hardly fluent English. “OK, I don’t need all the stored procs documented. If you just get me the batch files that call the procs, I’ll track them down.”

He nodded and left.

They must have some idea of what code is actually running, I reasoned. What if there is a disaster and they have to restore their environment? How do they even keep track of who did what? The answer to the former is “they are fucked” and the latter is “they don’t”.

But I was S.A.D. – it was my job to get a handle on the code, improve the process, understand the systems, and be the go-to guy about all things app-dev related at TCTSRN. That’s why I took the $15k/yr pay cut – for the challenge and responsibility.

Or maybe because it was the first offer on the table after getting fired from TJIHFOW(The Job I Had For One Week).

Posted in:   Tags: ,

- Vineet Nayar, CEO, HCL Technologies

Recent Posts

Slumdog Comment Generator

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


«  November 2019  »
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 2019 Life of an I.T. Grunt

View My Stats