Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Hire a Perl programmer and get a database guru free?

by wil (Priest)
on Dec 16, 2002 at 10:13 UTC ( [id://220149]=perlmeditation: print w/replies, xml ) Need Help??

We're looking to hire a Perl programmer for a short-to-medium-term project, maybe lasting 6 months in planning, development and production and maybe a few more weeks or months after in testing, maintenance and any future developments.

The budget set for this project is not dot.com style budget. It's relatively small. The project will require a lot of coding and development from a skilled programmer, but the project will work off a backend database. Now, this is the important part. I know many of us are hackers, programmers, whatever you may call us, but how many of us, or how reasonable is it to assume or to expect some level of database knowledge or confidence from the prospective Perl programmer?

Is it fairly reasonable to expect to find a Perl programmer who knows how to work well with databases and do any modifications to the database if needed? Or do Perl programmers know nothing about databases and one must hire a separate database guru to work with the database and create some sort of pretty front end for the programmer to access the data? I know modules exist for this, but what about if I needed the programmer to access and make changes to tables and create indexes?

Does such a person exist? And is it a reasonable expectation, if laid out clearly in the interview processes, that some database knowledge is required? How many of you would be comfortable with this position? How many of you take up this dual-role in your current job?

- wil

Replies are listed 'Best First'.
Re: Hire a Perl programmer and get a database guru free?
by kodo (Hermit) on Dec 16, 2002 at 10:49 UTC
    Hi Wil!

    Haven't seen you for a while, how's you new kind of job going? :)

    I think especially perl-web-developers usually have a solid knowledge of databases, because nowadays most websites rely on a DB, not on files.
    I would agree to such a job, and I don't think you'll have problems to find one. But you definitly should point out in your job-advertisement that perl+SQL (PLSQL or whatever)-Knowledge is required.
    Because there are also lots of sysadmin-like perl-coders out there who don't have a clue about DBs.
    But it's hard to find a real DB-guru + perl-guru in one, if your budget is low...

    giant
      Yeah, you're right. I'm going to have a difficulty finding any sort of 'guru' when the budget is low. But, I think, as you pointed out, the wording on the job advert is important here. I guess I need to stress that we're looking for a web-Perl developer that has experience delivering a database backend site.

      Good point about the 'sysadmin-perl' and web-perl guy. There's a definite distinction and I need to clarify that. Not being too stereo-typical, but I am likely to be looking at an older person when looking for a sysadmin-perl-guru (who has no idea on how to connect web to database to perl)?

      Thanks.

      - wil
Re: Hire a Perl programmer and get a database guru free?
by benn (Vicar) on Dec 16, 2002 at 11:36 UTC
    There's the old quote about 'all programming is database programming' - obviously we all deal with manipulation of data structures in some way, and just about every programmer I've interviewed in the last five years has worked with one DBMS or another. I've found the only thing to be careful of though is that some programmers are more inclined to manipulate the data through Perl than through SQL - doing a big 'select *' then parsing/filtering the results in various clever and obfu ways, rather than letting the DB / SQL do the work. A day spent getting a programmer to play with 'advanced' SQL (and mostly it only seems to take one day - if they've got a handle on Perl, then SQL is easy peasy <g>) can reap huge rewards.
Re: Hire a Perl programmer and get a database guru free?
by johanvdb (Beadle) on Dec 16, 2002 at 11:41 UTC
    Hi,
    Most Perl developers with a web development background will have database experience. I guess you must also look for a person who has strong OO skills. This way, you'll be sure that he will not couple the database too tightly to the application code.
    Trust me, there is a big difference between Perl developers out there. All have there own set of skills that are usefull for their job. But what you want is a generalist Perl application developer that has sufficient backing in database design, OO design and Perl coding.
    What I would do is to use the following keywords in the job advert; Strong knowledge of Perl, Database design and OO architecture.
    I even would go so far as to ask for prior art in applying the MVC design pattern ... as this is a classic design pattern that forces - if applied correctly - to break up the application logic and the coupling to the database and UI...
    Just me 2 cents ...
    Johan
