As for my background, I was doing a lot of Microsoft-brand programming for many years, moving up the chain to senior development and then floating around as a national consultant web developer. Eventually I got tired of that rat race, the heavy competition from the cheap H1B Visa and offshore workers, and decided to settle down. I got off the plane and decided to get a local job doing web development. Unfortunately, I had relocated in that timeframe from a big city to a very little farm town that's practically an hour away from anything related to technology or big business. I had made this sacrifice on behalf of my wife, who wanted to be closer to her 3 sisters and other relatives. She enticed me with the deal by saying we would get a lot of free land (which we couldn't sell, but we could build upon). So I was stuck with whatever options the town had. The idea was that I was going to make a lot of money on my big city house, then turn around and save a bunch of money on my new house because I was the general contractor, because labor was cheap in the farm town, and because, with free land, you can invest more of that money into the house. So, we built a small mansion of a house.
Eventually I found an IT job an hour away, but it paid terribly low. I was doing senior web development there when all of a sudden the company got bought by a huge global company and my job came up as an issue. I was told I could either hit the streets or I could take a Linux sysop job and still have a chance at doing some small web development every once in awhile. I wanted to not have to make my wife and kids have to get up and move away since they had made a success of this town for themselves, so I took the sacrifice and worked at this global company one hour away from home, doing something I wasn't particularly interested in doing. I taught myself Linux, then sysop work with SNMP, system failovers, change management, data center policies and procedures, and all that other stuff. I moved up in salary and was told to manage two other junior employees. Eventually I realized that I despise being a manager and asked if I could just move up to a senior rank in the Linux systems engineering job and bring in another manager. My supervisor agreed and we started working for this other manager.
Unfortunately this new manager started to become a pain. Unlike my previous manager, where he would differ with my opinion frequently but I could always explain things to get him to understand my decisions, this new manager wasn't like that. Both managers were stupid, not really geared for IT work, but somehow lucked out and got their jobs. I used them as "meat shields" because their manager (my manager's manager's manager) was a total dufus moron who bungled up many things in the company that we would have to keep undoing and fixing. They also would attend long conference calls and planning sessions for me so that I didn't have to sit in those stupid things. Many conference calls like to belabor the points of the agenda, and many draw you in when they don't really pertain to you, or do pertain to you but only for like 5 minutes of the hour-long call. Both of my managers were farm workers who just accidentally got these jobs before I did, so I was forced to have to persuade them on decisions because they would often go down the stupid path. It was a miracle they could dress themselves in the morning. Anyway, like I said, this new manager and I didn't get along.
Let me give you an example. I had one problem with SNMP on one server. It was how I implemented it and I was too busy to fix it, but I knew what the fix was. You see, with SNMP, you can take one server, run an SNMP application on it, and have it scan other servers to get performance data over the SNMP protocol. It accesses these other servers when they host an SNMP agent. This agent serves up SNMP OIDs (object IDs) which are long, convoluted address numbers that basically are the ID to a particular performance metric. Well, on Linux, the SNMP agent is served up by NetSNMP, and it has an extra feature where you can have it run a Bash script for you. It then serves this up on a custom OID that you come up with. So, I went about creating Bash scripts that checked things. The bad news is that if one of those scripts takes too long to return a result, it will cause a daisy-chain effect where the other OIDs on that server are delayed in returning a result. So, the central data collection server application then times out. This causes you to have a bunch of SNMP errors from timeouts, when the issue is relatively simple -- you've got one or more Bash scripts taking too long to run from the /etc/snmpd.conf file's 'exec' parameter. Well, my new manager misconstrued this problem as a problem with the product we were using on the central data collection server -- HP Mercury SiteScope. This was not the case, however, and I tried to explain. I said that because of time with all the other priorities I was given, I could't fix the real problem, and that calling HP Mercury will get us nowhere. Well, I thought she would drop it, but at two further meetings, she asked me to call them again. Again, I told her I didn't have time to fix it, that the problem only flared up every once in awhile, and that calling HP Mercury would get us nowhere because it wasn't there issue.
In the end, she marked that down as "insubordination" when it was just me explaining something very technical that she could not comprehend.
I had this and many other technical cases where we were in constant battle. I was also told to come early in the day, but then was told I would have to stay late. Eventually I got tired of being asked to stay late, so I came in late and stayed late. I went to HR for assistance and all they said was, "Have you spoken to your manager about this first?" Morons! So, then the next thing that happened was that I was being overworked constantly. This lasted for many years and I did amazing things for the company, saving them countless millions of dollars, such as recovering very old databases on platforms that have no technical support anymore, or connecting a new system to an old system in very little time through a unique socket communication script that had error handling. I definitely earned my senior title every day, doing amazing things.
Next, the dopey guys I worked with, who should have been fired long ago for their childish antics, refused to learn anything unless a manager gave it to them and said, "here, learn this." As well, they started to hate me because I made twice what they made and, instead of hating the company for that, they thought perhaps I was taking all the glory or something when I was not. So, they started to go to my manager and complain about every little thing I did.
But the cards were stacked against me one day when I was very tired. I was told to come in on a Sunday to do an 8 hour task. I complained that after I had reviewed the technical procedures for the task, I was not convinced that it would work, was not convinced it would not have any risks, and asked why we couldn't have a backup plan if this failed. It was to work on a secondary failover server, so if it failed, it wouldn't be a big deal unless the primary server failed. Well, I was told to buck it up and do it. I also complained that on the Saturday before the event, I had already planned to be out of town months in advance to attend a function with my son. Well, sure enough, the task failed after 8 hours. And what happened to me? Well, I was so tired that I was actually delirious, not even able to hold my head up. I called my manager and said, "It's not fixed, it didn't work like you guys had expected, and so now I'm too tired to continue and need to catch some sleep before I continue. What's your plan B?" She said, "We don't have a plan B. I need you to remain and work on it until it's fixed." I complained and said that the fix was anticipate to take about 15 hours straight. She asked me to stay. I said, "Look, unfortunately I'd like to stay, but I am delirious here and cannot function in this kind of fatigue. I need to ask that you call one of the other two guys on our team and have them come in for this emergency because I'm too tired." Mark that down as strike two for insubordination. On the way home, however, I fell asleep driving and woke up in the opposite lane of traffic!! Luckily no one was not on the road, nothing happened to me or that vehicle, and I was able to steer back safely and wake up for the rest of the trip.
So, my job practically killed me that day. As well, I was already having ailments all over my body with various things because of the fatigue of all these server alerts going off all the time. I needed a break.
That break came one day when my manager called me into HR, asked me to sign a warning statement and work on probation, and was told if I even look cross-eyed at this new manager, I would be fired without a moment's notice, and get no two-week severance. They let me go on paid-leave that day to think about it. Well, I thought about it and came back in and resigned. At least by resigning, I maintained my dignity, exited the company voluntarily instead of involuntarily, and would have no bad marks on my record.
Unfortunately, this left me with no job right before Christmas, in a rural town where there's no real decent-paying IT jobs around except an hour away, and it was a time of year when everyone is on vacation and no one is hiring. You see, if you're job hunting, the world's worst times to look are in seasons or weeks when everyone is on vacation. Those times are usually before, during, or after Thanksgiving, Christmas, Memorial Day, Labor Day, and July 4th.
---
The moment I resigned, it was a moment of tremendous relief but also tremendous fear and frustration. My wife took it far worse than me. She wondered how we'll pay for all these bills. I was pulling in $5.5K a month gross, and took home about $3200 a month. All of that went into paying bills with very little left over for anything. Her salary was as large as mine, and her job more stable than mine, but her salary alone wouldn't pay all the bills. I put my story out on the web that I was fired at christmas, and some supposedly nice people jumped in to offer me PHP programming gigs.
Both gigs, however, were near impossible. The first gig (Client A) was only for $1K with Linux and PHP and had a humongous to-do list. The code was also spaghetti code and it would take me awhile to understand the database schema, rewrite the thing, and then have time for the to-do list. The second gig (Client B), however, was to practically write a very large-scale app on Linux and PHP that would be hosted on Facebook and would allow people to say "I was there" and upload photos, videos, and comments, and others could respond in the same manner, and one could vote up or down these things. Not only were the owners of the second gig rude as I tried to ask them (a) how they were going to control objectionable content from being uploaded and (b) how they were going to build servers large enough to handle the load, but when they asked for a cost/timeline, and told them it would cost them $13K and 72 days for a prototype, they practically laughed at me, insulted me again, and said they were going to look elsewhere.
Thursday, January 3, 2008
Where this all starts
Posted by
supermike
at
8:38 PM
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment