7 ms·
Job Description as runnable python UnitTest
- eitally 16y agoI appreciate the concept but it's too readable. If you're going to do something like this as an actual test, why not funkify it a little bit to challenge the candidates? Still, great idea! Coming up next -- Job Description as an infographic!
- emehrkay 16y agoGive the candidate 10/15 before the interview to complete this. Run it and if it fails thank them for their time. I just might do something like this with some html/css/javascript.
- smn 16y agoYeah, truth in that. I'm needing to write a couple more like this, this is the first one. Next one will be an job description for a DB guy with interest in databases in the broadest sense. Not sure how to go about that one yet. I like the infographic idea, any other suggestions?
- RyanMcGreal 16y agoselect * from job_candidates where interest > 0 order by interest desc
- mahmud 16y agoI am sure eitally was being sarcastic. Also, why are you attempting to recruit people who are interested in a subject "in the broadest sense", as opposed to people who live and breath the damn thing? Recruiting people of marginal interest and passing familiarity sounds like a recipe for mediocrity, imo.
- smn 16y agoMaybe my bad choice of words. In the "broadest sense" I meant that we're looking for a DB person who's interested in both relational DBs as well as the complete other side of the spectrum. Still, I think a tongue in cheek infographic could be pretty cool as a job description. True, maybe not so much for databases.
- eitally 16y agoYep, but the infographic idea does sound fun. It might make more sense as a resume for a creative than a job posting, though.
- d0m 16y agoI think they're searching hackers who like clean code and who appreciate tests. It would be strange if they wanted to recruit this kind of people by writing obfuscated code. Also, it's more for fun then anything else. I mean, this could have been simply written on a pdf with: Django experience, >10, etc.
- jimbokun 16y agoAs a job candidate, seeing funkified code would cause me to worry that all of their code looked like that and make me less likely to apply.
- mahmud 16y agoHeh, job teasers are getting simpler and simpler. I remember in the late 90s they were "compile with GNU/Sun/SGI/HP toolchain, call the phone number that gets printed when you build on a big/small-endian machine". The early ones were funky C compiler weirdnesses that exploited word size, endianness, binary format and other machine quirks. This one is practically readable.
- deleted 16y ago[deleted]
- smn 16y agotrue, blame Python :)
- ciupicri 16y agoprint "2. Fork out this code, suggest improvements and submit those" [L141] So fork the code and suggest something funkier. [L141] http://github.com/praekelt/careers/blob/master/software_engineer.py#L141 http://github.com/praekelt/careers/blob/master/software_engi...
- craigts 16y agoprint("2. Fork out this code, suggest improvements and submit those") There fixed it for you :)
- ciupicri 16y agoThey might be using RHEL (Red Hat Enterprise Linux) which comes with Python 2.4 and in 2.4 you can't use print as a function. LE: python 2.5 -> 2.4 (bconway was right)
- bconway 16y agoTwo corrections: A.) RHEL 5.x (by default) comes with Python 2.4, not 2.5. B.) Yes you can. It is required in 3.x, though.
- pdelgallego 16y agoIt would be better if you just write the test, so the candidate in order to apply should fork, write a Candidate class and pull a request. BTW the position is in Cape Town?
- smn 16y agonot necessarily, but would be nice.
- jimbokun 16y agoPython scope still freaks me out. It's weird to me that the "candidate" referenced by FoundationEngineerTestCase is the same candidate instantiated at the bottom of the file, without ever being explicitly passed into an instance of that class. I would have expected: test_program = CandidateTestProgram(candidate) Furthermore, how is CandidateTestProgram connected to FoundationEngineerTestCase? Does it do a global search for subclasses of unittest.TestCase, then instantiate and execute them?
- digitallogic 16y agoReferencing the 'candidate' variable from within the test case is not a good approach as it's referencing a module global instead of an attribute. Additionally, it only exists when the module is executed directly, so if it's imported and run in a different manner a name error will result for every test that references. As for the TestProgram, it's inheriting routines from the base class in the unittest module that do introspection to find all test fixtures.
- njharman 16y ago1) I'm annoyed I can't enjoy looking at clouds (which I really do) and pass their test. 2) I'm annoyed by companies who think working for them is some great gift to me. Various wordings in this test exuded that attitude.
- smn 16y ago2 - wasn't intentional, what wordings exude that attitude in your opinion?
- njharman 16y agoI went back to find specific things for you and couldn't. The idea of "tricky" "test" is off putting. Making me jump through hoops just for the "honor" of being a possible candidate. OTOH, I could have just been a bad mood that day.
- famousactress 16y ago(sorry, gut reaction). This feels like a company who wants to seem like a company I want to work for.
- drv 16y agoSome of these tests seem backwards: "10 years software development experience." is translated as assert candidate.results['started_programming'] <= years_ago(10) That reads like "10 years or less" rather than "10 years or more"; I'd be wary of applying to a place that can't even get that right (although maybe your first job can be fixing their ad). Edit: Reading more closely, perhaps years_ago(10) returns the numeric year that was 10 years ago now, and 'started_programming' is an absolute year as well, in which case this test makes more sense. However, it's not intuitive to read this way...