Drupal Programmer

 So you're looking for a Drupal Programmer? Someone to take charge of your new website? Someone with all the core skills needed to collect requirements, plan, design, execute, optimize, and market your Drupal website? While it's more likely to find an organization like acquia.com to have all the skills needed, it is possible to find someone who has the right stuff.   Here's what you need in your Drupal Programmer and why:

Warning:  The information listed here is not approved or endorsed by the drupal.org community or groups.drupal.org, in any way shape or form.  Some from the community agree with many of the points listed here.  Others strongly disagree.  Many feel that Drupal Creations does not have the right to put forward this arguement, in that we have such a glarring conflict of interest.  Others, go so far as to say this very website is an example of our sub-standard skills and why contracting our services should be avoided, in a nutshell.   Many feel that it is a lame effort at advertising our own services.  It's hard to argue the part about advertising. 

For those interested in contracting single Drupal Employees in a consultative role to redesign or re-architect their websites, please read http://drupal.org/node/51169 then read this blog post, giving you a frame-of-reference for the discussion.  Then read the discussion/debate at   http://groups.drupal.org/node/125864.  These three sources should give you enough information to contract a Drupal Programmer wisely.   Make up your own mind and good luck.  Drupal is great!

  1. Linux knowledge is a must.  Drupal and most other worthwhile Content Management Systems are installed on Linux hosts.  This means that whoever leads your Drupal project needs to know their way around a Linux host.  If your site goes down, and no one is available on the emergency service line from your hosting provider, your Drupal lead needs to login via ssh and fix it.  This requires command line knowledge of Linux. Ask your candidate what their preferred command line editor is. Google their answer. If it is something like VI or VIM, you're good.

  2. MySQL knowledge is a must.  While there are Drupal modules that can be used to compensate for a lack of phpMyAdmin knowledge, there is no substitute for a fundamental understanding of command line MySQL.  All Drupal data is stored in the MySQL database. Being able to sign in and manipulate that data is something that's regularly needed.  A condition common to older versions of Drupal is known as the white screen of death. The Drupal website just goes white. Depending on how crazy you get with contributed modules you might even encounter it in newer versions of Drupal. Rolling back to the most recent stable database is very often the fix. Doing this at the command line on a Linux host or through phpMyAdmin is the only way to fix it. There's no way around it.  MySQL knowledge and experience is a core requirement in a Drupal Programmer. Ask your candidate what their experience is with MySQL, and research the accuracy of the answer.

  3. Note:  Demonstrated skills with other mission critical databases works well here also.  For example PostgreSQL will also work well.  I'm told MariaDB and SQLite works well too, however, I do not have direct experience with these and so can't say for sure.   The cadidate you interview should make a case for whatever solution they feel is right for you, one way or the other.
  4. PHP is a must.  Drupal is built with PHP. PHP versions matter depending upon what functionality is needed on your site. PHP configurations often need to be customized for Drupal. PHP libraries need to be added. Drupal Modules and Themes are writeen in PHP. PHP knowledge is almost more important than knowledge of Drupal itself. Qualifying your candidates knowledge of PHP is not as easy in that many programmers, don't commit coding conventions to memory. Just ask them to discuss their experience with PHP as it pertains to Drupal. This should give you a good feeling of whether or not they know their stuff.

  5. CSS, and HTML  if you're looking or a one man/woman Drupal army, they have to know CSS and HTML fundamentals.   All content displayed on a Drupal site is rendered in HTML and CSS. The majority of Drupal site complaints are that content isn't being rendered properly. Most often the requests come as sheer panic. The Marketing manager, for example, is sending a scheduled newsletter to 5000 customers in an hour and the graphics aren't displaying properly. When this happens your Drupal Programmer will need to act quickly to fix the problem. CSS and HTML are a must. Ask them how they fix display errors. If the answer is something like: “I use firebug, then confirm there are no compatibility issues in IE and Safari”, you've got the right candidate.

  6. Security knowledge is a must.  If the files on your Linux host have the incorrect permissions or your php.ini file allows programs to be executed by the apache user, you can end up with all kinds of new and improved cracks from all over the world.   Installing up to date Drupal patches, often times isn't enough.  The whole host needs to be secure and your Drupal Programmer will need to know how to check that it is. Most hosting providers will not take ownership over the security issues related to Drupal. They'll even threaten cut off service, if the problem isn't fixed immediately. For this reason and many more, fundamental security knowledge is a must. Ask them if they've ever had a website compromised and how they went about fixing it? If the answer is yes, you know you're dealing with honesty and experience.

  7. Note: This is not to say that your site needs to be Fort Knox,  If you're running a simple brochure type site to provide information about your services/products and contact details.  Then you definitely don't need costly e commerce level security.  All you need is a hosting solution that will ensure site monitoring, reasonable hack resistance measures, and backups.
  8. Apache is the Web Server of choice for most designers.  There are others, but where Drupal is concerned Apache is the right choice. Knowing, at least, how to configure and restart the httpd is a must. Ask them if they're ever experienced the “Can't connect to local MySQL server” issue and how they fixed it. Google the answer. It's a common one related to either the MySQL configuration or the number of processes Apache allows.

  9. Note:  While we are old school faithful Apache here at Drupal Creations, because of the diversity in configuration, Nginx is also an amazing web server choice for Drupal.  It really depends on your circumstances.  What's important is that your Drupal Programmer is confident with the one mission critical webserver solution that works best for you.
  10. Software Design Methods are very important basics to know.  In the world of web design there are many processes or best practices that have been taken from software design fundamentals.  Agile software development is one such method that is commonly used in web design.  Employing Development, Staging, and Production versions of a site is another key method.  Using Version control systems such as CVS, Subversion, or Git that is connected to an IDE such as Eclipse is important.  While formal methods aren't always followed to the letter of the law, an understanding of how to do it right is key. This is particularly important in larger teams when the code can't be known by one individual. Just ask what kind of website design methods and processes they've used. This will tell you whether you're dealing with experience or not.

  11. jQuery and AJAX are both very nice tools in the hands of Drupal designer. They allow sites to do all kinds of cool cutting-edge things. While knowledge of them is not critical, exposure and awareness is key. Just ask, if they've done anything with either.

  12. Business Analysis is the fine art of mapping key business processes which are ultimately translated into web requirements, forms, user interfaces, roles, landing pages, and many other important website deliverables.  When Business Analysis is done right, a website truly saves money and time.  You can see the example in successful on-line businesses like ebay.  There are many different internal and external users of varying roles all interacting to make e commerce happen seamlessly. An understanding, at least, that business analysis is a critical success variable is something you should seriously consider in your Drupal designer.

  13. Project Management  is something that would be very nice, if not essential.  A Drupal project can be big and involve many stakeholders.  Creating development priorities, tangible development tasks, stories, and projects is critical, if everything is to come together nicely on deployment day. 

  14. Drupal itself is an essential skill.  Being able to answer all the questions on http://drupal-interview-questions.blogspot.com/ is not nearly as important as experience with Drupal. Ask them to discuss some of their designs, themes, modules, problems, and what brought them to a career in Drupal. Ask them what their Drupal.org username is. Look it up. Have they posted any questions, answers, modules, or themes? Ask them to describe their “going live” experiences and how they overcame the usual obstacles. This will give you a lot of information.

  15. Graphic design is a necessary skill.  While Drupal Programmers don't need to be great visual artists, they do need to know how to interact with Graphic designers.  One very important part of Drupal programming is in optimizing performance. A subset of this ongoing chore is making sure that the file size for all graphics and videos are very small. The bigger the graphic file size the longer the page takes to load. In our new instant-gratification world of mobile devices and Data plans, this is essential. They say if it takes longer than 3 seconds to load, users move on to your competition. Ask your Drupal Programmer to describe their knowledge and experience with Graphics design. If their answer is about converting psd files to themes and general optimization then you know you're on the right track.

  16. Search Engine Optimization is a must.  Do they know that content is still King? Do they know how to show you the return on your investment through Google Analytics or Awstats? Do they know that the SEO checklist module is the quick and easy way to the SEO sweet spot? After all, if your Drupal site doesn't get seen by your customers and audience, what's the point?

