Paid affiliate advertisement

Seeking Professional PHP Programmer to Screen Programmer's Code

ep2002 - March 17, 2009 - 02:00

We are seeking an expert PHP programmer (knows Drupal as well) to screen & test short scripts from potential programmers we are looking to hire.

We are seeking someone who has been programming PHP for years who cares about quality & knows the signs of weak code vs. top notch code.

We know this will take maybe 10-20 minutes for each programmer's script we send you.

Please provide us the following:

1. What elements do you look for in code that makes it above average?

2. Have you done this sort of task before?

3. How long it would take you to get back to us once we e-mail you the script.

4. Your price per each 10-20 minutes.

Thank you

Hard to answer

deekayen - March 17, 2009 - 13:06

Expertise, regardless of the industry, is commonly recognized after about 10,000 hours of concentrated practice. The problem with answering the first question is that experts often have a hard time explaining how or why they did something within their realm of expertise. The reason is simple - they do it so much it's just natural to them. It's no wonder after so many hours doing something.

Some good programmers have put together some style rules through the Coder and Coder Tough Love modules, however that kind of thing won't be able to cover reviewing for code duplication or using PHP5 OO on Drupal before D7.

If you're wanting to test a potential hire, it'd be important to tell the reviewer whether you're wanting to take a generic PHP programmer and turn them into a Drupal programmer, or whether you're looking for a Drupal programmer. If it's the later case, you'll probably need to have their drupal.org user account track reviewed as well. The best Drupal productivity you'll get is someone who has been willing to be out, swimming in the Drupal sea, exposing all their newb along the way.

I think code quality follows a bell curve, and not a very tall one at that.

...But I'll try!

eaton - March 17, 2009 - 20:34

I spend a fairly large chunk of my time doing code review on crufty custom code living on clients' sites. Things that jump out to me as indications of quality:

  1. The usual coding standards stuff. Proper indentation, Proper use of key functions like db_query() and filtering functions like check_markup(), check_plain(), using internal APIs rather than hard-checking $_GET and $_POST, etc.
  2. High-level commenting. It's easy to litter TODOs and '// this is a fix for bug #25' through the code. Even satisfying the 'minimum requirements' for PHPDoc and so on can result in code that looks documented but still makes no sense. High-level explanations of what functions are intended for, how they should be used, and how they work together are absolute gold. It takes a really good communicator to capture that stuff in comments and/or a simple README, and it makes a world of difference.
  3. Using a light touch. Drupal offers enough hooks and plugin points that it's possible to bound it into submission, warping it to a particular workflow whether it likes it or not. Code that accomplishes its goals with as little "ripple effect" as possible, judiciously using hook_foo_alter() functions and clean overrides, impresses me.
  4. Forward-thinking use of the theme system. breaking out theme functions explicitly is often overlooked; breaking out tpl.php files for easier hacking of custom pages, custom blocks, etc is even less common. These are marks of someone who understands the Drupal APIs and is thinking ahead.
  5. Integration with other modules (when appropriate). If a custom module is building a list of filtered nodes and printing them out on a page, the developers should have a really good reason for hand-coding it instead of using the Views module. By the same token, use of 'heavy' APIs like views when it's not necessary (say, displaying the current user's email address by building an arg-driven view that shows profile fields) can suggest that the developers don't have a clear understanding of where performance tradeoffs lie.
  6. Smart use of Drupal's caching system. If the module does any heavy work (large-scale queries, processing of data, etc), proper use of Drupal's cache_set() and cache_get() functions can have a big impact on performance. They indicate that developers are thinking ahead, beyond the test server and towards the future when the site needs to perform under heavy traffic.
  7. Proper segregation of functionality. The giant 3500-line "Custom stuff for our site" module is a horrible antipattern. Sites that have their custom functionality split into bite-sized modules are a lot easier to maintain.

There are others, but those stand out in my head as positive indicators when I'm scanning code.

good stuff

Bacteria Man - March 17, 2009 - 21:47

Jeff, excellent post.

Re: commenting. I was taught no amount of commenting is a substitute for well-crafted code.

It's worth noting the original poster is looking for someone who can perform code reviews for all things PHP. A qualified reviewer would ideally need to have a solid OOP background and be well-versed in other popular frameworks like Zend, Cake and CodeIgniter.

Cheers,
John

-------------------------------------------------------

"I remember that sound. That's a bad sound."
-- Gwen DeMarco

Hmm, I find this MB to be

ep2002 - March 19, 2009 - 06:59

Hmm, I find this MB to be very difficult to understand. I'm a huge VB fan (code aside) & here there seems to be 2 different logins, one for groups (don't even know what the difference is) & one for the forum.

This got me all confused the other night as I wanted to post this hiring ad in the groups too, but I didn't even know how to add or find groups to sign up with.

I don't even know how to change settings in my profile (don't even see a way to do see one's profile), so I never received a notice that I had responses to this thread of mine .

Just some notes for the owners of the board from the pov of of a business owner & NOT a geek even though I feel like a geek, but not compared to you guys :) No offense to women.

Anyway, back to the subject at hand :)

Thank you to everyone for their comments, I still haven't found anyone b/c most people are just spamming their services & I don't tolerate spam.

A couple didn't address all the questions & we only accept applications from people who can read & follow ALL instructions.

So if I "think" we are going to use Drupal to build the application (I'm only just now learning about it), does that mean I have to get a Drupal programmer to screen code?

What if they are new to Drupal & just getting into it?

Should I assume that a programmer isn't good (with the times) if if they aren't into Drupal?

So far not one person above has mentioned security which scares me. I was taught that's THE most important part of an application/code & most programmers can't code with security in mind or don't care.

I'll try to remember to get back here tomorrow or the next day to check for responses & hopefully someone will tell me how to turn on the notification thingy LOL

Thanks & have a good night!

Michelle

Seeking top notch programmer for developing our applications

 
 

Drupal is a registered trademark of Dries Buytaert.