Finding Python people is hard.

April 16th, 2008 § 21 comments

…and find­ing Qual­ity Assur­ance peo­ple with Python expe­ri­ence (espe­cially advanced Test Engi­neer­ing skills) is even harder.

The white oak guys at pycon talked about how they used python expe­ri­ence as a mea­sure of skill/intent. Per­son­ally, hav­ing spent the bet­ter half of the last five years look­ing for peo­ple with good Python skill sets, and now look­ing to build out a seri­ous team — I’m almost always in the posi­tion of hir­ing on peo­ple who know “just enough” and teach­ing them Python.

Teach­ing python is easy — but not always what you want to end up doing when you’re going fast in a startup (although, I’ve lost track of how many times I’ve done this).

Excuse me while I go grum­ble — either you teach QA peo­ple automation/test engi­neer­ing, or you try to find a pro­gram­mer who wants to learn/do test engi­neer­ing and teach­ing them python. No — I don’t want pro­gram­mers to “do QA” — I want them to write code which proves the product.

It’s a hard sell to both par­ties. You also don’t want QA peo­ple who view QA as sub­servient to Devel­op­ment, and Devel­op­ers who don’t see QA as sub­servient to the same. I tech­ni­cally view QA as one dis­ci­pline, Devel­op­ment as another, but Test Engi­neer­ing as the Hybrid of the two — and you need a strong back­ground in both. You are writ­ing com­plex code to test and prove the prod­uct — code which can some­times be as com­plex as the prod­uct itself.

I’m will­ing to teach any­one any­thing I know to help them — doing so helps me in the long term build a strong team. Just find­ing the right peo­ple is not-so-easy.

I said in an inter­view recently — when asked if I wanted to be a Soft­ware Engi­neer or a Soft­ware Test Engi­neer — that if I am writ­ing code in either one of the roles, I don’t see the dif­fer­ence. You’re writ­ing tools/code and try­ing to develop new/interesting things in both roles. If you are writ­ing prod­uct code: you still have to write test code. If you write tools for test­ing: you’re writ­ing “prod­uct code” (that needs test­ing code). The same pat­tern of write-test-write-test applies no mat­ter what code you’re writing.

There’s noth­ing “less” about writ­ing code that tests a prod­uct, just as there is noth­ing “unique” about writ­ing the prod­uct code itself. Both must be tested, both are code. Would I like to write more prod­uct code? Sure — but I have to also write the tests that prove it anyway.

