Might as Well Use Python

One of my jobs after being promoted to Director of IT at AddThis.com is to find a senior PHP developer. I’ve learned a few things from the search we’ve been doing over the past several months:

  1. What we really want is a senior developer, versed in PHP
  2. There are apparently none of those in existence who are not happily employed already
  3. According to a comparison of resumes received to my own, I am an uber-senior PHP guru.

First, know that I do not bill myself as an uber-senior PHP guru. I know what one looks like, because I worked with many of them while I was Editor in Chief of php|architect magazine some years ago. Those guys are sharp.

Anyway, the story is that we’ve received lots of resumes, most of which were unceremoniously tossed. We interviewed several people, though, and we found a lot of cut-n-paste coders, people whose idea of refactoring is moving from one CMS to another, and people who have only ever programmed in PHP and (I quote) “well, that and HTML”. Another candidate couldn’t tell me what the purpose of a left join was in spite of having database written all over his resume. Data validation, basic SQL constructs, basic security, basic problem solving — almost all of it was missing. We found *one* candidate that fit the bill, and he was manipulated into another position by a rotten recruiter (is that redundant?)

One candidate. We live and operate in the most densely populated state in the nation, sandwiched between two major urban areas (Philly and NYC), and in all of the resumes we received, *one* candidate knew enough PHP, in addition to knowing enough about development and stuff, that we would’ve hired him.

We might just as well use Python, eh? Sure, the market for Python developers doesn’t look very big on the face of things, but there are a few things working in our favor here:

  1. There are a couple of good-sized Python shops in this area (Ask.com, for example, apparently has a large Python dev shop in the area, if Dice is any indication), so there are *some* Python developers local (not that local is a hard requirement).
  2. All of the Python developers I know are developers *first*, Python coders *second*. If Python didn’t exist, they would probably still be developers. They have some generic notion of what a sane program looks like, and how things are typically done, the pros and cons of different techniques and patterns, etc.
  3. While I don’t consider myself senior at it, I happen to know and really like Python. I use it for all of my sysadmin coding needs, and am slowly getting into Django. This brings up the additional point that if work ever slowed for a Python web developer at AddThis, they could probably help me do some other really cool stuff on the back end of things to help me build and scale the next-gen version of AddThis. I would probably not code anything on the back end in PHP.

I thought I was alone in having issues finding a PHP developer, and I had just been plugging along with my search, but I’ve discovered that friends in other parts of the country, as well as in Canada, are having the exact same issues with finding PHP developers as I am. One buddy doesn’t even need someone as senior as I do, but can’t find a qualified candidate. Blech.

