Finding Python people is hard.

…and finding Quality Assurance people with Python experience (especially advanced Test Engineering skills) is even harder.

The white oak guys at pycon talked about how they used python experience as a measure of skill/intent. Personally, having spent the better half of the last five years looking for people with good Python skill sets, and now looking to build out a serious team – I’m almost always in the position of hiring on people who know “just enough” and teaching them Python.

Teaching 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 grumble – either you teach QA people automation/test engineering, or you try to find a programmer who wants to learn/do test engineering and teaching them python. No – I don’t want programmers to “do QA” – I want them to write code which proves the product.

It’s a hard sell to both parties. You also don’t want QA people who view QA as subservient to Development, and Developers who don’t see QA as subservient to the same. I technically view QA as one discipline, Development as another, but Test Engineering as the Hybrid of the two – and you need a strong background in both. You are writing complex code to test and prove the product – code which can sometimes be as complex as the product itself.

I’m willing to teach anyone anything I know to help them – doing so helps me in the long term build a strong team. Just finding the right people is not-so-easy.

I said in an interview recently – when asked if I wanted to be a Software Engineer or a Software Test Engineer – that if I am writing code in either one of the roles, I don’t see the difference. You’re writing tools/code and trying to develop new/interesting things in both roles. If you are writing product code: you still have to write test code. If you write tools for testing: you’re writing “product code” (that needs testing code). The same pattern of write-test-write-test applies no matter what code you’re writing.

There’s nothing “less” about writing code that tests a product, just as there is nothing “unique” about writing the product code itself. Both must be tested, both are code. Would I like to write more product code? Sure – but I have to also write the tests that prove it anyway.

Just as an addendumCorey made a post, and Terry made a post too both discussing this issue. There’s also an awesome comment from another test engineer on the reddit discussion here.

  • Ryan Freckleton
    It just so happens that I got hired in a QA automation position because of my python experience.

    Sadly, management considered the lack of python developers such a big issue that we ended moving to Java.

    I'm located in Colorado (front range), but I'm not tied down, if you guys are still hiring after December ;-)
  • lozinski
    I count 1138 python developers listed at
    http://python.specialtyjobmarkets.com/Resumes
  • sujith
    i have 2 friends kader and jayesh
    they do python well
  • lozinski
    Post your resumes online.

    python.jobmart.com/Register
  • lolerskates
    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..
  • Where are you located, if you don't mind me asking?

    As for reading, check out a post where I link to an essential reading 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/
  • In Alberta, Canada.

    I will check your links out, python is something I have always been meaning to pick up. Too many other projects demanding my time though, makes it hard to focus on something new.
  • Doug Napoleone
    I just with the rest of the 'industry' saw it this way. While I agree 100% with everything you say, there are stereotypes at play here which are being reinforced by the market at large. I face the same issue with 'speech recognition'. For our group we end up almost never hiring anyone with a speech background as they just do not work out. Similarly, after 10 years doing speech, I doubt I could get a job in a different industry, even though my code and work, at a very real level, have nothing that is directly about speech recognition. We implement interesting algorithms and the tests to back them up in a reproducible way.

    NOTE: I think you meant 'writing' not 'righting', but that word also works in context ;-)
  • ... Damnit! I fixed the typo. That's what I get for posting mid-rant. Damned computers, who tests these damned things.
  • tshirtman
    I love python but I fail to get used to test my own code, and I currently have a job, but I'm not using python at work, python is the language I love and I use for my personal projects... I will try to learn unittest again asap, it seems a more and more important part of the work nowadays (and well, trying to sanitize devellopement process is a really important thing to do I agree).
    The issue is that it doesn't look like exiting to write test code, relieving, maybe, but we seems to prefer speed an thrill to stability and security.
  • See, "testing" is such a generic term that I don't think it gets the credit it deserves.

    Take for example - the perfect cluster. Ignore what it does for a moment, but imagine how you would test it. You would have to make a test that proves on a basic level, it does what it is supposed to do (store a file, compute pi). But how do you break it? How do you make sure that under no circumstances (random power failures, flaky processors) that it never stops doing what it is supposed to be doing?

    How do you prove it scales? How do you prove that is truly does what it does? Someone could reply "well, I ran it on my machine, and the units passed" but that doesn't show it's true capabilities, nor it's limitations.

    Someone once told me - QA is the identification of Risk - i.e: "you can ship this, but the following are it's limitations" - everything that you do with software once you are done compiling it (which is itself, a test) is a test - from the moment you look for security holes, to the second you push it to a live site.

    Test driven development is a logical extension of this - write tests that define what the product is capable of - then write to that. I don't agree with 100% of that, as I think it is possible to write a test no piece of software will pass, but you get the idea.
  • tshirtman
    Yes testing is a real challenge, and you can always make tests more precise, complex, and complete, your example is interresting, certainly a mind blowing problem, wich need more complexe test procedure than unittest I think.

    I will try to be more skilled in this area as there are interresting problems to solve.

    a last question: do you test your test code? ;)
  • Jerry
    Out of curiosity, what things do you look for in a Python developer? I like to think that I'm fairly knowledgeable in using Python, but I'm finding it hard to find any Python jobs in my area or would otherwise allow me to work remotely.
  • What area are you in? I've been seeing a lot of jobs pop up recently. Doing a work-at-home deal is sort of a tough sell for a lot of companies, I've not worked at a place with a complete "work at home" type of deal.

    I'm also one of those people that if I worked at home all the time, I'd go crazy or start talking to my cats.

    As for python experience - I'm generally looking for people who have working, competent knowledge, know the basic objects, understand what a namespace is, etc. Nothing terribly advanced because if you have the basics, you can easily be taught things like decorators.

    In a perfect world? I'd hire people who knew (and loved) metaclasses and twiddling all of the various __ methods on everything. In a utopia, I'd hire someone who could write to PEP 8 guidelines in their sleep.

    But we know that last one is a myth, like unicorns. :)
  • PKKid
    Does PEP8 say anything about white space between big chunks of dense code snippets?
  • Why you gotta be like that :)
  • Jerry
    I am in the midwest (Iowa). I only mentioned the work-at-home option in lieu of finding a company locally that would be looking for a Python developer.
  • Nes
    Python aside, finding the right people for technical jobs is hard, period.
  • Nes
    Python aside, finding the right people for technical jobs is hard, period.
  • Also true. Finding good people with a high level of energy and good problem solving skills doesn't seem like an easy task, period
blog comments powered by Disqus