Just as an adden­dumCorey made a post, and Terry made a post too both dis­cussing this issue. There’s also an awe­some com­ment from another test engi­neer on the red­dit dis­cus­sion here.

  • http://www.python.org Nes

    Python aside, find­ing the right peo­ple for tech­ni­cal jobs is hard, period.

  • http://www.python.org Nes

    Python aside, find­ing the right peo­ple for tech­ni­cal jobs is hard, period.

  • jnoller

    Also true. Find­ing good peo­ple with a high level of energy and good prob­lem solv­ing skills doesn’t seem like an easy task, period

  • Jerry

    Out of curios­ity, what things do you look for in a Python devel­oper? I like to think that I’m fairly knowl­edge­able in using Python, but I’m find­ing it hard to find any Python jobs in my area or would oth­er­wise allow me to work remotely.

  • tshirt­man

    I love python but I fail to get used to test my own code, and I cur­rently have a job, but I’m not using python at work, python is the lan­guage I love and I use for my per­sonal projects… I will try to learn unittest again asap, it seems a more and more impor­tant part of the work nowa­days (and well, <s>trying to</s> san­i­tize dev­el­lope­ment process is a really impor­tant thing to do I agree).
    The issue is that it doesn’t look like exit­ing to write test code, reliev­ing, maybe, but we seems to pre­fer speed an thrill to sta­bil­ity and security.

  • Doug Napoleone

    I just with the rest of the ‘indus­try’ saw it this way. While I agree 100% with every­thing you say, there are stereo­types at play here which are being rein­forced by the mar­ket at large. I face the same issue with ‘speech recog­ni­tion’. For our group we end up almost never hir­ing any­one with a speech back­ground as they just do not work out. Sim­i­larly, after 10 years doing speech, I doubt I could get a job in a dif­fer­ent indus­try, even though my code and work, at a very real level, have noth­ing that is directly about speech recog­ni­tion. We imple­ment inter­est­ing algo­rithms and the tests to back them up in a repro­ducible way.

    NOTE: I think you meant ‘writ­ing’ not ‘right­ing’, but that word also works in context ;-)

  • lol­er­skates

    Sounds like fun. But alas, I know no python. Can you guys point me at a primer? I can code asm, C, and all of the derivatives..

  • jnoller

    Where are you located, if you don’t mind me asking?

    As for read­ing, check out a post where I link to an essen­tial read­ing list and add a few entries of my own:

    http://jessenoller.com/2008/02/01/thomas-guest–

    Also, http://www.lightbird.net/py-by-example/

  • jnoller

    … Damnit! I fixed the typo. That’s what I get for post­ing mid-rant. Damned com­put­ers, who tests these damned things.

  • http://www.tirrell.ca/myframe lol­er­skates

    In Alberta, Canada.

    I will check your links out, python is some­thing I have always been mean­ing to pick up. Too many other projects demand­ing my time though, makes it hard to focus on some­thing new.

  • jnoller

    What area are you in? I’ve been see­ing a lot of jobs pop up recently. Doing a work-at-home deal is sort of a tough sell for a lot of com­pa­nies, I’ve not worked at a place with a com­plete “work at home” type of deal.

    I’m also one of those peo­ple that if I worked at home all the time, I’d go crazy or start talk­ing to my cats.

    As for python expe­ri­ence — I’m gen­er­ally look­ing for peo­ple who have work­ing, com­pe­tent knowl­edge, know the basic objects, under­stand what a name­space is, etc. Noth­ing ter­ri­bly advanced because if you have the basics, you can eas­ily be taught things like decorators.

    In a per­fect world? I’d hire peo­ple who knew (and loved) meta­classes and twid­dling all of the var­i­ous __ meth­ods on every­thing. In a utopia, I’d hire some­one who could write to PEP 8 guide­lines in their sleep.

    But we know that last one is a myth, like unicorns. :)

  • jnoller

    See, “test­ing” is such a generic term that I don’t think it gets the credit it deserves.

    Take for exam­ple — the per­fect clus­ter. Ignore what it does for a moment, but imag­ine how you would test it. You would have to make a test that proves on a basic level, it does what it is sup­posed to do (store a file, com­pute pi). But how do you break it? How do you make sure that under no cir­cum­stances (ran­dom power fail­ures, flaky proces­sors) that it never stops doing what it is sup­posed to be doing?

    How do you prove it scales? How do you prove that is truly does what it does? Some­one could reply “well, I ran it on my machine, and the units passed” but that doesn’t show it’s true capa­bil­i­ties, nor it’s limitations.

    Some­one once told me — QA is the iden­ti­fi­ca­tion of Risk — i.e: “you can ship this, but the fol­low­ing are it’s lim­i­ta­tions” — every­thing that you do with soft­ware once you are done com­pil­ing it (which is itself, a test) is a test — from the moment you look for secu­rity holes, to the sec­ond you push it to a live site.

    Test dri­ven devel­op­ment is a log­i­cal exten­sion of this — write tests that define what the prod­uct is capa­ble of — then write to that. I don’t agree with 100% of that, as I think it is pos­si­ble to write a test no piece of soft­ware will pass, but you get the idea.

  • Jerry

    I am in the mid­west (Iowa). I only men­tioned the work-at-home option in lieu of find­ing a com­pany locally that would be look­ing for a Python developer.

  • lozin­ski

    I count 1138 python devel­op­ers listed at
    http://python.specialtyjobmarkets.com/Resumes

  • tshirt­man

    Yes test­ing is a real chal­lenge, and you can always make tests more pre­cise, com­plex, and com­plete, your exam­ple is inter­rest­ing, cer­tainly a mind blow­ing prob­lem, wich need more com­plexe test pro­ce­dure than unittest I think.

    I will try to be more skilled in this area as there are inter­rest­ing prob­lems to solve.

    a last ques­tion: do you test your test code? ;)

  • sujith

    i have 2 friends kader and jayesh
    they do python well

  • lozin­ski

    Post your resumes online.

    python.jobmart.com/Register

  • Ryan Freck­le­ton

    It just so hap­pens that I got hired in a QA automa­tion posi­tion because of my python experience.

    Sadly, man­age­ment con­sid­ered the lack of python devel­op­ers such a big issue that we ended mov­ing to Java.

    I’m located in Col­orado (front range), but I’m not tied down, if you guys are still hir­ing after December ;-)

  • PKKid

    Does PEP8 say any­thing about white space between big chunks of dense code snippets?

  • jnoller

    Why you gotta be like that :)

  • http://jessenoller.com jnoller

    Why you gotta be like that :)

What's this?

You are currently reading Finding Python people is hard. at jessenoller.com.

meta