Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Software Government Privacy Programming Security Technology

Software Engineer Detained At JFK, Given Test To Prove He's An Engineer (mashable.com) 553

New submitter mendred quotes a report from Mashable: Celestine Omin, a software engineer at Andela -- a tech startup that connects developers in Africa with U.S employers -- had a particularly unwelcoming reception when he deplaned at John F. Kennedy Airport and was given a test to prove he was actually a software engineer. A LinkedIn post detailing Omin's challenging experience explained that upon landing in New York after spending 24 miserable hours on a Qatar Airways flight, he was given some trouble about the short-term visa he obtained for his trip. According to the post, an unprepared and exhausted Omin waited in the airport for approximately 20 minutes before being questioned by a Customs and Border Protection officer about his occupation. After several questions were asked, he was reportedly brought to a small room and told to sit down, where he was left for another hour before another customs officer entered and resumed grilling him. Omin was instructed to answer the following questions: "Write a function to check if a Binary Search Tree is balanced," and "What is an abstract class, and why do you need it."
This discussion has been archived. No new comments can be posted.

Software Engineer Detained At JFK, Given Test To Prove He's An Engineer

Comments Filter:
  • by OverlordQ ( 264228 ) on Wednesday March 01, 2017 @05:46PM (#53957357) Journal

    We're Number #1! /s

    • by Anonymous Coward on Wednesday March 01, 2017 @06:02PM (#53957523)

      This is completely justified.

      We shouldn't let anyone into the country who can't write a procedure to tell if a Binary Search Tree is balanced, or doesn't know what an abstract class is.

      • by Anonymous Coward on Wednesday March 01, 2017 @06:18PM (#53957673)

        I know I know! An abstract class is one where they talk about binary search trees!

      • Re: (Score:3, Informative)

        by Anonymous Coward
        I don't know what an abstract class is or why it's useful. I write in C, not whatever language is hot shit in Current Year(tm). I can, however, balance a binary search tree, so I guess I'm half eligible to not get deported.
        • by raymorris ( 2726007 ) on Wednesday March 01, 2017 @08:05PM (#53958495) Journal

          Just for fun, it's basically a header file, with the implementation left to the user. You can't run the code as recieved, because there is no implementation.

          That's actually basically the definition of an abstract function (method). The presence of an abstract function makes the entire group of functions amd the struct which points to them non-instanceable. You can't create an instance of a struct which contains a pointer to a function you've not yet implemented.

          Writing objects in C is fun (once).

        • Re:USA! USA! USA! (Score:4, Interesting)

          by amxcoder ( 1466081 ) on Wednesday March 01, 2017 @10:50PM (#53959393)
          Agree, I've been a professional programmer for over almost 20 yrs, but I specialize in embedded platforms and automation control. I can't tell you how to balance a binary search tree because in my field, that concept is not even used, or able to be implemented with the limited and custom "subset of C language" compilers I have to work with. I DO however know what an abstract class is though, just from studying OOP programming in general, so I guess I would only get half credit on that exam?
      • Re:USA! USA! USA! (Score:5, Insightful)

        by AmiMoJo ( 196126 ) on Wednesday March 01, 2017 @07:00PM (#53958057) Homepage Journal

        Well... I didn't want to go there anyway.

      • by ghoul ( 157158 )

        This is completely justified.

        We shouldn't let anyone into the country who can't write a procedure to tell if a Binary Search Tree is balanced, or doesn't know what an abstract class is.

        I agree. In fact we should go a step further. We should start revoking US citizenship and deporting folks who cannot write the same. A much smarter nation will result.

  • In What Language? (Score:4, Insightful)

    by lazarus ( 2879 ) on Wednesday March 01, 2017 @05:48PM (#53957387) Journal

    Write something in Forth.

    • Re: (Score:3, Informative)

      Brainfuck should be better for this case.

    • by sconeu ( 64226 )

      Even bettter, APL. It's not humanly readable.

    • by OrangeTide ( 124937 ) on Wednesday March 01, 2017 @05:51PM (#53957423) Homepage Journal

      "What is an abstract class, and why do you need it"

      Not a very FORTH friendly question. I'm an old C programmer and while I could make an educated guess, I don't think I would be able to confidently answer the question after a long flight.

      Checking if a binary search tree is balanced is something a student has to do, you usually have to write these sorts of things once or twice in your entire career.

      On the other hand I could sit down and discuss HDMI specification all day and night with border agents. They'd likely pass out from boredom.

      • by MightyMartian ( 840721 ) on Wednesday March 01, 2017 @05:52PM (#53957433) Journal

        Nonsense. They have tasers. They could keep themselves amused all night.

        You, on the other hand, might enjoy it less.

      • Perhaps then you would like to explain how to force X Windows/Debian Linux to output over HDMI regardless of the CEC and EDID data (or lack thereof) coming back over the link?

        Two of the banes of my existence are 1) that if I power off an HDMI TV attached to a Linux box and then power it back on some hours later (e.g. for use with MythTV) I am unable to get any output from X unless I reboot the system and 2) that if I power up a Linux box without an attached and powered on HDMI TV (e.g. digital signage which

        • CEC doesn't matter.
          X11 reads the EDID and parses it itself, you can override the modes all you want.
          The output selection is controlled by the driver. Some drivers tend to be monolithic and kind of a pain to alter the policy, like the VideoCore (Broadcom/Raspberry Pi) or NVIDIA proprietary drivers. Others should be pretty straight forward like the Intel drivers, as there are tables in the laptop firmware that describe the routing and the open source driver knows how to find them.

          I power off HDMI TVs and powe

      • An abstract class is offered at an art school.

        I gotta think of everything.

      • Checking if a binary search tree is balanced is something a student has to do, you usually have to write these sorts of things once or twice in your entire career.

        So very true. Arrays, vectors, lists, hash tables, maps, stacks? Depending on the language, I've interacted with all of those and similar structures on a regular basis. But graphs, trees, and heaps? Other than allocating memory from the heap, I'd be hard-pressed to think of a single time I've directly interacted with any of them since leaving grad school, and the notion that my entry into a country could be denied because of that is appalling. If a customs agent decided to start grilling me over something l

      • On the other hand I could sit down and discuss HDMI specification all day and night with border agents. They'd likely pass out from boredom.

        I've found that this typically works as they are usually just asking you questions to see if you sweat or have trouble answering them. Even for tourists, they'll ask what you are really looking forward to seeing or what you really liked about your trip. I've found that if you already have something in mind and can just wax endlessly about it till they tell you 'that's enough', that that will also be the end of the interview and they'll let you go. I wouldn't be surprised if in earlier questioning, he was as

    • I'm pretty sure "pink" would have been an acceptable answer... how the hell is someone in border protection going to know if the answer was right or not?

    • {B = "4"} {"may the with you" = B}

  • by Frosty Piss ( 770223 ) * on Wednesday March 01, 2017 @05:50PM (#53957413)

    I donâ(TM)t work for free. If they want me to solve problems, they can sign a consulting contract.

    But hereâ(TM)s an idea, if they are going to force software engineers to do this sort of thing, maybe they can break up some vexing Homeland Security software problem and piecemeal it out, sort of like crowdsourcingâ¦

  • I cannot wait for a day when only people able to answer (fairly basic) software engineering questions can fly. Security will be a snap. Of course, I assumed I can answer the questions for them -- otherwise I'll be going sans my family and most of my friends.

    The most surprising part of that is that questions were pretty decent. Although an abstract class is not a universal concept, and I'm not sure if we should be limiting things by choice of language. After all, we're the land of the free...

  • by Anonymous Coward on Wednesday March 01, 2017 @05:52PM (#53957437)

    I had to go through a 3 hour interview .. i mean policy interrogation in Israel to leave the country. They'll ask the same questions over and over again to see if you answer correctly.

  • by Anonymous Coward on Wednesday March 01, 2017 @05:53PM (#53957445)
    He really should have messed with them. Binary tree? That is where we obtain the components for the binary explosive.
  • Perhaps he was being given a surprise job interview [slashdot.org]?
  • by qQ7eBMsfM5gs ( 4756041 ) on Wednesday March 01, 2017 @05:55PM (#53957463) Journal
    The most surprising in this story that Custom officers were able to come up with the quoted questions.
    • Re:TSA knows? (Score:4, Insightful)

      by TWX ( 665546 ) on Wednesday March 01, 2017 @06:05PM (#53957557)
      He sat there an hour while someone consulted someone else who consulted someone else who knew someone in Government that knew someone in private industry to ask what kinds of questions would be asked of a software engineer.

      In the ensuing game of telephone the declared needs changed. Questions that probably should have been as simple as "What extra include is necessary in C++ over C" and "What is an IDE?" which very few non-programmers could answer anyway were replaced with ones that are harder to answer.

      It's actually not an entirely bad idea to confirm that someone coming in for a specific reason for a specific class of visa is here for legitimate purposes, but if the Government is issuing th visas in the first place then it should not be difficult to know what kinds of questions need to be asked, so that there isn't an hour delay, and so that the questions are considered and reasonable.
      • It's actually not an entirely bad idea to confirm that someone coming in for a specific reason for a specific class of visa is here for legitimate purposes,

        The story is opaque as to the actual visa involved, calling it only a "short term" visa. I would expect someone coming here to work would not have a short-term visa to start with, so that makes it suspicious. "Software engineer" is such a broad field that seems like a reasonable career for someone trying to enter illegally to pick. I mean, just how could ICE verify? Well, they tried, and I think it was reasonable to question him.

        They also called his employer, which I suspect is why he got loosed.

        but if the Government is issuing th visas in the first place then it should not be difficult to know what kinds of questions need to be asked,

        Ummm, the

    • The most surprising in this story that Custom officers were able to come up with the quoted questions.

      I used to have a very controlling and secretive boss - he had very little technical knowledge, but he did not want people to know that.

      For a long time, he would not let the rest of us participate in interviews of job applicants. Instead, he would come to each of us and have us give him questions and answers. I remember one time he asked me to come up with several perl coding questions and answers (my boss did not know perl, but it was a requirement for the position being filled).

      So I am reasonably sure the

  • by mfearby ( 1653 ) on Wednesday March 01, 2017 @05:55PM (#53957471) Homepage

    It's been so long since I even looked at having to do one of those, that I would be put back on the next plane home, LOL.

    • I thought so too at first, but it's only a function to check if it's balanced. That means count the nodes in the left sub-tree and the nodes in the right sub-tree and make sure they are the same (or close enough to the same). That's not too hard to write.

      If I have to write a full red-black tree, then I'm in trouble.
      • That's not how you check whether a binary tree is balanced.
        The answer in the other part of the thread is wrong as well.

        It's scary how some so-called "software engineers" can't even solve such a trivial problem.

  • by Anonymous Coward on Wednesday March 01, 2017 @05:56PM (#53957483)

    I wonder what kind of tests do they give them.

  • Not at the border (Score:5, Insightful)

    by Anonymous Coward on Wednesday March 01, 2017 @05:57PM (#53957485)

    It's total nonsense that the USA is detaining and turning away so many people at the border. By the time someone gets to the border (with visa in hand), the only question should be whether they match the visa - whether they are who they say they are. The "extreme vetting", or whatever you want to call it, should have already happened when the were granted the visa.

    Of course, if you really have evidence that someone is planning a terrorist attack on the USA then rather than simply turning them away to try again later you should be letting them in - and then throwing them straight in jail.

    • by TWX ( 665546 )
      There are multiple kinds of visas. I think there are reasonable procedures that could be carried out at arrival for some of those kinds of visas. I don't happen to feel that this particular set of questions was reasonable, but it is not unfair to ask someone here for an occupation-related visa to confirm that they're above-board.
  • by mveloso ( 325617 ) on Wednesday March 01, 2017 @06:05PM (#53957553)

    The correct answer to all of these questions is "why don't you look on stackoverflow?"

    • Re: (Score:3, Funny)

      by Anonymous Coward

      The correct answer is that solving the problem would incur a consulting fee, but you are not allowed to work on a tourist visa (or as a visitor under a visa waiver program), so he'll have to ask someone else.

  • It's been too long since I've seen a binary tree to remember that sort of thing, and as someone with mostly experience in C, I don't know much at all about abstract classes...

  • Easier test (Score:5, Funny)

    by quadrantviewer ( 4702349 ) on Wednesday March 01, 2017 @06:07PM (#53957583)
    Surely it would have been easier to check if he was an engineer by forcing him to try to talk to a girl?
  • Well... (Score:5, Interesting)

    by SeattleLawGuy ( 4561077 ) on Wednesday March 01, 2017 @06:09PM (#53957613)

    I've had border guards not be sure if I was really me when I was driving a rental car across the border. Drug traffickers will sometimes use rental cars and my driver ID happened not to match the location where I had rented the car. I'm not offended by the fact that they double-checked it was me. With this guy, they verified his story with his employer and asked him a question or two. Sure, it wasn't perfect, but there are much bigger things to worry about. And we don't know the circumstances from CBP's POV. (Did he match a pattern of people claiming to be software engineers from nigeria who turned out to be here for criminal purposes, for example? I don't know, and neither does he.)

    Clearly, however, he should have been treated respectfully and with an "I apologize for the delay but we needed to verify your identity. I hope you have a wonderful time." They need to maintain authority, but it's also important to keep the country welcoming.

  • Nothing new (Score:5, Informative)

    by OzPeter ( 195038 ) on Wednesday March 01, 2017 @06:25PM (#53957735)

    French historian detained for 10 hours
    http://www.cnn.com/2017/02/28/... [cnn.com]

    Australian Children's author detained
    http://www.smh.com.au/entertai... [smh.com.au]

  • ...

    "Write a function to check if a Binary Search Tree is balanced," and "What is an abstract class, and why do you need it."

    I got nothin'.

  • by jtara ( 133429 ) on Wednesday March 01, 2017 @06:42PM (#53957907)

    Almost nobody today has a need to know how to balance a B-Tree. Unless they happen to work on the innards of a database system, library, etc.

    Sure, I learned this 35 years ago, and sure we had to do it for some class. I suppose Computer Science students still have to do it today. I've even done it in practice, but it was a LONG time ago. I would have to look it up, as would most software engineers.

    In fact, any software engineer that would write something like this off the top of their head is engaging in bad practice. That would be my answer!

    As a practical matter today, if you really needed to do it, you would search for best algorithms. And then question whoever asked you to do this, as B-Trees are pretty old and lame at this point There are better data structures to accomplish the goal.

    What next? Ask somebody to write a compiler? "Sure, get me the Dragon Book..." (But, as well, that is surely obsolete today, as well.)

    The border agent either Googled for some questions to ask a software engineer, or failed a Google interview exam. Which - I've read, Google doesn't do any more, and for good reasons.

  • Omin was instructed to answer the following questions: "Write a function to check if a Binary Search Tree is balanced," ...

    ... and accidentally walked into a Google interview. Was there a whiteboard [slashdot.org] in the room?

    [ I'll add, seriously, that I couldn't write that function on the fly after a 20+ hour flight. ]

  • by seoras ( 147590 ) on Thursday March 02, 2017 @03:20AM (#53960309)

    Remembering that the cold war was won by bankrupting the CCCP it makes me wonder if, assuming the rumours are true about Trump's strings being pulled by Putin, that their game plan is to destroy the American economy or weaken it.
    Everything I've read about what Trumps has done, said or plans to do comes with a nasty long term economic cost.
    Any other country would give their new borns to attract the worlds best minds to a "Bay Area", hot pot of technology star ups and world leaders.
    Sure there's going to be plenty of abused H1B's but there's also going to be a heap of well deserved work visas which -smart- people won't be so keen on accepting in this current administration.
    Cutting foreign aid, building walls, things that please those deluded enough to vote him in which will have a long term economic impact on the US and well as weakening it's world influence and power.
    America's strength, which has given it world domination, has been it's economy and that's largely been driven by it's technology.
    Pick a handful of American technological achievements and you'll find a large portion of them were created by immigrants not home born "presidential material".
    Wake up America, your fucking yourself. Badly.

  • by mschaffer ( 97223 ) on Thursday March 02, 2017 @07:36AM (#53960927)

    The US Government should be as picky when they hire political cronies that provide goods and services.

One way to make your old car run better is to look up the price of a new model.

Working...