The Worst Development Job You've Ever Had?
manavendra asks: "I'm currently working for a solution provider for telcos, and as part of product migration the entire API has to be 'internationalized'. Owing to a legacy architecture, most (if not all) application logic is still embedded in PL/SQL stored packages. My job: find hard coded strings, and replace with calls to the globalization API.
Yes there is a script written to handle most tasks, but its quite primitive (not to mention fears of automating 'too much'). Boredom is at all time high. Have tried all means of whittling away the time, and hence this question to other Slashdot users: What's the worst ever job you had to do in the name of 'software development' (or as a software developer)?"
~12-13 years ago I was working at a place developing software for the trucking industry. One day I came to work and the door to our offices was locked (I was usually the first one in). I went to the landlord saying "The door to our offices is locked." He held up a bounced cheque and said "I know."
Fortunately I had some cash saved so I lived for a while but then I got a phone call many months later from Revenue Canada (like the U.S.' IRS) saying I hadn't paid any income tax on my income for that year. "Uhh.. I have my paystubs showing that it was deducted..." Turns out the owner was deducting tax, charging taxes, etc and not remitting. Faxed in copies which saved my butt.
That isn't the worst development job I've had but it was the one that left the worst taste in my mouth.
Trolling is a art,
quote from a former boss:
"while it may be faster than dlt tapes, 're-typing' is not a valid recovery strategy."
2 1337 4 u!
Yes, the Y2K bug was real. No, nothing happened. Why? Because poor fuckers like me worked our asses off doing the most boring programming work known to mankind for 2 years straight.
Not long after having joined a development group, I was given a list of software (mostly open-source security / hacker sort of stuff), and instructed to find a way to "re-brand" the software to imply that we owned it. To make us look better to venture capitalists for a commercial INFOSEC spinoff we were trying to ramp up.
Needless to say, I said no, almost got fired, and eventually fled the sinking ship a year later. They ended up spinning off, failing miserably, and selling for less than the cost of my current house.
My biggest regret is not swiping an Aeron as I left.
I know this is cheating, but I must say: the worst development job I've ever had is unemployment. Lots of work, but no pay. Any job is better than no job, so long as you're getting paid.
Writing worms and viri for spammers. And go figure, the fucker split when I had finished and paid me in Penis Enlargement Pills.
Worked at a startup .com that thought it was going to make billions selling cult/foreign movies. My boss was a flaming 300lb male crossdresser who hired other 'developers' who barely knew front page. I was under pressure to make this amazingly creative super site while the Big Gay Al constantly changed his mind about what he wanted.. I had to be frisked before i went to my office because the rest of the employees often stole stuff (our office was above one of their video chains in nyc). And if things wernt working out, my boss would threaten to "fuck our asses.".
---------
No matter how thin you slice it, its still baloney.
You can have the best job in the world and it still sux because of who you work for.
Like when your boss has chronic halotosis (or "halo" for short.)
mine does.
I live in a Spanish speaking country, without any knowledge whatsoever about german. Three years ago I was working for a German company developing the intranet for a very large european corporation.
:)
After eight months of joy and fulfillment (the project was really good and enjoyable) I was reassigned to take over a project started three months before my arrival (it was 11 months old when I took care of it) because the Project Manager had been fired. The project had to be delivered in two or three months and was the bigest pile of sh*t I have ever seen: harcoded strings, copied and pasted all over the place, used three different database servers (Oracle, MS SQL Server, Postgres) depending on the mood of the developer, used a client/server architecture when it was not needed and created a lot of innecesary APIs (it had a complete implementation of a SOAP-like protocol, implemented for communications, instead of using SOAP or Axis). It was about one million lines long and 40% done. Those three or four months where living hell trying to decode what the heck where the developers thinking (BTW, the project did not have any single piece of comment).
At the end we delivered the system with one month of delay, but the client was happy and to ease the pain I was promoted after setting it up on production
Life isn't like a box of chocolates. It's more like a jar of jalapenos. What you do today, might burn your ass tomorrow.
The hospital had more than 15,000 pages of "standards and procedures" documentation. Almost no two were in the same structure.
I had the "good" part: create a structure to which all these documents could be adapted and then make an application for putting the documents in a database.
Two intern developers had the "bad" part: scan and OCR 15,000 pages of hospital documents. Proof-read them for OCR errors. Since no one was willing to pay for a tie-in between the OCR program and the application I developed, the interns had to cut-and-paste the documents from Word to my app. I wanted to cry for those guys.
My sigs always suck.
You're the only one I know who's had a job in your dad.
Of course, everyone's had a job in your mom.
The Blaster Master Fighting for Truth, Justice, and Evil Pie since 1979
Converting a quarter of a million lines of VB code to Java...
How many billions of lines of Java did you end up with?
The XAS code was closed and only the boss had access to it. However he wanted us to develop some VB apps that would work with it. We had no documentation and when I asked why the boss told me that we don't work with documentation anymore but with UML. I asked where the UML models were and he muffled something about not having any.
I tried guessing what things did by their variable name but the boss enjoyed variable names like varTempOne, var1, var2, var3, generic1, generic2, myVariable, etc...
One day I asked if I could see the source code to XAS. I learned quickly that it was a mistake.
Clients were constantly calling because the XAS servers were going down unexpectadly. The problem was the logs growing to more than 2 gigs in size. Every second line of the logs would have a copyright description with the name of my boss all over the place. He was so proud of his XAS. Unfortunatly though his XML wasn't valid in any sense. He pissed me off so much!
After 22 days of this BS I had rashes from the stress of working there. I told the boss I needed XAS source code to work with or documentation to work with. That night I received a phone call telling me I didn't need to come in the next day, that they were going to do without me. I was so relieved I did a huge party.
I talked to the boss's boss the week after. I explained what was going on and a month later the boss I had trouble with got fired along with his bum buddy. I was so happy! :)
Last I heard the guy's wife left him too. I couldn't be happier! :)
Well, other than the fact that it was a very high-pressure job and I sorta did kinda enjoy it at the time....
.: c9100 h,b,a (Speak a voice prompt in the file 'c9100)
I had a job in the early 90's programming IVR applications (i.e. call an 800 or 900 number and interact with a computer via touchtones). Most of these apps were the front-end interface for the psychic lines you see advertised on late-night TV. You call in and either choose to try and talk with either a specific 'psychic' or a random one. Either way, the service bureau's system calls a psychic working out of their house on the back side and connects the caller with the 'psychic'.
Now, the app language I used was called CLASS, and it allowed for a whole whopping 99 variables ($00 through $99, the first 30 of which were reserved) and looked a lot like a bastardized cross between BASIC and assembly language. Something like this:
start:
say
wait start: $46 (wait for a touchtone, if none go back to start)
if $46 = 0 presszero:
if $46 = 1 pressone:
goto start:
pressone:
You get the idea. Evil stuff.
So I'm writing apps in this crap all day. Not exactly the most maintainable code in the world, let me tell you.
And then there are lots of fun things like up-front limiting. This means that there are tons of freaking losers in the world who will gladly grind their fingers to the bone punching buttons to talk to a 'psychic' and ringing up $5000 phone bills every month, but then charging them back when they get their phone bill. ("It wasn't me! Somebody snuck in and spent 8 hours straight on my phone!") So you have to make sure and limit the amount they can use per month.
Also, I had one client whose 'psychic' pool were either "your personal angel" or "your salem witch" depending on which 900 number you called. We had to make damn sure and play a tone to the 'psychic' to tell them which one they were supposed to be for that call or hilarity would ensue, let me tell you!
Combine all this with the fact that the company I worked for was pretty much run by the clients, and you have a pretty sucky high-pressure job writing in a crappy language.
Imagine a place where you spend a month writing a detailed design document for a simple project, then when you start to code it, the boss gets agitated when you don't see him daily.
Imagine being a developer with 10 years experiance having your code read daily, then being criticized on the following:
Variable names -- BlueDog change to DogBlue, but changed back the next day
Can't use pointers in C++ code, because the manager doesn't understand them. Must use almost useless references.
Can't use INI files because "Microsoft is going to remove support for them from the OS".
Can't use byte or short because the compiler is faster with ints.
Then to add to the stew being threated with:
Contractors fired exactly on the 3rd week.
Contractors fired for voicing an opinion. Any opinion.
Contractors being fired after being told no one was going to be fired.
Being told you need this job more than we need you.
Perhaps this doesn't sound like much, but when it occurs day in, and day out, for months on end, it's a very hostile and unpleasant working environment. It's like being a sock puppet for the village idiot.
Later cow-worker decided something needed to be shipped to a custommer. Rather than grabbing my working code off of a newly installed fileserver - he goes onto my machine, finds a module in my development directory, packs it up and ships it with the rest of the application to the custommer. When somehow my code didn't work the next day (suprise suprise - I was halfway through rewritting an ISR), I had to sit through being yelled at for 2 hours by the owner of the company. I agreed to never leave any code around that wasn't fully functional (basically I started encrypting my development areas on my hard drive) so this could never happen again.
Too many other stories to relate... two days after getting my BS degree, I handed in my resignation and count it as an experience on how NOT to develop software.
I have mod points and I am not afraid to use them
Where do I begin? Oh yes...
I once was employed by an insurance product publishing company in indianapolis. The project manager made all his decisions with rock-paper-scissors. I'm not making this up. Whenever a bug needed to be fixed, he would call all the developers into a room and play RPS until there was a loser.
Once, I worked for a company run by Scientologists. They did software for the timeshare industry. I lost that job when the IRS seized the company for failure to pay payroll taxes.
While working at walgreens corporate, i was once asked to clean desks with paper towels and windex... for $68/hr.
I once worked for a trading firm in downtown chicago where my boss, while standing behind me to look at my code, would put his... package... on my shoulder. I would scoot in to get away and he would step closer until I could no longer get away. That job didn't last long.
These are just the highlights of my ilustrious IT career.
Disconnect your television. Do your own research. Draw your own conclusions. They're probably lying. Don't be a sheep.
Oh, you worked for hotmail?!!!
the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff
The crowning moment, though, came when a hardware guy (father, scoutmaster, perfect citizen) had to miss a day for jury duty. That afternoon, my coworker called in and said he would have to miss a second day because he'd been picked as a possible juror on a case but they'd not gotten around to directly questioning him yet.
Our leader promptly badmouthed my coworker in front of our entire staff for not "doing what he needed to do" to "get out of it." While it was never spelled out, it was obvious he was angry that my coworker hadn't perjured himself to get off the jury.
Two days later, my coworker returned as promised. As he'd predicted, he hadn't made it through the direct questions - he's an engineer. When he heard about what had happened in his absence, I made sure that he was one of the first to critique my resume.
"Prepare for the worst - hope for the best."
Well, there's worse : converting databases !
I'm currently on a not-so-big-project that has gotten totally out of hand. It's a 12 table informix database containing a philosophical bibliography of approx 75K records.This bugger has to be exported to something readable by a printing company to create books out of it. So far so good.
however, this is a academic project and those f#*n academics decided they needed SGML. So they export the sucker to SGML. Now you gotta know that the DB itself (which costed 100K to make by a specialised fucked up DB company X1) runs on a sparc10 with only 64MB Ram. So generating the SGML equals a 20hour trip in swapland since the thing is stuffed up to the neck with crossreferences.
But that's not all. Once in SGML, it needs to be reconverted to another XML format, because after 2 years they decided to drop the book and go for a CD only. The company X2 that makes the CD only accepts a very specific XML format (you can kill me if I know why !) they hired a 3rd company X3 to do this conversion. Turns out this 3rd company is just a lonesome cowboy with a perl tumor. He writes totally unreadable perl scripts that the IOCCC peeps would be proud of. Now hell breaks lose :
company X2 goes bankrupt. No CD company anymore. So they hire me (my dad is an academic at the same univ) to make the CD from the XML since they managed to get hold of the sourcecode for the XML-to-CD-runtime. So just recreateing the XML should be enough to update the CD (big mistake !)
Company X3 (the cowboy) stops delevopment, gets addicted to some dope and moves to africa for a 3 year safari. So no SGML-XML conversion anymore
Company X1 who generates the SGML is so fed up with the trouble they refuse to work any further on the project.
Anyway. I figured out how to do DBexport from the informix. I rewrote the SGML - XML shit to do straight conversion to the internal CD-runtime format, which converts the whole shebang in less than 2 minutes. But now I'm stuck with a runtime that's buggy and I face the task of rewriting that sucker too...
sigh
When will I end this grieving ? When will my future begin ?
I doubt this qualifies as the worst software development job ever in anyone's mind, but it's a story nonetheless...
I was working at a dot.com-focused consultancy during that period in which the "New Economy" was going down in flames but no one was really talking about it yet. After completing my development work on one project, I was informed that I, along with a few other developers that had survived the last round of layoffs, was being given an "alternate assignment."
Since our sales department couldn't sell work for shit, we were assigned to work to help them find leads. What that amounted to was the following: we were each given a section of a list of big companies in the area. First, we were to ascertain what kind of web presence they currently had, and propose some ways our company could help them improve it. Wait, that's not the funny part.
Second, we were to obtain direct contact information for their CEOs, CTOs, etc. by whatever means necessary. Now, occasionally you could dig something like this up via the company's literature, possibly with the assistance of a phone book, but usually it wasn't publically available. In this case, we were encouraged to call up the company and tell them whatever we had to for the receptionist or whoever to give us that information.
Picture, if you will, a small handful of mostly socially inept geeks. Picture them cold-calling companies and try to string together various tall tales, misdirections, and outright lies to scam poor employees of said companies out of the direct line phone number, e-mail address, and home address of several of the companies' top executives.
Hilarity ensues!
People with OCD (like me) often find pleasure in repetitive jobs. Sometimes I'll even repetitively fiddle with something at hand while I'm thinking about something else.
And just because I'm autistic doesn't make me retarded.
tasks(723) drafts(105) languages(484) examples(29106)
The project was outsourced to India, where more time can be wasted for less money. This will ultimately be good for the economy as a whole.
My current job. Before I begin, I've fortunately JUST been granted permission to stop development of the current major version, and rewrite the app from scratch, because the devleopment timeline to implement the new features in the existing version, far exceeded rewriting the app sanely to ensure extensibility wasn't a problem. And before anyone says "why not refactor?", I did consider it, though after you read what's below, you wouldn't want to refactor this mess either.
Our flagship product is written completely in VBA. The front-end was created using Microsoft Access. The back-end for data storage is Microsoft SQL Server. Oh-hoh, but you've heard NOTHING yet.
The VBA developers of the past was the VP and a few interesting individuals. None of them knowing how to program, nevermind in VB. It's largely a mass of 150,000 lines of spaghetti code. Functions are far from being imdepotent -- you'll have forms that touch all portions of the application. Lots of globals that are used frequently, often with conflict. One guy apparently didn't know how to use variables, so he'd embed text boxes on the main form, and set their visibility property to false, and use them to store values. Not only for the current form, but for the ENTIRE APP. It's great fun debugging those!
The database schema is just as bad. There's no normalization. We're talking strings that describe a product being primary keys. There are no constraints on columns, and adding them would break a lot of existing data in most deployments. Everything seems to be tacked on, often without thought. So instead of having detail tables, or linking tables, folks would just add columns. There are numerous tables in the database that bump up against the limit of how much non-BLOB data can be stored in a row, since nothing is normalized.
There's lots of other weirdness too. Someone apparently had fun learning from books -- why use the built in REPLACE() when you can write your own that only replaces one character (as opposed to substrings), in only one instance, can't define a start and end position, and doesn't support binary replace. And then use it throughout the entire app, improperly at that.
150,000 lines. How many are comments? 200. Written documentation? None. Spec? They didn't use specs.
Did I forget to mention that the database schemas also different from customer to customer, and the front-ends themselves, including weird one-offs for individual customers. I spent a month consolidating schemas and front-ends so we could have ONE distribution.
There are some reports with 1000 lines of code-behind. Yes, reports. Why? Since the database is a mess, and the only way folks apparently matched data up was through joins after joins after joins (ever see 4 nested outer joins to match up two colums? I've seen it FIVE times in the same sproc!).
Did I fail to mention that there's no record locking? Yup, deadlocking issues are abound.
Did I fail to mention there are no CASCADES? That NOTHING in the app is transactional, including pushing accounting data into other packages -- some methods in which involve DIRECTLY modifying the other package's tables!
Did I fail to mention that between all the hidden controls, and virtually everything being databound (running this app over anything but a 100Mb LAN is near impossible), actuall causes some interesting issues in which multiple threads fight for the same data, in which pointers apparently get crushed and misused, resulting in Access itself crashing.
Triggers. 800 of them. Why have a sproc wrap everything neatly within a transaction when you can have triggers do all sorts of wacky things!
Naming conventions. Something like boolWhatever isn't a bool, it's a double. Things that should logically only support 2 states, are really 5. Maybe our app supports quantum indecision, I don't know.
Did I fail to mention that is uses ADO 2.1, and EXPLOITS several bugs in it. Moving to ADO 2.5 (or newer) comp
It's embarassing that I once had the opposite job -- purging unneeded paperwork from the files of long deceased criminals for the justice department and recycling it -- and absolutely loved it. I could sit back, pump the headphones, and just zonk out for $8 an hour (respectable summer pay at the time).
For a while I treated it as a game...raced this guy I worked with to see how many file drawers we could do in a day. The two of us got up to 27 or 28 per day before the manager (now my mother in law) asked us to slow down. See, we were budgeted to be there all summer, but they couldn't pay us if there was no work, and at our pace we were each going faster than any other three people working there combined.
So instead, we slowed down and chatted with each other. Showed each other the uglier male prisoners' photos, and the prettier ladies. We read off the obscene things some of these folks did that put them in the big house.
Basically, we dealt with the drudgery by inventing tiny bits of fun. My friend's father did the same when he worked for IBM. At the time, he was also the resident poet at a coffee house. So any time he'd maintain a program, he'd inject a quick haiku or image poem in the source code. Supposedly, the poems are still there...
Hey freaks: now you're ju
I had to assemble my own cubicle. I died a little bit that day.
"If you think you have things under control, you're not going fast enough." --Mario Andretti
I'm going to have to make a blog entry one of these days with all the bad experiences. But one of the high(low?)lights has to be the time I spent when my company was a subcontractor on a couple of jobs done by Andersen Consulting.
The important insight I had about Andersen Consulting years later, was that Andersen's main product isn't software, it's billable hours. They don't actually want to produce workable software, because then the billable hours will stop flowing in. So instead they do everything in their power to fuck up the project royally. At the time, I was baffled by their behaviour because I was driven to produce high quality software that did what the customer needed, and I couldn't seem to get that done under Andersen conditions. Understanding that simple fact about their main product made all the following experiences make perfect sense.
- Andersen always operates in "crash mode". Their people work incredible long hours, and if you work along side them they expect you to work the same hours. On one 9 day long project, I got an average of 3-4 hours sleep a night. I once saw one "Anderoid" yell at another because she was leaving at 11pm, to which she responded that her boss told her that she had to work 36 straight hours the next day so she was going home to get some sleep. One time one of the Anderoids and I were trying to solve a specific problem, and I was having a hard time concentrating and it seemed we were going around in circles, so I went home to sleep at around 1am. The next morning, I came in rested (by Andersen standards) and the guy I'd been working with was still going around in the same hopeless circles. I restored the hack job he'd done on the source code from my personal backups, and tried out an idea I'd had in the shower that morning, and it worked perfectly first time. Subsequent times working together, I told my company that I wouldn't go unless I had control over my working hours - I'd work long hours if I had to, but they wouldn't be the norm.
- Andersen hires idiots. They used to boast about how they didn't care about qualifications, as long as they had the "Andersen Attitude". One of the guys on the projects I was on had a philosophy degree. He knew about as much about programming as I did about Cartesian Dualism.
- Andersen is more concerned about looking professional that actually getting work done. One job we were in a large echo-ey room - about 100 of us at big long tables with no partitions or anything to deaden the sound. I brought in a Walkman because I was having trouble concentrating, and was told that I couldn't wear it because Andersen didn't think it looked professional. Evidently 15 people standing around having animated conversations right beside my chair was "professional", but listening to some music with headphones wasn't.
- Andersen are slave drivers of the worst sort. As well as the long hours, they also don't seem to pay that well. And they can transfer you around the country (or overseas) with almost no notice and you have very little say in the matter. One guy on the projects we were on together said that in your entire career at Andersen you can only refuse one assignment - if they wanted to transfer you to Antartica tomorrow, and you've used up your refusal, you have two options: go buy a down parka or quit. He told me that he hadn't been back to his home base in over two years. It was little wonder that the only married Anderoids I met were married to other Anderoids. And even that was no guarantee - one guy I met had been transferred to another city from his wife, and since they'd both used up their refusals already, they hadn't lived in the same city in over a year.
- Andersen enforces their bizarre behaviour requirements on their people by holding this carrot and stick: If they do what they're told, work long hours for little pay and have no sleep or personal life, they will eventually make Jr. Partner. The working conditions don't get any better, but the pay does.
On the first project we did together, my company actually poached one of the Anderoids to come to work for us. On the second project, he came along - you should have seen the faces of the Anderoids when he and I got up at 10pm and said we're going home.
The next Cmdr Taco duplicate will be ready soon, but subscribers can beat the rush and see it early!
- We need to use the most expensive JSP interpreter we can find.
- We need to use the most expensive JSP IDE we can find.
- We need a separate computer for each person (including those who will work primarily from their computer located off-site), plus a test server and a backup for the test server and an extra computer just in case.
- We need to make the database as related as possible - if you can make a lookup table for a Yes/No field, then by all means you should do it!
- Make sure each and every table has an auto-increment integer index, expecially those tables that will contain over 100 million records.
- Development time must take at least 18 months to provide a proof-of-concept, but cannot produce anything that may be actually used.
Needless to say, I was kicked off the job and threatened with being charged under the Patriot's Act for complaining about the job on my BLOG. Now, I'm out of that environment and wrapping up a 4-month conversion of a VB/SQL2000 application to PHP/PgSQL. Practically the same job, but I really love this one.The previous comment is purposely vague and generalized, but all of the facts are completely true.
My first programming job, right out of school was with a small mortgage company. I knew things were going to be bad when the monthly processing run to distribute interest payments to the various loan 'investors' crashed on my 3rd day, while I was still figuring out where my predecessor had hidden stuff before he was fired.
2 years later, I quit after my entry in the employee pool on which regulator would close them didn't win. My final check wasn't really a check, since no bank would open an account for them. I got a paper sack literally filled with small bills.
I thought I was done with them, but 2 months later the trustee handling their bankruptcy called and I went to work for him as a consultant, recovering their data. We got almost 90% of the principal identified and recovered, which surprised everyone and netted me a nice bonus. But the real bonus didn't occur until over a year after that, when armed guys with badges and everything showed up at my door. I didn't even know postal inspectors carried weapons, but they do. They wanted me to help them prosecute and convict the owner of the mortgage company.
There is nothing in the world as satisfying as the sight of a former bad boss being led off to serve time in federal Pound Me In The Ass prison.
I landed in the middle of a project that had been in development for TWO YEARS, and was poster child of evil software engineering malpractices: hardcoded numbers and strings, no separation of content and logic, no coding standards, no comments, no docs, no NOTHING. Mixes of PHP, javascript and HTML in the same line. Copied and pasted javascript code that nobody knew what it did, but when pasted in worked. And, of course, with fire-breathing bosses looking over your shoulder. And with crappy dell computers on 14" monitors that gave 70Hz at 800x600. I had left a job coding java in a decent environment with people from wich I could learn lots, but switched for the money. Not long after that I realized there's more than money to a job. I left that job with the begginings of stress-induced breakdown I would suffer a month later, and a vow to never again work anywhere before asking about the documentation policy.
In my very first job, I did a rookie mistake of asking for a favour from my boss's boss, instead of asking from my boss.
Result I was assigned a job to stare at a monitor in a vacant room , and note down any messages that scroll on it. (No Seriously).
Withing 2 days I got so fustrated, I started writing my own netowrk code, to fetch the data from message log and send them directly to a printer
I learnt TCP/IP , socket programming, shell scripts , unix internals, IPC (shmem, pipes etc), thread programming) in 6 months.
By the time my boss was no longer angry with me and wanted me to work on some development, I was way ahead in terms of productivity as compared to my other colleagues.
for the last time people, I am "frodo from middle eaRTH", not "middle eaST".
Well, I feel your pain on most of your post...but, in the area of database...if there isn't a proper natural key for the primary key, I'm a big fan of sequences and triggers to generate unique integer primary keys. And if the database is to be on a RDBMS, then hell yes, it had better use a related model...gotta be normalized. If you have a good model, the rest will fall in place.
However, I will agree with you about the expensive gear, but, with Gov. rules, they pretty much rule out trying to do things with open source...something I try all the time. Heck, have linux on many desktops around here...but, they are trying to get them out....and forcing that NMCI piece of crap down everyone's throat....
But, I gotta speak up for the database parts you complained about....you can't shortcut on that...ESPECIALLY if you are dealing with 100+ million records....
Light travels faster than sound. This is why some people appear bright until you hear them speak.........
At least you knew what you were working on. One of my first Jobs in the AF was to take a known input and convert it to a desired output in C. Nothing at all strenuous, right?
Do that for 5 months straight and still have absolutely NO IDEA what the hell you're working on. Some of them had been at it for years. The bosses would come in, give us our next assignment, and leave with the old one. That's all we saw of our bosses.
I found out later what the code was for (combined to become the lamest of all the great lamnesses) but you try finding a programming job later and answering the question "So what kind of programs did you write" and answer with all honesty "I have know Idea"
..which just shows that the human brain is ill-adapted for thinking and was probably designed for cooling the blood-T P
The beginning of the program went something like this
INTEGER MAXCORE
MAXCORE = (memory on machine)
DOUBLE PRECISION A
DIMENSION A(MAXCORE)
Yes, the array A took up every bit of memory. What about other variables? There weren't any. There was A. Store your data in A. Do you remember what A(326) is?
I seem to remember some 2-d arrays in the code as well. Well, not really 2-d arrays, they were A. Just make sure to keep track of the rows and column indices, ok?
"Seven Deadly Sins? I thought it was a to-do list!"
One was at a small videogaming company. They brought me in as a "hired gun" because the publisher had sunk millions into this game, and the developer had nothing to show for it.
So I managed to get them to the state of having a playable demo of the game in only six months. At about that time, however, one of the more "shifty" employees hacked into the financial records of the company to check people's salaries. Well, of course, being a "hired-gun", I was making at least twice or three times as much as anybody there. And of course, this scumbag proceeded to announce my salary to anybody who would listen.
Now, the other employees didn't really begrudge MY salary because they could see visible evidence that I was worth the dough. However, it only served to underscore how little THEY were being paid, so they threatened to mutiny if they didn't see a little more equity.
Can you smell what's coming? Management's BRILLIANT decision was to attempt to cut MY pay. I said no. They countered with, "This is the way it has to be." I said, "I'm outta here."
Luckily, I had a consulting gig that I WAS going to turn down, until this turn of events. However, management at the game company then tried to offer me a 25K BUMP if I would come back and save them. Well, by that time, I knew that they weren't trustworthy, and wouldn't live up to their side of things in the long run, so I said, "No way."
My other sour taste was when, as the 3D engine guy for a games company, the publisher was purchased by another company, and the new owner decided to do a financial audit of all of the current projects. And, of course, my salary was a severe sticking point with the new publisher. They didn't seem to understand the importance of the 3D engine guy, so they INSISTED that the developer lay me off, or there would be no more funding. This was despite protests from the game company that employed me.
For some reason, a lot of management seems to think that engineers are interchangeable cogs, and this was no exception. It didn't matter that I had developed the ENTIRE DAMN ENGINE, as well as the associated artist tools. Heck, I think that by the time they laid me off, the game company's management had half convinced themselves that they COULD finish the game with the remaining engineer, despite the fact that he'd never done a 3D engine before.
So after I was laid off, development of the game slowly ground to a halt. The moral to all of this is that if management insists on nickle-and-diming when it comes to experienced engineers, this behavior will INEVITABLY bite them in the ass.
It isn't a memory leak. It's an object life-span issue.
I don't mind Photoshop designs, so long as the person doing 'em knows what HTML can do.
:)
Couple of years ago I (a lowly coder scrub) told a director (over a couple of hundred people) that the design that some ad firm made up wouldn't work. We're talking everything with rounded corners, overlapping, with dropshadows everywhere and some weird ass font for all the text. And it was all "critical" to have. On any browser. On any platform. Over a 28K modem.
Now, I'm a hell of an HTML hack. I've committed more cross-browser rendering engine abuse than is legal. But what she wanted was flat out impossible in HTML (in Flash, sure...).
After being shot down multiple times in a big meeting, I'd had it. I just said "Look, it DOESN'T WORK THAT WAY. If your designers can figure out how, I'd be very impressed". So she gives me an "I'll show you" look and tells the designers to produce an HTML prototype.
A week later the revised design (sans impossible stuff) was on my desk. Bitch
"Faith: Belief without evidence in what is told by one who speaks without knowledge, of things without parallel." - A.B.
My boss can be a total bitch sometimes. She drools, screams inceasantly and demands every waking moment of my time. I'm on call 24/7 and I do mean 24/7. There hasn't been a day this week where I wasn't called by her at 4am and spent at least an hour working before getting to go back to sleep and wake up again at 7am to her voice. Oh, did I mention that there is no monetary reimbursement for this position? I get paid in shit, literally.. My boss is my 9 month old daughter..
On the bright side, she is definetley the most intelligent boss I've ever had and when I do spend time with her, its been the best use of my time among any other boss I worked for. Plus I'm guarenteed a vacation in another 17 years and 3 months!
The road between democracy and tyranny is paved with secrecy in the name of security.
Hey, don't knock it. In my first 'tech job', I signed on to design a Web site for a power-transmission products company in Chicago. Turns out I ended up doing pretty much any computer-related project except Web design, since they were rather short on tech staff (that is, I WAS the tech staff). For example, designing a Web page also meant needing somewhere to put it, so there was my crash course in installing + configuring Linux/Apache/mailservers, fiddling with port forwarding, etc. Anyway, to make a long story slightly less rambly, boss decides that the unfinished Web page should have a product search for every type of product they distribute. (Incidentally, this is why I know Perl now :-) Things like, enter your application, desired RPMs, service factor, and available voltage, and the script grovells the database to select the ideal motor, gear reducer, ratio, etc. and present it in a neat little list with dimension data, drawings and so on.
:-)
So I says, "Boss-man," I says, "where's the product database? Show me the data structure and I'll have that stuff Web-searchable in a few days."
Boss-man says, "We don't have a product database."
"...All right, where do I get the product data? Is it on CD? Do I have to get it from the manufacturers?"
Boss-man walks off and returns in a few moments with a huge stack of manufacturers' paper catalogs, and the unwelcome news that we're "just" a distributor; we don't get product data in any usable form. Being short-staffed, I also end up being the guy charged with the task of typing in product data from the catalogs to a database. For obvious cost-saving reasons, this data is packed sardine-like into the catalogs in as small a font as they can reasonably get away with, so entering a page of the stuff would take f-o-r-e-v-e-r.
Now remember, I hired in to design a Web site for ten bucks an hour, expected to take a couple weeks at the very most...at this point I'm still the cheapest labor in the building, so this is not such a gross misapplication of a resource (me) as it seems. So I did this for, oh, a couple hours or so, 'til quitting time. Enter one line of data from the catalog tables, consult another set of tables at the back of the catalog to determine the remaining data (thermal, etc.), check for typos, enter the next line...
Boring, boring, boring. Not to mention horribly inefficient. Not being the type who likes to do more work than necessary (ahem, I mean, being the type who likes to maximize efficiency), I showed up the next day with my flatbed scanner and some OCR program. A few test scans of catalog pages to determine the format the OCR software spits out, a throwaway Perl script to convert this to comma-delimited and look up stuff from the thermal/etc. tables, and my job suddenly became a lot more fun, while also increasing my data rate roughly 2000%. It went something like this.
1) Prop feet on desk.
2) Rip page from catalog, stuff into scanner, press scan.
3) Nap and/or surf the net while waiting for scanner (remember, I already set up a Linux box for the web server, so I can surf the 'net from an official-looking server-admin-doing-important-server-admin-stuff telnet window. Lynx = awsome.)
4) Optional step. Sip coffee, eat donut...
5) Repeat steps 2-3 whenever I hear the scanner buzz its way back to home position.
6) Run perl script once there's a whole s***load of OCR data to crunch.
I never imagined a data-entry task could suck so little, but there I was. (Of course, now I'm a hardware/firmware hacker, which is way more cool
Caveat Emptor is not a business model.