A REALLY geeky rant

The company I work for designs radio systems and modifies two-way radios for special purposes. We have gotten to the point that we need some really sophisticated hardware to do signalling within the radio systems and between radios. Since all of us here have our own jobs to do, we contracted with a consulting company to have the hardware designed, software written, and units built.
This project has been running for about a year and a half now, and we thought we were far enough along to let potential customers have units to try.
A couple of months ago, I set up a few units and burned the latest software into them. Everything looked good, so I didn’t have any qualms about going on my scheduled vacation. My boss was going to pack the stuff and send it off, but he got curious first and decided he would play with the gadgets before sending them out.
He plugged the stuff together, and hooked the base unit to his PC, and then had to go do something else. A couple of hours later, he comes back and goes to fiddling. Nothing worked. He calls me at home and bitches me out for leaving non-functional stuf for him to send to the customer and wants me to come in and do my job right.
Well, shit. I DID do it right. The crap was working when I left. I came in, tried the stuff out, and it all works just fine. Oh, Jesus. We’ve got a thermal problem.
As part of the development process, we had run full enviromental tests on the stuff and had no problems. What the fuck is going on here?
We fiddle with things for a while, and find that the PLD (programmable logic device) that we have on the boards to interface into the radios are the ones causing the problems. How in the hell does an upgrade to the software running on the DSP cause the PLD to malfunction?
Installing the old software on the DSP is not an option - it has a bug right in one of the functions that this customer is interested in, so we have got to get this running with the new software.
We call the consultant, and explain things to him. He tries things out and can’t reproduce the problem. Every couple of days we call or e-mail with our latest test results, and ask what you have found.
Finally, a couple of days ago, we figure out that you aren’t even testing the damned things under the same conditions we are. You’ve got have of the radio side interface just hanging in the air, and you haven’t been doing what we were doing to provoke the error. We get that straightened out, and you still can’t reproduce the error.
Shit. I am well and truly pissed off now, so I decide to do something I’m not supposed to do. I mean, if we had had the time and the expertise we would have done the design ourselves. So, I fire up the design software (which I have to have to program the new PLDs with the configuration data you send us) and start poking around.
It is obvious that it is a timing problem that gets worse when the temperature rises. I know this because of the way the glitches and malfunctions occur. I’ve been telling you this for weeks, but you didn’t believe me.
I spend a couple of hours poking through the design software and seeing what it can do and how to use it. The design part is pretty clear - it looks like any other schematic layout software, and works pretty much like it, too. No sweat. Now that I know what I am looking at, I start eyeballing everything involved in generating the malfunctioning signal.
Holy cats! What in the name of little green kumquats and fuzzy peaches did you think you were doing there? An I/O port address decoder is not exactly rocket science, but you’ve managed to ball it all up. The freaking thing has a gazillion parts in it that don’t have any business being there. The logic is correct and will generate the correct signal from the correct inputs, but why must it be so complicated?
I get to thinking about complicated circuits and delay times and realize that we don’t have a whole lot of leeway in the timing of this thing. Hmm. Timing. Somewhere was a timing analyzer.
I run the timing analyzer, and it generates a table that shows me that the address decoder can take up to three times longer to decode the address than the address and the data are valid. Best case, it just barely works, worst case you get random garbage (or nothing) on the output because of variations in the propagation delay in the components of the decoder.
God dammit. This is your job. You know that data rates we are using. You are the engineer on this project. You get paid the big bucks to know and understand these things. Tell me. Why in the blue peeping Hell didn’t you do a timing analysis? Is it because you’re using the PLD manufacturer’s free design software instead of the full version? The full version will check for timing constraints at compile time - if you ask it to. The free version doesn’t have that option, so I guess it was too much work to click the mouse a few more times and read what the fucker had to say about your piss poor design.
While I’m poking around, I look at the I/O port address decoders for the other outputs. I don’t have a problem with copying a design and reusing it all through the chip, but damn man, you should make sure it is a good design first. ALL of the address decoders use the same shit lousy design. God knows why the rest of them aren’t fucking up too. Must be pure fucking luck that the propagation delays are short enough in them. It sure isn’t good design.
Lacking anything better to do with my time (snort,) I redesign the address decoder on the output that is causing problems. It uses maybe a third of the gates that your design used, and its propagation delay is less than half of that screwed up mess you had. Guess fucking what? It works like a charm. I can heat it up until the PLD is getting ready to slide off of the board and it just keeps right on working.
To top things off, I notice while reworking the decoder that you’ve got parts of each one that decode the same signals the same way. Would it have been too logical to have seperated those sections out and only decoding them once instead of decoding them for every output?
I gues you just suffer from a lack of logical thought processes. Every god damned output on this thing has its own address decoder. Never mind that you could actually handle eight (the width of the data bus) outputs with one output port. Never mind that each and every fucking decoder costs a pretty large handful of components (out of the ones available on the chip) and that each component draws current. Hell, who cares. We’ve been after you from the beginning to reduce the current draw on this fucker and you just couldn’t seem to get it under control. Now I know why. You’ve got the world’s most inefficient hardware design, and fuckall for a concept of how to do it right.
I had to hold your hand and walk you through the radio interface part of the gadgets. Hell, I expected that. I wanted it set up to cover a lot of really weird situations I’ve encountered over the years and didn’t expect you to understand the reasoning behind the oddball shit I did with the analog circuitry. That was fine. I just didn’t expect to have to baby sit you through the design of what is really a fairly standard digital circuit. I mean, hell. We built address decoders from discrete components way back when I was in computer science at the university. I really would have thought that an engineering consultant who provides IP to one of the largest DSP manufacturers in the world would know this kind of simple shit. Maybe you missed that day, or maybe they don’t teach that kind of thing to Electrical Engineers. Anyway, it still shouldn’t have presented you with any trouble.
God damn, man. Pull your head out of your ass before you accidently contrict your sphincter and strangle yourself.
I also suggest you carry your EE degree around with you at all times. It will no doubt come in handy the next time you find yourself in a shit house with no toilet paper.