Re: Hire a Perl programmer and get a database guru free?
by theorbtwo (Prior) on Dec 16, 2002 at 13:50 UTC

    Generaly, I can answer this simply: I'd certianly take up a position like this in my current job, if the job required it. I'm Director of IT and head gopher -- by defintion, if the job requires it, I do it.

    I wouldn't be comfortable doing it, though, and I /am/ a web programmer, by initial learning of perl. Really, I'm a generalist -- I could probably pick up the basics of DBI/SQL fairly quickly, but I would probably do it poorly for quite a while.

    Is it reasonable to expect to get a Perl programmer who can hold their own with the DB? Certianly, if you ask for it: "Perl programmer firmilar with DBI/MySQL wanted for (part|full) time employment in the (long|short) term. Around $N, depending on experince". Make sure you interview around their rel. experince in the various fields -- you're end up getting a number of people who are good on the DB end, but barely speak perl, and vice-versa. (BTW, if you want DBA-ish stuff -- designing a DB, admining it -- say so, if you mean "can query against an existing DB using SQL", say "SQL".)


    Warning: Unless otherwise stated, code is untested. Do not use without understanding. Code is posted in the hopes it is useful, but without warranty. All copyrights are relinquished into the public domain unless otherwise stated. I am not an angel. I am capable of error, and err on a fairly regular basis. If I made a mistake, please let me know (such as by replying to this node).

Re: Hire a Perl programmer and get a database guru free?
by Ryszard (Priest) on Dec 16, 2002 at 15:26 UTC
    IMO I think its reasonable to expect an experienced developer to have both good perl and good DB skills. There are lots to get wrong in both arena's (poor db layout, index strategy and normalisation, or, coupling of HTML with perl, unlayered approach and poor application design), and depending on the scale/scope of your project these may be critical areas you cannot afford to skimp on in your archeticture design.

    I think it would be unreasonable to ask a grad to come out and design an application that will scale in performance, extensibility and maintainability, however these are the cheapest carbon units on the market.

    The interview process is important to weed out the "potentials" from the "havent got a chance"'s, but bottom dollar, you get what you pay for.

Re: Hire a Perl programmer and get a database guru free?
by dga (Hermit) on Dec 16, 2002 at 16:45 UTC

    I am doing mod_perl based database driven web sites some of which have virtually no static content. I do all my own database design work.

    I would recommend being really specific in your expectations about the database stuff. Do you need someone who can query an existing database, ie. look at the schema and make up their own queries, or a DBA type person who can lay out nicely normalized tables and build the database 'from the ground up' so to speak. I would expect the first to come for less compansation than the last.

    Also this sounds like a strictly contract type job which tends to also up the ante.

    Also I would recommend trying to get someone who will use some sort of temaplating system for the HTML and style sheets so you don't need another programmer just to tweak the look of a page a bit in the future.

Re: Hire a Perl programmer and get a database guru free?
by talexb (Chancellor) on Dec 16, 2002 at 16:46 UTC

    Just to add one more vote .. If you ask for a Perl/CGI programmer, you are almost certainly going to get someone with at least a little DBI experience.

    Someone with just Perl experience might not have database experience if they've been parsing logs or CSV files, and perhaps generating graphs from that data.

    --t. alex
    but my friends call me T.
Re: Hire a Perl programmer and get a database guru free?
by princepawn (Parson) on Dec 16, 2002 at 15:24 UTC
    I presume you will be soliciting your job offer via jobs.perl.org and you can ask these questions after subscribing to the discussion list also.

    Carter's compass: I know I'm on the right track when by deleting something, I'm adding functionality

Re: Hire a Perl programmer and get a database guru free?
by sauoq (Abbot) on Dec 17, 2002 at 02:54 UTC

    You can find just about any mix of skills if you try hard enough and are willing to pay a fair wage for it. Finding a Perl programmer with DB experience would be pretty easy relative to, say, finding an accordion player with drilling experience on off-shore oil rigs.

    We're looking to hire a Perl programmer for a short-to-medium-term project, maybe lasting 6 months in planning, development and production and maybe a few more weeks or months after in testing, maintenance and any future developments.

    It is important, however, that you have realistic expectations. When you say, "maybe lasting 6 months" it doesn't give the impression that you've really thought very hard about it. When you say, "a few more weeks or months after in testing, maintenance, and any future developments" it gives the impression you have no idea what you are getting into.

    Where did you get those figures? You include "planning" in that 6 months. Planning what? Perhaps you mean "designing" instead because you really should already have a plan. You mention "production" by which I assume you mean "going into production" but you list "testing" as something to be done afterwards.

    Maintenance is an ongoing task. It isn't just completed in a few weeks or months. You should plan to have someone on staff that can perform maintenance on the completed system. Asking the contractor to perform continuing maintenance might cost a premium and be less than reliable.

    -sauoq
    "My two cents aren't worth a dime.";
    
