

True hacker resume: CV as Python unit test - agconway
http://dibon.homelinux.org/~mark/test/resume.html

======
DanielStraight
Maybe I'm being a little picky, but I don't find this very compelling. There
are plenty of spelling and consistency errors. "Colaboration" is misspelled.
The names "can_use_editor" and "is_acceptable_workstation" are inconsistent.
It would be better to use "is_acceptable_editor" (or "can_use_workstation")
for consistency. Actually, since those are calls on a company object, a name
like, "allows_editor" would make a lot more sense. Coding style doesn't follow
Python conventions (spaces around equals sign and after commas). The test
"DynamicLanguagesAreInUse" doesn't clearly test what it says it's going to
test. Also, the line numbers and lines don't match up in my browser.

~~~
unshift
not to mention his assertTrue's in testSystemsUpAndRunning are completely
invalid. never in my life would i hire this person.

this should be a lesson: if you're going to do a "hacker" resume, it should be
perfect and actually parse/compile and run. otherwise it looks like some lame
gag.

and is putting things in "code" ever cute, clever, or funny? i submit it is
not.

~~~
enjo
My big issue is that he comes across as an ideologue... I want flexibility
from developers, not someone who makes very specific demands of our
methodology.

~~~
masklinn
Wait, he comes across as an ideologue for asking for an internal bug tracker
and a source control system? Or that code be reviewed?

Wow...

~~~
jarek
"Windows? _shudders_ ", on the other hand...

------
joeld42
This isn't a resume or CV, it's a list of requirements for a potential
employer. The actual 'resume' part was poorly formatted and overlong.

It would be much better if the resume was in code, that would be a cute
gimmick. (i.e. self.knowsLanguages( ['Python', 'C++', 'Ruby'] ) )

However, tricks like this are great if other programmers are reading it, but
can confuse HR people and easily get the resume tossed out.

~~~
pbjorklund
Totally agree. Having seen a fair share of CV's that would put a flair to it,
but also make the HR lady who's screening the CV's at BigCo go huh?.

Im all for redoing the whole CV as commenter suggests here and targeting the
right people with it whilst making the "real" CV shorter and easier to read.

Point here is that both CV's should stand out from the stack, but in different
ways based on the recipient

------
mccutchen
Shouldn't the

    
    
      company = YourCompany()
    

boilerplate at the top of each test method be factored out into

    
    
      def setUp():
          self.company = YourCompany()

~~~
diN0bot
mos def! it's a small thing, but maybe it says something about what he thinks
about and values. seems like abstraction and code maintability and
extensibility are not as high on the list as testing. tests are super
important, of course, but anyway can write tests. quality, IMHO and in all
code including tests, comes from good design.

------
cldwalker
In a similar vein, here's my executable cover letter in ruby,
<http://tagaholic.me/resume.html>. Running it opens my resume in your browser
(on a Mac). Got the idea from [http://macournoyer.com/blog/2010/02/23/how-to-
apply-to-a-job...](http://macournoyer.com/blog/2010/02/23/how-to-apply-to-a-
job/)

~~~
isamuel
Clever. I love how the code is itself prose, but is also executable and brings
up the resume when you run it. Nice work.

------
iron_ball
Ugh, he uses Yoda conditions. If two, the value is less than, Jedi you will
become.

~~~
subwindow
Oh, I didn't realize that had a name! My boss does that, and it is incredibly
irritating.

~~~
moe
May be irritating for some but good practice regardless.

Putting the constant left in a conditional means you will never miss an
accidental = instead of ==.

~~~
masklinn
> Putting the constant left in a conditional means you will never miss an
> accidental = instead of ==.

That's only useful for dumb languages

    
    
        >>> a = 5
        >>> if a = 3: print 'ok'; else: print 'nok'
          File "<stdin>", line 1
            if a = 3: print 'ok'; else: print 'nok'
                 ^
        SyntaxError: invalid syntax
    

Python simply does not allow assignments in conditional contexts.

~~~
moe
Dumb is a strong word, young padawan.

The difference between theory and practice is smaller in theory than in
practice.

~~~
masklinn
> Dumb is a strong word, young padawan.

I carefully weighted my words, and I rest my case.

------
joshklein
OP is right that this is a true hacker resume, in the sense that it's both
technically interesting and ignorant of the social realities of applying for a
job.

Also: the downloadable CV is more incomprehensible than the code. Bullets,
people. Good employers are looking at hundreds of resumes for good jobs. If
that one landed on their pile, they would not read it.

------
butterfi
poor guy... having a little fun with his CV only to get mauled by the HN
crowd. :-)

On a more serious note, not sure this resume would have made it past our HR
person, who is not a programmer and wouldn't have understood this at all.

------
j_baker
I actually used to write my resume in Python. It got me in the door easily,
but I think I ended up giving the impression that I was a one-trick pony who
could only do Python. I have a "regular" resume now.

~~~
pgbovine
perhaps you could create a polyglot resume:

<http://en.wikipedia.org/wiki/Polyglot_%28computing%29>

------
bockris
It's cute but it's probably not going to result in a job.

~~~
agconway
Well, as is pointed out, it will only result in a job if all the tests pass

~~~
abstractbill
The tests passing is apparently necessary, but by no means sufficient.

------
doki_pen
It's to bad that there is a glaring typo in the first sentence. If you are
reading this, fix the spelling!

Or maybe it's a clever filter for people who focus on the wrong thing. ;-)

~~~
pgbovine
_It's to bad that there is a glaring typo in the first sentence._

If you are reading this, fix the spelling!

(sorry, cheap shot!)

~~~
gabrielroth
Recursion!

~~~
isamuel
Recursion!

------
run4yourlives
It's rather presumptuous and obnoxious though isn't it? A CV is a listing of
your accomplishments and achievement, really. It's your platform to sell
yourself to others.

This page comes of to me more as "Are you good enough for me"? which to be
very honest sets the wrong tone to me when I wear my employer hat.

I'm not suggesting that shouldn't be a part of the process, but as an opening
line it's a little off-putting even if we do meet the standard.

------
Shorel
He also has a very standard resume here:

<http://dibon.homelinux.org/~mark/test/MarkRoddyResume.pdf>

~~~
city41
Ugh. I hate to criticize this guy some more, but that's one wordy resume. In
my experience it'll at best get a quick glance. To the point resumes are much
more effective.

~~~
zackattack
I recommend <http://www.jobspice.com> \- a YCombinator company.

------
afhof
I would be more impressed by a CV submitted in Brainfuck.

~~~
cag_ii
Clearly, Whitespace* would be a better choice.

* [http://en.wikipedia.org/wiki/Whitespace_%28programming_langu...](http://en.wikipedia.org/wiki/Whitespace_%28programming_language%29)

------
arthurdent
non PEP8 for mixedCase instead of CapWords for classes.

~~~
j_baker
The class is CapWords. Of course the method names aren't PEP 8 compliant, but
neither are the method names in the built in unittest library.

------
clistctrl
Do programmers need gimmicks? Last time I looked for a job, it took 1 week.
Certainly I'm no one special either.

------
ndimopoulos
Despite the spelling errors I really think that this is a very creative idea
and would definitely result in a job.

Creativity is often the reason one is hired.

I liked it!

