back to article Can your rival fix it as fast? turns out to be ten-million-dollar question for plucky support guy

Have you got that Friday feeling? Well, you should, because it's just hours away from the weekend and we've got another great Reg reader story in this week's On Call. This time our tale of tech support triumph comes from reader "Ben", who in 1979 worked for a plug-compatible manufacturer that was in competition with one of the …


  1. A K Stiles


    So Ben got a bottle of wine (and continued employment) for $10m of business, and the 'salesman' got how much commission?

    (okay it's not a bottle of wine, but it is rapidly heading towards pub-time!)

    1. Shady

      Re: recompense?

      This is (in part) what drove me away from being a permie - I was never responsible for an 8 figure order, but certainly helped to win high 6, maybe even an occasional 7 figure deals on a regular basis, as illustrated:

      Sales Eloi would often come along and say "I want to demo this (absolutely fucking stupid idea, but looks flash) to a potential client next week - have it ready by then".

      "Not possible" we would say.

      "But I've already promised the potential client (and I've already told the CEO* you've volunteered)" said expensively dressed Sales Eloi before shooting off in his delivery-mileage M5, to wine and dine said customer at a nearby Michelin-starred restaurant whilst us Developer Morlocks would put in yet another 10-15 hours of unpaid overtime, only to be rewarded with a shared box of Quality Street whilst Sales Eloi booked yet another 5* holiday to Monaco / Mauritius / Miami with his forthcoming commission.

      *The CEO was extremely KPI driven, so Eloi's, as net-contributors to company coffers were a valuable asset and deserving of their rewards, but Morlocks, as a pure expense, were a drain and only barely tolerated.

      1. Doctor Syntax Silver badge

        Re: recompense?

        "shared box of Quality Street"

        IME that counts as an unusually lavish reward.

        1. Lord Elpuss Silver badge

          Re: recompense?

          I worked on a 5-man support team a couple of years back which collectively drove a $20.7m deal. The salesman got a percentage (in theory anywhere up to 5% although obviously nobody knew exactly how much - mucho $$$ in any case). We got an email from the big boss to say good job. The kicker was that the email started with: Dear ELPUSS, LORD,:... even the thankyou letter was a mail merge.

        2. Shady

          Re: recompense?

          It was a small box. And it was probably an unwanted box from the previous Christmas.

          1. Antron Argaiv Silver badge

            Re: recompense?

            Cheer up, it could have been a hot cocoa sampler box:


        3. John Brown (no body) Silver badge

          Re: recompense?

          "IME that counts as an unusually lavish reward."

          Fuck yeah! One customer we had, annual 6 figure contract for over 10 years, consistently cited my and a colleague in satisfaction surveys as one of the reasons for staying with us. I never got as much as a "well done" from my company. But when a salesdroid fucked up and we lost the contract, said saelsdroid didn't get punished in any way because, well "customers go and customers come, that's the nature of the business". I know damn well if I'd fucked up enough to lose the contract, I'd have been pushed out the door with no parachute.

          1. 404

            Re: recompense?

            "IME that counts as an unusually lavish reward."

            Didn't even get that after our lead programmer, after 10k+ in performance bonuses, left the state three weeks for a new, more lucrative position before the launch of a new domain registrar he'd been working 6 months on. Customer specified a Windows server which had to deal with Netsol's Unix DNS registration system and the_fucking_programming_didn't_work_at_all and was dropped into my lap...

            I'll spare you the details, but the customer launched two days late.

            Only issue was I aged 127 years in that 16 days. I'm 181 years old now... all because of Chad and his love of Mazda Miatas in the late 90's...

    2. fizz

      Re: recompense?

      From the management point of view, it goes this way: neither the salesman nor the technician could have brought the deal in on their own merit, you need both.

      Most technicians are willing to go the extra mile for the simple satisfaction of seeing the job well done.

      Most salesmen are willing to go the extra mile only if they see a clear opportunity to bring home an huge amount of cash, while risking being left without anything if they don't go the extra mile.

      So, wanting to minimize expenses and maximize earnings, you pay a standard salary to technicians and a percentage to salesmen.

      1. Scott 29

        Re: recompense?

        > So, wanting to minimize expenses and maximize earnings, you pay a standard salary to technicians and a percentage to salesmen.

        Not really Richard Trumka's take on things.

        “We’re demanding nothing more—and certainly nothing less—than our fair share of the immense wealth we create every day,” says Mr. Trumka.

        1. fizz

          Re: recompense?

          Ah, but unions and that kind of stuff require ideas of social justice and "doing what's right" and so on.

          Management rarely care much about that kind of stuff.

          It could even get a manager fired, and maybe even without golden parachute.

          It's not by chance that when you've an enlightened manager that does that kind of stuff it's news material.

          Even when you *really* need the top technical talents and can't afford appropriate salaries in a very competitive market and so do that stock options thing that helped so many American start-ups, you do it at the moment of enrollment. After that, management knows that the average techie will go on doing their best no matter the situation.

          Salesmen tend to remain much more unreliable, and needs a more direct system of control...

    3. bombastic bob Silver badge

      Re: recompense?

      somewhat related, though it worked out ok because I kept working for a couple more years at a nice pay rate...

      a) as a contractor, told [after short vacation] I had to fly to Dallas to assist an important customer with software mods that were just NOT working. Other guy was flying back.

      b) asked very nicely to ONLY charge 8 hours per day for that [I was nice, I did it]

      c) took my personal laptop with FreeBSD on it, configured to build all of the software using the customer's chosen compiler version, compatible with their proprietary system, so I could hand them a binary BLOB library with any fixes in it when needed

      d) a disgruntled employee at the customer site had NOT implemented 'layer' fixes (in their code) that were needed to run the latest library code [new lib necessary because it fixed specific bad bugs and enhanced performance]

      e) later, another reported problem turned out to be related to THEIR OWN IP STACK [and was confirmed and fixed by their 'sales engineer' while I twiddled my thumbs in their storage warehouse for a few hours]

      f) I fly back on friday, and spent a couple of hours on saturday over the phone with one of their engineers, finalizing it all.

      A few months later, the product shipped. If this hadn't gone well, they would've canceled all orders for the company I was contracting with. I don't know how much money they earned, and as far as I was concerned, I was "just doing my job". But it's 100% true, no [bleep] this really happened!

      And in the summer, Dallas Texas is HOT AS A PISTOL. And they don't fix the 'walk' signals at their traffic lights. I think I was the only one walking that day, only a mile or two to the hotel, but still.

  2. This post has been deleted by its author

    1. Anonymous Coward
      Anonymous Coward

      Re: Interrupt service routines.

      Ah yes, ISRs. I had a problem once where some circular buffer code in an ISR should have been [i] but was actually [1]. Didn't use much of the buffer like that ;) and occasionally messages got overwritten. That one got me a trip to Australia to diagnose & fix, and one very happy customer. No wine from the boss though, since I'd written that code & the bug was mine... Could have been worse, at least he signed off the travel expenses claim.

      1. Doctor Syntax Silver badge

        Re: Interrupt service routines.

        "the bug was mine"

        I worked for one company body-shopped in from a consultancy, as an employee, briefly as a freelance and even more briefly on behalf of a vendor with whom I was freelancing. The last was hand-holding migration to new kit with new versions of the OS & RDBMS.

        The entire custom software application worked fine except for one SQL statement that failed due to incorrect use of SQL's 3-way logic. I recognised it. It was one I'd written back in the body-shop days and involved a tricky bringing together of two very different types of products when converting from non-SQL to SQL. It was my first exposure to SQL; that's my explanation anyway.

        It was clearly wrong but there must have been a compensating bug in previous versions of the RDBMS engine because the whole thing had been working with no problems for about 10 years. The really odd thing was that my replacement as employee insisted that the original SQL was correct.

      2. Aladdin Sane

        Re: Interrupt service routines.

        Million-to-one shots work 9 times out of 10.

        Obligatory Sir Pterry icon request.

        1. Evil Scot Bronze badge

          Re: Interrupt service routines.


          Black fedora.

          ...Which might make the linux bods happy too.

    2. Anonymous Coward
      Anonymous Coward

      Re: Interrupt service routines.

      Not only interrupts.

      A friend, many years ago, got some time on a mainframe to do some chemical bond calculations. The results were clearly wrong.

      The result was an entire weekend spent doing the calculations on an HP calculator. But where was the problem?

      Apparently one of the gods of the system, on Friday afternoon, had been playing with a microcode patch not knowing there were some jobs still to be run. And the bug in the patch was that floating point unity was very slightly incorrect. And he hadn't reverted the patch before leaving even though it had not been properly tested.

  3. defiler

    I'm just going to say...

    Thank fuck it's Friday. It's been a shit of a week. It's been a shit of a fortnight. And next week I need to start shouting down suppliers who clearly aren't as effective as Ben because they just like to make excuses when they fuck us up.

    Coffee and bacon roll just now. Beer and curry later, dammit!

    1. Anonymous Coward
      Anonymous Coward

      Re: I'm just going to say...

      Coffee and bacon roll just now. Beer and curry later, dammit!

      <death font>


      </death font>

    2. Spazturtle Silver badge

      Re: I'm just going to say...

      "Coffee and bacon roll"

      Sounds interesting, do you put the beans in the roll whole or grind them first?

      1. defiler

        Re: I'm just going to say...

        do you put the beans in the roll

        You use espresso in the dough instead of water. Yeast only takes 30 seconds then.

        Also, thanks to whomever for the downvotes for me bitching about my fortnight. That fixed everything right up, so piss off, and I hope you get the same torrent of shit I've had to deal with. Chin-chin!

        1. Anonymous Coward
          Anonymous Coward

          Re: thanks to whomever for the downvotes

          Shouldn't have mentioned them bud, it's a sure fire way to get more......

          1. Anonymous Coward
            Anonymous Coward

            Re: thanks to whomever for the downvotes


    3. macjules

      Re: I'm just going to say...

      Know the feeling. Absolute awful week so far ... and this morning I just found that someone built a presentation site for one of our top clients in FLASH. Not only that but the developer then added a javascript override so that there would not be any awkward messages such as "Flash is a virus, are you sure you want to run it?"

      1. Chris King

        Re: I'm just going to say...

        If you're going to have him run over in the car park by the bin lorry, remember - ONE set of tyre marks BFEORE the body. You don't want it to look like they reversed over him several times just to make sure.

        And THAT's just for using Flash. You really don't want to know what most of us would do for that Javascript over-ride.

      2. Shadow Systems

        Re: I'm just going to say...

        At macjules, re: JS & crappy week.

        Make room at the bar, allow me to buy you a pint, & I'll add my tale of Utter Fucking Idiots to the stack with yours...

        I've spent the week trying to explain to the moronic fuckers at my bank why their "new & improved" site was perhaps new but in absolutely no way an improvement.

        The old site worked without JS enabled & I could bank just fine. The new one requires JS be enabled & utterly refuses to work without it. Even the log in pages no longer work properly without using JS. I've given them example URL after example URL detailing all the crap JS puts the user through, the drive by malware installs, the virus injections, et al. No avail. They insist enabling JS is to "ensure a secure & reliable experience".

        Then in some strange twist of reality that utterly befuddles me, they insist third party cookies be allowed. On a supposedly HTTPS connection. Last time I checked allowing an unaffiliated third party into your bank to watch over your shoulder while you entered in all your log in credentials was definitely A Very Bad Thing(TM). The bank doesn't care. The cookies are required "to customize our banking experience". No, the first party cookie is for that. The *third party* cookies are for advertisers. The bank can set a cookie, the advertisers can go fuck each other.

        Next is the addition of Flash videos for tutorials & "look how great we are" self congratulatory pats on the back. I pointed them to the various CVE listing sites that show JUST how bad of an idea that was, and once again they don't care. "We use Flash to ensure everyone gets the same experience" translates to "a buggy, security hole riddled, pain in the ass" one.

        Last but not least, part of the JS does a check to make sure *Adobe* PDF reader is installed "so the customer can reliably read notifications, bulletins, & statements"... A third party reader isn't good enough, it *has* to be Adobe. No Adobe, no go. I asked in what world they thought THAT would be a good idea, to which I received the generic boilerplate reply of "ensuring customer satisfaction".

        I finally gave up trying to explain JUST how fucked up the new site was, opened a new account elsewhere, & have begun switching all my auto-pay/deposits to the new one. If $OldBank thinks JS, Flash, Adobe Reader, & third party cookies are A Good Idea(TM) then I don't want to keep my money under their control...

        So I'll raise a tankard to commisserate with you. First round is on me.

        1. Anonymous South African Coward Bronze badge

          Re: I'm just going to say...

          Pester the Jester's new job?

        2. Bronek Kozicki

          Re: I'm just going to say...

          Are you familiar with the term "tech-illiterate"? That's what most directors at established banks are. And they are the only people with the authority to make architectural decisions. That might not apply to one of the upstart banks like Monzo or Starling, but I am yet to learn more about how they work.

        3. Just Another SteveO

          Re: I'm just going to say...

          Care to mention which bank that might be? Rhymes with....?

        4. SImon Hobson Bronze badge

          Re: I'm just going to say...

          ... trying to explain to the moronic fuckers at my bank why ...

          While you are at it, how about reporting them to the FCA for forcing insecurity on their online banking customers ? If you've identified real security issues, and the bank has refused to accept them, then the FCA ought to be interested.

          I wonder if the ICO would be interested as well as the sort of issues you've raised would seem to violate GDPR compliance as well.

          1. Shadow Systems

            Re: I'm just going to say...

            I won't mention their name, I'd rather not get sued into oblivion, but their trademark tv icon used to involve a rather classic style of American pioneer era covered wagon & later stagecoaches.

            I shall report them to the authorities, they need to be slapped hard enough (read expensively enough) to *HURT* them. If I were on the right side of the pond (read: not mine) I'd have simply cc'd in the FCA into the email chain so they could hang themselves. As it is I've kept all the email communication, taken screen shots of the JS/Adobe/Cookie requirement screens, & will probably add enough citations of why such requirements are A Very Bad Idea(TM) to choke a Wiki server. All that will get emailed to said authorities & I shall hope for the best (worst?).

            On a lighter, happier note, my new bank offers an account switcher service that includes auto-pay-bill moving thingy. I tell them the old one details & they get it changed over to be taken from my new account. That leaves me with only my Direct Deposit bits to reconfigure & I should be good to go. The new bank can't do an auto-switch of the DD for security reasons: something about an unscrupulous person switching someone *elses* DD into their own accounts & absconding with the filthy luchre before the real DD owner can stop it. (Shrugs, smiles) It doesn't make sense to me, that would still require a LOT of identification verification steps the unscrupulous person would have to provide before they could set up their own account much less try to screw with mine, but that's fine. The harder they make it for anyone *other* than me to change my DD bits then that's the less likely it'll get done illegally. Tuesday morning I'll contact my DD entities & get the DD switched over. My old bank should be out of the loop before the end of the week.

            *Buys everyone a pint in celebration*

        5. macjules

          Re: I'm just going to say...

          Upvote as I really feel your pain.

        6. Paul

          Re: I'm just going to say...

          Is that Barclays? If you use ghostery, you have to unblock adobe advertising for the login page to work on consumer internet banking.

          I tried reporting it to their security people but feck-all interest.

  4. Will Godfrey Silver badge

    Ancient memories

    Not really the same class of problem but I remember getting mightily confused by some 6502 assembly that crashed only when an attempt was made to access the last few items in a fairly short lookup table.

    I eventually found the problem after many hours. I'd used ROR instead of LSR to turn the index into an offset. With ROR the 'carry' gets pushed into bit 0, and this was only being set by the calling routine for the way the higher indexes were created.

    1. Black Betty

      Re: Ancient memories

      Inline data.

      JSR do something.

      data here

      more code here.

      something: POP the stack.

      index through data,

      process data.

      PUSH to stack.


      Made for very readable source code, but don't even think about trying to disassemble the binary.

    2. NXM Silver badge

      Re: Ancient memories / current practice

      I write assembler on PIC's because it runs faster. There's lots of this:

      bcf status,carry ; jic

      The jic is just in case. There's a lot of that too.

  5. Anonymous South African Coward Bronze badge

    Ahhh assembly language - you need to keep really, really close tabs - and lots of comments - on the source otherwise it'll trample all over you.

    1. Phil O'Sophical Silver badge

      Not just assembly.

      Late 70's, ICL 1900 FORTRAN, I was an undergrad student just learning the language, and had a program that just behaved bizarrely, loops that ran for the wrong number of times and similar weird things.

      Turned out that 1900-series systems had no machine-level instructions to add a constant to a location, you had to put the constant into another storage location and then add the two contents together. As an optimisation the compiler stored the numbers 1-10 (or maybe 20, I forget) in a fixed table so that they could be quickly accessed.

      I was calling a subroutine with a constant argument, and inside that subroutine I was inadventently changing it. FORTRAN passes all arguments by reference (i.e. pointers) and there was no form of readonly page protection on those systems, so my when I inadvertently added 1 to the passed-in constant 5, all "constant" 5s in the program became 6s...

      1. defiler

        Re: Not just assembly.

        no machine-level instructions to add a constant to a location

        Strangely enough, ARM assembly can be a bit weird when working with constants. Because it's a 32-bit instruction (including operands), the first few bits are the instruction, then a flag on whether to set status registers, then 4 bits for a register (at least), and then you end up with something like an 8-bit value and a rotation factor.

        So you can specify 255. You can shift that by (say) 8 bits and have 65280. But you can't have 65281 because the "active" bits are more than 8 wide. At that point you have to load it from a memory location, or load 65280 and add 1, or any number of kludges.

        It's been a little while, so I'm a bit hazy on all this nowadays, but that confused the hell out of me until I dug into the reasons behind it.

        1. Paul Shirley

          Re: Not just assembly.

          RISC design driven by realising compilers are crap at using complex instructions.

          Dodgy constant encodings allowed by realising compilers are really good at using them, especially on RISC designs intended for compiled languages not asm.

          Really happy assemblers were also good at quietly looking after that sort of trick coding by the time I needed to hack much RISC asm.

        2. Terje

          Re: Not just assembly.

          Mmm, reminds me of the good old days when I used to do 68k assembler, I promise you never once did the MOVEM instruction bite me when I pushed more or fewer registers on the stack then I pulled back...

          1. Phil O'Sophical Silver badge

            Re: Not just assembly.

            Try a VAX MOVC5 with the wrong address parameters. Trying to figure out what went wrong in an assembly-language program which crashed because the whole code was bodily shifted 8 bytes up really teaches you how to use the debugger. In hex.

            1. I Am Spartacus

              Re: Not just assembly.

              @Phil O'Sophical

              Oh yes, the joy of VAX Macro Assembly Language. Wonderful stuff. Miss it enormously.

              So much, I downloaded a MicroVAX emulator just to relive those heady days in the 80's.

              1. Tom 7

                Re: Not just assembly. Vax

                I remember, while trying to teach myself C on our 780 deciding to have a crack at getting Small C up and running on it for shits and giggles as they say. Good way to learn about how computers work - and how beer does too!

      2. swm

        Re: Not just assembly.

        This used to be a technique to get more memory by using constants as variables.

        On the IBM 1620 FORTRAN copying from an uninitialized variable could cause memory to be cleared as the uninitialized variable had no "flag" indicating "end of number".

        On the SIGMA 7 you could intersperse machine instructions in your FORTRAN code. I once wondered why why a SW instruction (Store Word) wasn't changing memory until I realized the opcode was STW.

        Finding your own bugs is hard.

      3. Gene Cash Silver badge

        Re: Not just assembly.

        > so when I inadvertently added 1 to the passed-in constant 5, all "constant" 5s in the program became 6s...

        Whelp. My day was shit, but not THAT shit. You win.

        1. Nick Kew

          Re: Not just assembly.

          > so when I inadvertently added 1 to the passed-in constant 5, all "constant" 5s in the program became 6s...

          Whelp. My day was shit, but not THAT shit. You win.

          Erk! That brings back a faint memory of being warned about that. Also in a context of FORTRAN, and back in my first job where - for the first few months before upgrading to a VAX - we were on a vintage ICL. I guess someone there had fallen foul of it too!

    2. CrazyOldCatMan Silver badge

      Ahhh assembly language - you need to keep really, really close tabs

      Or (as we used to say in my TPF days) "variables won't and constants aren't"

      1. Sequin

        I once asked my Chemistry teacher at school the value of a particular constant to be used in an equation. His response - "It varies"


POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like