Holy shit Mort.

Kill the asshat. You’ll be doing him a favor.

I’m not sure if it’s the problem here, but one thing is that there are too many non-geeks going into technical fields and they just can’t cut it. University EE and CS programs are full of normal students who shouldn’t be permited anywhere near technology. One wonders if they can even set the clock on a VCR. Sure, they may pass their classes and graduate but when they hit the streets? You get shit work like this.

I hate it. I also hate lame-ass tech schools and their commercials on TV. “Come to our crappy school and make big bucks.” We’ve got one where I live – their commercials are all made in PowerPoint, using standard templates no less! I swear to God they are. In the first ones they just put the camera in front of a LCD monitor and filmed it that way. – You could see the edges of the monitor in the commercial! Then they started doing it direct. They have some live action now, but they all feel like the opening scene of a really bad poro flick.

Good luck, Mort Furd. Don’t let the assholes get you down.

You know what really worries me, Anaximenes? This guy and his company are supposed to be really good. No joke. They have customers from all over the world. They provide reference implementations of DSP software for a major DSP manufacturer. The DSP manufacturer refers customers to them. I’ve known most their employees for years, since before they formed their own company. Most of them worked together for another company that we still do business with. The quality of that company’s new developments has gone to shit since these guys left. That’s what worries me. They produce crap, but seem to be the pick of the crop.
Killing him isn’t really an option. The internet is good for lots of stuff, but remote control asshat elimination just isn’t there yet. Besides. On those rare occasions when I get to see him in person, he’s a really nice guy. I’d hate to toast his ass and leave his wife and kids without him.
I guess I’ll have to see if the internet is up to a remote control Kiwi injection, and then have him redesign the PLD innards to my satisfaction.

Wow. If you can’t kill him, at least bash him around a bit with the clue by four.

Does the DSP manufacturing company rhyme with goatarola?

Where was vacation supposed to be, and are you going to get it after this is over?

Naw. 'Tain’t Motocola. They are from the same state as President Bush.
I’d truly love to whack him around with a clue by four, but first I’m afraid the clue by four would break and second I’m over in here in Krautland and he’s out in a cornfield in Nebraska.
Vacation in Balkonia went ahead as planned. I came in when the boss called, and when we found out that it was a major problem that the engineers had to fix, we sent them the info and hoped for the best and I went back to working around the house and playing with the kids.

Well not EXACTLY that, I’ve but had to deal with similar engineering fuckups - caused by people I had to work with. Hopefully this consultant is not someone you have to be civil to on a daily basis?

Just remember, no matter what goes wrong, it beats flipping burgers for a living.

Which is what that loser should be doing, huh?