7 ms·
More on Hiring Software Developers
- johnnyfaehell 13y agoSeems to me like, you may not be as good as you think. If throwing a RSS feed at throws you then how you going to deal with real life legacy(sometimes not so legacy) crazyness?
- r-s 13y agoWhile this may be true, the guy who has worked a bunch with RSS feeds will ace this question even if he is a substantially worse developer. This wouldn't be a problem if said technology was what the company actually used, but in this case it was not.
- arethuza 13y agoWouldn't you expect someone who had never seen or heard of RSS before to be able to do a bit of research, find out what it is and work out how to parse and give an account of the steps they took? A good candidate who had never seen RSS before might be better at that than someone who has spent their entire career processing RSS and never thinking about the details.
- lucasnemeth 13y agoI think you are right, but then, you would not dismiss him based on time.
- johnnyfaehell 13y agoWe're talking about XML basically. So he would have had to deal with the data in JSON if he had access to their API or XML in the test. Traversing XML isn't exactly the hardest thing to figure out and it took him an extra 100 minutes or so to figure it out. I personally consider the ability to learn one of the key things needed in a developer as you're constantly having to learn new things to achieve things you've never done before.
- gutnor 13y agoSo is that a fail in your book ? The guy actually learned the tech in less than 2 hours under pressure in an unfamiliar environment. If you fail him for that, the message you are actually giving is "I don't care if you can learn, every minute count in my business and if you don't know something you are out."
- ronaldx 13y agoYou seem to have missed the point. Consider the following two developers. Who would you rather hire, and who will get hired under this system? 1. Developer completes the task, unfamiliar to them, in 2 hours, or 2. Developer completes the task, familiar to them, in 1.5 hours?
- deleted 13y ago[deleted]
- ricardobeat 13y agoMaybe I'm biased (no Objective-C experience), but in the platforms I work with this is a 15-minute task, so I wouldn't hire either. There is nothing extraordinary about being familiar with XML or regular expressions.
- ronaldx 13y agoTake your point, and it's probable that the employer had other concerns and picked a covering excuse. (Some Objective-C flavour: NSXMLParser is a more appropriate solution than the one described) One reason I picked 90 minutes for my example is that I was imagining a hypothetical task, and I don't think you would/should be left sat at a task for 2 hours where 15 mins was expected. I hope that wouldn't happen.
- lucasnemeth 13y agoBut if the only reason they hired someone else was because of speed, it seems really unreasonable. If he needed to spend 30 minutes reading about RSS and did a good job in the end, it really doesn't matter if he spend a little more time.
- invalidOrTaken 13y agoFairly easily? If you're maintaining legacy code, here's what happens: you dive in, are horribly confused, and figure it out. Aaaaaaand...now you know it. Who cares if it took you three days to figure it out? You're going to be maintaining that codebase for a long time, aren't you? We're kidding ourselves if we believe that our dev work is "all-new algorithms, all the time." It's not.
- johnnyfaehell 13y agoWho cares? Stakeholders who are pissed of the legacy system isn't working and want it fixed now. If it's legacy and you're changing it, it's generally because it's broken and someone finally noticed.
- vonmoltke 13y agoIn my experience, cases where the system needs to be fixed right now are fairly rare, and in those cases the task is usually delegated to the person with the most system experience anyway.
- jheriko 13y ago"I took me 2 hours to figure out how to parse the RSS feed, extract the data I need using regex (since it was all inside a single tag) and present it in a table view." i hate to be negative or damning in anyway - you make many valid points. however what you did there is an awful performance imo. i suspect it comes from living in web circles too much. i mean... you used a regex? this is one of the rare cases where i would write a c program with old fashioned procedural logic and expect it to be done much faster and to a higher quality. also yes, good programmers perform very well in unfamiliar environments. not having the api you want is a common real world problem - learning new apis on the fly is a vital developer skill. the idea of an unfamiliar api should neither be daunting or challenging - unless it is of exceptionally poor quality (poor naming, no docs, no samples you must reverse engineer everything - but that shouldn't stop you either). also, i hear a lot about the value of regexes - be careful, this is a web centric view. regexes are a very limited parsing/recognition tool and outside of web development - they go unused for most such problems - they either aren't powerful enough or add a needless layer of complexity in the general case. as a concrete example most compiler generators will use regex for lexing but not for parsing at all - even repeated regex on a tokenised one line string is nowhere near as useful or practical as ll, lalr or especially glr parsing. they also add a layer of complexity... someone famously said something like "oh, you used a regex... now you have /two/ problems" good luck though. given more time and practice you will learn to eat these interviews up then spit them out with you rejecting them for making a poor first impression on you as a prospective employer... interviews work both ways after all.
- thezoid 13y agoLet's throw you into a high stress environment give you data you've never worked with before and on top of that, just for funzies throw some namespaced SOAP at you. Oh and here's the WSDL, we want you to use that too, no parsing it on your own by hand. A lot of people don't parse XML as much anymore. Most API providers have moved over serving up JSON and pretty much ask developers to only use that API. Also this company fucked up. So you can't provide access to an API, but here read this RSS feed instead of something like serving up a static JSON file from a server somewhere. As for the regex there's shipping, and there's doing it right. For all we know, they had to have it done before the 2 hours were up so they cut corners and got it done within the time requirement.
- ronilan 13y agoIt's like, really, totally, entirely, off-topic, but, like I heard, somewhere, that some companies, like might, may be using, sometime, the following puzzle in their hiring process: Imagine a world in which: 1. A players hire only A players; 2. B players hire C players; and C players hire D players etc. all the way down to Z players. Assume that: 1. The trickle-down effect from B to Z causes bozo explosions in companies. 2. Bozo explosions are bad. 3. No one knows what letter player they are. Develop a computer vision algorithm to minimize the risk of a bozo explosion. edit: puzzle concept source: https://www.goodreads.com/quotes/391717-steve-jobs-has-a-saying-that-a-players-hire-a https://www.goodreads.com/quotes/391717-steve-jobs-has-a-say...
- fhars 13y agoThat will solve itself once all the B players retire.
- thezoid 13y agoA players should work on pulling people in other categories into their category. If everyone works on making everybody better you can make the place better. Rejecting people because they don't match your idea of an A player (I'm assuming 'perfection') is pretty narrow minded.
- kabdib 13y agoI agree, it's narrow-minded. But it's SURVIVAL. The times I've had to work with mis-hires have been awful, miserable and very depressing times. Like, they made me not want to come into work. I was once the "human grep" for the mis-hire that sat across the hall from me. Constant questions; apologetic questions, but continual and unrelenting and stupid questions. Q: "Where does this function get called?" Me: "Search for it, please." Q: "What are the arguments to function X?" Me: "Please go find the function and see." Every few minutes, for MONTHS. Nothing I did seemed to help; this person was simply addicted to asking people about stuff that was literally in front of their face. Management didn't help ("this person is doing negative work"). Pleading didn't help. Getting them to save up questions for an "on the hour" chat didn't help. I wound up leaving that job. Should we help people in a lower "letter grade"? Yes, if they are teachable. Should we suffer? No. The simplest thing to do: Hire people better than you are, in general. Really try to do that and you'll find that your company won't rot from within, and people will be happier and tend not to leave.
- marcosero 13y agoParsing XML with a regex? I see why you have been immediately rejected
- vonmoltke 13y agoHe specifically said "since it was all inside a single tag". Without knowing what the payload of the tag is, its hard to say if regex was appropriate or not.
- kelseyfrancis 13y ago> its hard to say if regex was appropriate or not I'd say it's never appropriate to parse XML with a regex. Even if you're just looking for something "inside a single tag", there are just too many gotchas like entities, CDATA sections, etc. Why bother with (or forget) any of that when there are well-tested XML libraries for probably every language, and many languages have it in their standard library.
- vonmoltke 13y agoI think you and I are reading the statement differently. I did not read it as he was using regex to parse the XML; I read it as he as using regex to parse the text contents of a particular tag that he extracted using a standard XML parser.
- buerkle 13y agoOf course regex is appropriate in some cases. You parse XML with a standard API, then use a regex on the contents of a single tag. For all we know, inside the tag could have been "img: foobar", regex works great in that case.
- rickyc091 13y ago"That particular company’s APIs use JSON but they can’t give me access to the APIs, which I do understand. So instead I was given a URL to an RSS feed to work with. While that makes the task a bit harder for me since I never had to parse RSS feeds before, it also makes it even more pointless." The company could have just as easily saved a copy of the results from the private JSON api.
- trustfundbaby 13y agoSmall piece of advice: Sometimes you get rejected from interviews for what seems like silly reasons, and most of the time they are really stupid. But always remember there is someone out there that would have gone into that interview, and completely blown their minds, even if they'd asked them to complete the task blindfolded in Scala. Make it your goal in life to be that person.