If you happen to have missed our job ad and are a senior PHP developer, send your CV to “jonesy” at the domain I work for. If you are a senior Python web developer, do the same.

  • http://timgolden.me.uk Tim Golden

    Heh. I’ve just had exactly the same problem finding a “Senior SQL Developer” here in London. (That’s the one in the UK). We binned a load, interviewed a few and found them completely unable to solve the kind of problems which I consider meat-and-drink for a day-to-day SQL developer. We eventually went for more junior developers and immediately found a couple of likely candidates a few years out of uni. We’ve offered one the job and we’re hoping that he’ll make the grade with some mentoring from our side.

  • http://karwin.blogspot.com Bill Karwin

    I feel your pain. I’ve been involved in recruiting developers for a PHP project. We required a set of skills that I thought would be ordinary for software engineering: coding of course, but also some experience with testing and with writing design specs and perhaps a bit of technical writing.

    I’d recommend the book “Smart and Gets Things Done” by Joel Spolsky. It’s a relatively small book by one of the best writers in the software industry, all about recruiting developers.

    One of his points:

    Employers should recruit directly in colleges. Your company should hire interns so you can evaluate students over time (and at a lower wage). Be prepared to mentor a junior person into the technical role you want to fill. If you find someone with a good head on his shoulders, he or she can learn all the technical details of PHP or whatever other tools or languages. But it’s a lot harder to teach basic critical thinking skills.

    Doing this takes time, probably 6-12 months. But you’ll end up with developers who are better suited to your company, more loyal, and it probably won’t cost any more than paying a recruiter (which you’re finding ineffective anyway).

  • David

    I am from Jersey myself but living in Illinois after recently graduating from University of Illinois at Urbana-Champaign win a degree in CS. My parents have strongly encouraged me to move back, but looking through dice.com, NJ doesn’t seem like the best place. I have seven years experience and want to work on web related projects, but my background is mostly C/C++, program optimization, information retrieval, python, javascript, and a bit (not expert) of sql, etc.

    I find that when browing dice, I see massive amounts of C# and Java for lots of in-house development for non software companies (finance, etc). I think this may be part of the problem with the area. Many people’s idea of “developer” may be what they were exposed to at a company that doesn’t do development for income. In an internal support role, they may not have had mentoring by high quality developers because the company likely didn’t see the value in getting the right people. I know some firms (finance) have a reputation for strong development teams, but I know many others don’t.

    Most of the developers I know don’t want to work at a company where they’re seen as an expense, where the top decisions concerning technology are made by those who cannot evaluate it, etc.

    In reference to your point #2, if the priority of so many places is to “get good people” then why is there such a massive emphasis on the person knowing x, y, z? Is it assume that a person would take years to learn these technologies? Do people not understand the similaries between languages? Like I said before, I do lots of Python, C/C++, JavaScript, but many recruiters have asked about Java and C#. I’ve used both, but not recently. I can’t believe a company wouldn’t give a recruiter some sort of instructions relating to finding a good person as opposed to checking off x, y, z.

    I’ve also seen (many times) on job postings “Must know cvs or svn and Bugzilla.”! This is after demanding Java, C#, MySQL, some Java framework(s), etc. Seriously, svn can be learned really fast. Do they assume that someone who hasn’t used svn is incapable of learning better software engineering methods? I use Mercurial and have never met a CS student who couldn’t figure it out in just a few minutes. Do these companies really not hire people who’ve never used Bugzilla?

    Lucky for me, my current position wanted someone who knew C++ and Java but didn’t mind if I was weak in one of them. They cared more about a background in information retrieval and optimization, so I guess they thought it would be faster for me to learn Java on my own than IR.

    Out of curiousity, what is the typical background of an applicant for a developer’s position out there? Are they mostly CS by education or have they switched to programming from something else? Do they present themselves as knowing “PHP” or “web development.” I chose to go the web development route so that included (for me) python, C++, information retrieval, optimization, javascript, some sql, linux, blah blah blah.

    Regarding Bill Karwin’s point about college recruitment – he’s right on. The companies that recruited directly at UIUC had their pick of the best students because most students only selected from those who recruited! Seriously, if professors can select their graduate students and researchers from the undergrad pool, surely employers can too. Most CS students at UIUC don’t know the hot technologies very well because you get so much work assigned to you that you really don’t have time. It was all I could do to take a full CS load, plus 20 hours/week doing research, plus one or two extra projects, plus helping my wife with my two kids that I really didn’t learn much C#, Java, PHP, etc.

  • http://schipplock.de Andreas Schipplock

    Hi,
    I’m from Germany and the current situation here is almost identical, so finding good PHP developers is almost impossible and as you found out those who are really good are already employed.

    I think the basic “problem” is the easy access to the language.

    I always imagine a guy that has his homepage served by some cheap webhost where he stores his generated or even self written html files. After some time he wants to add some tiny features to it and he finds out that his provider offers PHP so he starts looking around for tutorials and starts to hack. From that point he calls himself a “php developer” though he has absolutely no clue what he is talking about :).
    And even if he gets into trouble with PHP he would probably find a solution to it very quickly because the community around PHP is really big.

    Now replace “PHP” with Python, Perl or whatever and you’ll notice that this setup doesn’t work anymore because this guy having no clue can’t simply start to hack perl over fcgi, mod_perl2, python over wsgi or whatever because it would require him to take/make a serious effort to learn those things but he only would do if he has a serious intent. He would have to learn how to setup things, how things work and why…all these things aren’t really needed when he just wants to hack some php scripts in the first run. For him he simply needs to create a file.php and edit its content :).

    I don’t argue on PHP here because I know that it could be used well but I’m aware of the overall opinion and the fact that the access is really damn easy makes it hard to sort out the amateurs and that’s really a language specific problem but in return it has nothing to do with its quality.
    PHP wouldn’t be that popular when it wouldn’t be easy for everyone including the web hosting providers that set it up for their customers (talking about basic needs for the mass) so the result is a mass of people who are probably not even in a software development job position thinking they could make some bucks without spending too much time and effort.

    So most people simply end up knowing nothing.

    Fine, I hope you don’t put PHP on your ignore list in the end because there are good people out there. Just look for perl developers…they can convert to PHP in an hour :P. .

    Kind regards,
    Andreas.