Re: Hire a Perl programmer and get a database guru free?
by Starky (Chaplain) on Dec 17, 2002 at 03:13 UTC
    Most of the Perl programmers I know are reasonably competent with database work on platforms such as MySQL and Oracle.

    Over half of them are quite well-versed in database work and have built both the data and code for at least one reasonably sized application from scratch. About a third of them are triple threats: They could build a reasonably sized application from scratch including all of the required systems design and administration.

    It sounds like the person you're looking for may be someone who can do just that: Take a set of requirements and do everything except perhaps the system administration. They may be working in somewhat of a vaccuum if there are no other DBAs on staff.

    In this case, I would highly recommend focusing not just on whether a candidate has built data-centric applications using a database similar to the one you would propose to use, but on whether they have designed a data solution (e.g., everything from the table structure including constraints to indexes to triggers and stored procedures if necessary). Ask them to sketch an ERD for a schema they've designed on a whiteboard during the interview to make sure their skills live up to their claims.

    Being able to pull information out of a database is a whole different beast from designing a schema which is reasonably efficient, scalable, and extensible.

    I also second Ryszard's comment. With some projects you are best off hiring a bright but inexperienced (and inexpensive) coder. However, when you hiring someone to be a one-person band, you get what you pay for. If you are looking for someone to single-handedly take the project from requirements gathering to initial release or beyond, you will save yourself time, money, and heartache by paying more for someone with more experience.

    Hope this helps :-)

Re: Hire a Perl programmer and get a database guru free?
by Ionizor (Pilgrim) on Dec 16, 2002 at 20:28 UTC

    Personally I would be comfortable working in a job as you've described. I did a similar project, actually. I've taken SQL and Database design courses purely for my own interest and have a working knowledge of basic Database theory, normalization, RDBMSes, joins, views, and so forth.

    Knowing Perl and SQL, it was a snap to pick up DBI, especially with a little help from our friends at O'Reilly. I hit a few little bumps in the road but all in all the customer was ecstatic with the end product and the Engineer in charge of the larger project offered (unsolicited) to provide a reference.

    So in answer to your question, yes there are people who would be comfortable with the position. I did this project as a contract since my day job involves moving equipment around and cleaning hard drives but I think this qualifies as having taken up the dual role.

Re: Hire a Perl programmer and get a database guru free?
by digiryde (Pilgrim) on Dec 17, 2002 at 11:58 UTC

    Depending on what part of the country you are in, you can get both for a very good rate. I currently handle database, web, and application development. I use Perl as it so fast for putting solutions together. Oh, yeah, and I am dirt cheap for my employer. Why? Because most programmers around here wish they had a job in the field.

    Just advertise what you need to have accomplished in generic terms. Develop a database application using Perl, (DB engine name), ... Do you have any requirements for coding methodology? Do you have any requirements for collateral experience (atomic regulations, ...)? Do you have any requirements for relocation (some employers only take resumes from local applicants)? The list goes on.

    You might get tons of resumes. Do not let HR handle them unless you have no choice. HR knows what they do. They normally do not know what you do. I always found that HR gave us buzzword infested resumes (from every company I have been with) from people who knew how to market themselves, but were normally not as good at solutions. That almost guarantees getting the best salesperson as opposed to the best programmer. For some reason the best programmers rarely are the best at self promotion (resume). Look in the resume for someone who writes the way you like. Look for experiences where learning was a key part of the process (most jobs are about learning what the client needs and does before writing the code). Unfortunately, a college degree means little about those things.

    Once you have eliminated down to a few people, I find that one of the best things you can do to test the remaining candidates is to provide a situational test. Come up with several 20 minute tests. Each being a "puzzle" of some kind that requires reading an up front description (with holes in it), a short interview with "key" players and a solution. This will give you the best idea about what potential a candidate has and just how well they might engineer a solution.

    Good luck to you!

Re: Hire a Perl programmer and get a database guru free?
by petesmiley (Friar) on Dec 17, 2002 at 17:22 UTC
    Hmm, you looking for someone who knows DBI and SQL? Or, are you looking for a perl programmer who is a DB admin?

    If it's the first one, some perl gurus I know can give you that. Even though SQL is not the trivial chore some make it out to be. If it's the latter, I think you're asking for headaches.

    ie. I'll use an Oracle database, but don't ask me to install the software and set up the users and security, etc. etc. Any DB admin worth his salt will tell you that being a DB admin is a serious job ;)

    So be careful what you ask for. You may think you're asking for one thing, but actually looking for another. (like 2 people instead of one)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://220149]
Approved by rob_au
Front-paged by kodo
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (5)
As of 2024-03-19 08:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found