Keep in mind that a Drupal Programmer can't be an expert in all of these areas.  No one can. There just aren't enough hours in the day.  What's important, though, is that your Drupal Programmer have experience in these areas. Remember that the single greatest source for great Drupal Programmers is drupal.org and the user groups. Get your own user name. Join your nearest geographical on-line group. Post a job description. Make sure you outline the top 3 goals of your site. Make sure you include a paragraph about why your company is a positive place to be. You'll be glad you did.

 

PS If you want to double your candidates, allow telecommuting. Drupal Programmers love to work from their la-Z-Boy chairs. Guess where I'm writing this article? :)

Drupal Planet: 

Comments

12

https://docs.google.com/document/pub?id=1xaOK9dnBfJL-m-afBeMaBs2eE_8QRYU...

Not everyone has to be a programmer to make a great site in Drupal. If you look at my above list, you can just use an established Drupal host (Security - mostly taken care of), plop down a site, and work on building functionality/theme. Its almost an entirely different set of know-how. Even "Knowing Drupal" is a very broad category that's not necessary - one could make a great site and never even look at the API.

Feel free to use my list however you'd want.

I think you are missing some very important requirements:

1) Above all else: Communication skills
http://www.codinghorror.com/blog/2011/02/how-to-write-without-writing.html

2) Understanding how Open Source works. FOSS is a lot different from the proprietary or custom software cultures. While it doesn't have to be a job requirement to have experience with FOSS, it's something that you'll need to learn fast. One of the best places to learn is by getting involved in your local Drupal Users' Group.

