WTF interview - don't let the government know



  • I've had some pretty bizarre interviews in the past (which I will be sure to post at WTF sometime), but yesterday I had one that was more unique than average.

    It seemed that the guys at the company (let's call it Workaround Co. to safeguard their image and face) wanted a dev so badly, they were talking to me as though I had already been hired. I was waiting for someone to interview me when the IT manager came and asked me for insight on some problems they had. Since I had nothing better to do before the interview, I decided to comply.

    First problem: they needed to make sure a web service which is hosted in another company would run everyday on 3 AM. At first I thought the guy was testing me, but no, five minutes of chat later, I found out it was a real problem for them.

    Me: use a Windows service instead of a web service.

    Manager: can't. We can't use windows services in the machine we got for hosting. [they were using some web hosting solution, so they weren't allowed to install a windows service nor do anything else than upload files].

    Me: but you can have a Windows service running here that would make a request to the web service around 3 AM.

    Manager: no, we'd need a computer working at that time, but we turn all machines off after we close the office. Are you sure there is no way to start the web service without the need for something external?

    In comes the head of their HR. And then they tell me about the solution they wanted to assign to me.

    Here's the part that caught my attention... Let's call it the Wondrous Task Feature (so I can call it the WTF for short).

    Supposedly, their system gathers some data from some government servers, on three levels. Municipal, state, and federal, so they had to go for three different servers. And that's because it only works for my city - they'd have to go through 180+ servers if they were to use the WTF for any city in my state. Anyway, they supposedly gather all this data in their database, so their customers can use their system to search for everything in just one place. They do lots of other stuff with the system as a whole, otherwise people wouldn't pay just for an easier search, but this data mining feature was the one where they needed most immediate help.

    Manager: we need some way to make it like this... So that even if we have a thousand people trying to use the WTF at once, we only have at most 10 requests being sent to it on any given moment, and the rest would be queued.

    Me: Are you having problems with connections? You could use connection pooling.

    Manager: no, no. You see, we're actually gathering that data only when it's needed, and the former lead dev for this project said if we do too many requests at once, the government servers could take it as a DoS attack.

    Me: Why don't you let them know we have those many clients? And they sure can take thousands times more requests at a time than that.

    Manager: We can't let them know that we are using their search page.

    Hearing that, I kept a brazen face, but deep inside my mind, my jaw dropped.

    It turns out that they had the system working like this: when a customer used Workaround Co.'s site to search for something with the WTF, they had a web client to navigate through the government sites, gather the data, and come back with that data in another formatting. Problem is, the government in all three levels is always changing the pages. They way Workaround Co. did it, even a simple extra letter in the hard-coded text of any page would be enough to keep the WTF from working with that page (depending on where the change was made), since they were parsing it in a rather... odd... way.

    So how did they go around this? Whenever the WTF would stop working, customers would get a message saying something along the lines of "please tell the tech support staff about this". Yeah, they didn't have any routing that would automatically tell them when something like that happened, the consistency of the system over time depended on the customers telling them about the WTF's ever happening "bugs" (althought it's just the same one every time). Upon notice of the WTF disfunction, they'd go around fixing it, and cursing the government for updating its sites. But oh, for some obscure reason, they couldn't tell it to the webmasters who had made them sad, since the government must not know about it. I checked with a few pals who study Law a few hours after, the search pages are public so there is nothing illegal about the WTF, but still...

    -----------------------

    By the end of the interview, I found out how things got to such a messy state at Workaround. They offered me a salary which is about half of what interns get paid around here. Oh, and that's because I have a couple of certifications, and I'm in college. The only two other developers I saw there besides the manager only had high school level education.

    Thankfully, just today I got a job somewhere else. Which is one of the best places to be IMO. But that's another story...



  • This could be an interesting business model.

     

    Get interview candidates to do all your work.  Have their "interview" be to sit at a computer for 1 hour and create something to match a specification. 



  • A universal rule of 'web developers': at some point they are going to create a contrived, ugly, and just plain insane reinvention of cron.



  • @asuffield said:

    A universal rule of 'web developers': at some point they are going to create a contrived, ugly, and just plain insane reinvention of cron.

    Why stop at plain insanity, if you can make insanity with a busyness model? http://cron-job.com/
    (For the non-german users: You can register at that site, supply a list of urls and an interval, and their servers will request the urls periodically. Basically "I'll just load that page every morning" outsourced...)

    To be fair though, the dozens of Apache + PHP + MySQL shared hosting packets aren't exactly helping. Many of them don't even give you a shell, let alone cron jobs, so you don't have many options besides WTFery...



  • @PSWorx said:

    @asuffield said:

    A universal rule of 'web developers': at some point they are going to create a contrived, ugly, and just plain insane reinvention of cron.

    Why stop at plain insanity, if you can make insanity with a busyness model? http://cron-job.com/
    (For the non-german users: You can register at that site, supply a list of urls and an interval, and their servers will request the urls periodically. Basically "I'll just load that page every morning" outsourced...)

    To be fair though, the dozens of Apache + PHP + MySQL shared hosting packets aren't exactly helping. Many of them don't even give you a shell, let alone cron jobs, so you don't have many options besides WTFery...

    That just ate another chunk of my already worn-out soul. WTF?

    I just remembered somewhere in this site, there was an article about a web app that needed a cron job too, and it was supplied by the developer who made it having the cron-needy page as the start url for his browser.



  • @PSWorx said:

    Why stop at plain insanity, if you can make insanity with a busyness model? http://cron-job.com/
    (For the non-german users: You can register at that site, supply a list of urls and an interval, and their servers will request the urls periodically. Basically "I'll just load that page every morning" outsourced...)

    To be fair though, the dozens of Apache + PHP + MySQL shared hosting packets aren't exactly helping. Many of them don't even give you a shell, let alone cron jobs, so you don't have many options besides WTFery...

    This is so wrong... and yet it's obviously something that many people need. This provokes a philosophical question: If a WTF is the only reasonable way to do it, is it still a WTF?



  • @ammoQ said:

    @PSWorx said:

    Why stop at plain insanity, if you can make insanity with a busyness model? http://cron-job.com/
    (For the non-german users: You can register at that site, supply a list of urls and an interval, and their servers will request the urls periodically. Basically "I'll just load that page every morning" outsourced...)

    To be fair though, the dozens of Apache + PHP + MySQL shared hosting packets aren't exactly helping. Many of them don't even give you a shell, let alone cron jobs, so you don't have many options besides WTFery...

    This is so wrong... and yet it's obviously something that many people need. This provokes a philosophical question: If a WTF is the only reasonable way to do it, is it still a WTF?

    The real WTF here is more retarded soundbite marketing. The people who write applications think "Apache+PHP+MySQL". The people who sell hosting sell to that soundbite, and people buy it. If they would just make purchasing decisions based on their actual requirements, rather than a 1-second summary of their actual requirements, then the problem would not exist.

    I have lost count of the number of times somebody has found their "Apache+PHP+MySQL" provider does not do what they need. When they ask how to get some additional feature, the answer is always: move to a provider who does do what you need - but then they just proclaim "Apache+PHP+MySQL is what I need! Now tell me how to get it to do what I need".



  • @asuffield said:

    @ammoQ said:
    @PSWorx said:

    Why stop at plain insanity, if you can make insanity with a busyness model? http://cron-job.com/
    (For the non-german users: You can register at that site, supply a list of urls and an interval, and their servers will request the urls periodically. Basically "I'll just load that page every morning" outsourced...)

    To be fair though, the dozens of Apache + PHP + MySQL shared hosting packets aren't exactly helping. Many of them don't even give you a shell, let alone cron jobs, so you don't have many options besides WTFery...

    This is so wrong... and yet it's obviously something that many people need. This provokes a philosophical question: If a WTF is the only reasonable way to do it, is it still a WTF?

    The real WTF here is more retarded soundbite marketing. The people who write applications think "Apache+PHP+MySQL". The people who sell hosting sell to that soundbite, and people buy it. If they would just make purchasing decisions based on their actual requirements, rather than a 1-second summary of their actual requirements, then the problem would not exist.

    I have lost count of the number of times somebody has found their "Apache+PHP+MySQL" provider does not do what they need. When they ask how to get some additional feature, the answer is always: move to a provider who does do what you need - but then they just proclaim "Apache+PHP+MySQL is what I need! Now tell me how to get it to do what I need".

    I don't really have the hope that we will get rid of that "package thinking" soon. After all, people love things that allow them to think less.
    But on the other side, a "one size fits all" of requirements has advantages as well - it's similar to standard measures in manufacturing: Because so many webspaces offer the same capabillities, application writers can adapt. And in the end, such applications - like phpBB for example - can run on a large number of webspaces after a really foolproof installation and less to none tweaking.
    And on the other side, maybe even more importantly, hosting providers can manage a large number of hosts with a single configuration and thus can sell the hosts for increadibly cheap prices.

    What I mean is, having a "standard package" at all might be a good idea. That the current contents of this standard package (Apache+PHP+MySQL) are utter crap is a different chapter.

    But in this regard, I think, there may be hope for the future, coming from the recent Web 2.0/ajax hype. Many of the "technologies" required (or at least wished) for modern Ajax applications - like server-sided events for example - are just not possible with the plain old standard setup. There is a number of relatively messy workarounds but many of them ultimately go at the expense of the hosting provider. And because i don't think many of those want to miss out on the cool new Web 2.0 market, they will eventually adapt. With new packages, but hopefully with better ones.
     


Log in to reply