Very useful, thanks for posting this.

Some points have good keywords in it. Also, a conclusion that it isn't actually necessary to know all those points. Couple corrections from my side:

- vi or vim isn't actually a sign of great linux skill. My fav definitely isn't vi. More like nano, but it depends. I do know how to use it, but it ain't my fav one. So these are not keywords of linux knowledge. Better would be to ask - where's DNS config on linux machine, it's mostly /etc/resolv.conf (newer desktop distro's tend to include that on interfaces config)

- "Can't connect to local MySQL server" isn't related to how much childs Apache allows. It's either mysql is down (99%) or mysql runs out of connections (or some other wicked stuff)



Jancis,

-VI, VIM, nano, or Emacs:  as long as the Drupal Programmer candidate has knowledge of one editor.  That's really what a company should be qualifying.  It should be an explanation of why they like it too.  

 

For example, "I prefer VI, or VIM because they are default installs on even the smallest Linux distributions.  Your knowledge of VI or VIM are transferable regardless of the type or size of Linux OS footprint on the host.  While it may sound trivial to have the command line editor of your choice installed on a web host, it's not trivial.  When working for big companies like Cisco, you don't just get an application of your preference installed by snapping your fingers.  If large organizations will entertain an application install request at all, you're usually looking at months before you'll see it.  Usually months more, before they'll get the necessary permissions through the red-tape checks and balances.  This applies to web hosting providers also, outside of dedicated host environments.  VI is the most common by far.  Choosing it saves time and speeds delivery."

 

If this is the answer,  that a business qualifying a Drupal Programmer's linux skills gets, they can rest easy.

 

-In so far as "MySQL" error messages are concerned.  The key is whether or not they've encountered error messages in general and can fix them.  

 

"First I checked the log files and Googled the errors messages I found.  I verified that my problems were the same as the reported conditions, on the MySQL forums.  Then I performance tweaked the httpd.conf files as well as the my.cnf file.  Before I finished I load tested Drupal to 5 times spike traffic highs.  I would have rather done it all on a dev box, but we don't have one, so I did it all live."  An answer like this  would work well here.  

 

Thanks for getting the conversation started.  I look forward to more similar comments.  Ideally, we'll have created a resource for businesses who are looking to hire an all-in-one Drupal Programmer.  This way small business are more confident about choosing Drupal overall.

 

Have a nice day  :)

 

Robbie Jackson

 

 

 

Real brain power on display. Thanks for that aneswr!

All this are an excellent resources for those who runs website through Drupal Module. Even those who think to publish content through drupal, this post seems an excellent source for them as we can prepare ourselves looking to the requirement of the website.

Custom Website Development

Drupal always being one of the best CMS, now I can see it rising at a rocket speed. It was word-press which was mostly used by majority of geeks who want to publish content regularly but now I can see number of community member increasing day by day and joining drupal group. 

Are you looking for a guide in order to be a excellent programmer, then click www.seapyramid.net where you can find more useful articles that will be a big help to start working with your program.

Chin
www.seapyramid.net
Mega Search

A nice piece of article that presents a complex subject like Drupal with such lucid and simple style. Leave alone begineers, even professionals with little experience( I mean practical use of Drupal module for designing sites ) are generally got confused with this module. One should keep the above points for any assignment regarding drupal, then it becomes simple. Voice of Customer analysis

Well honestly speaking that site is really useful for me keep sharing with us.....!

psd to wordpress

I love drupal because it can be fulfill my requirements that I want in my blog..

Add new comment