Searching \ for '[EE] Test for web developer candidate' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/index.htm?key=test+web+developer
Search entire site for: 'Test for web developer candidate'.

Exact match. Not showing close matches.
PICList Thread
'[EE] Test for web developer candidate'
2007\11\05@195342 by Vitaliy

flavicon
face
I got great responses last time ("[EE] Test forembedded developer
candidate") -- a big "thank you" to everyone who took the time to respond.

Our company is also currently looking for a web developer:

http://scantool.net/index.php?mode=displayPage&content_id=8

We want to find someone who can build and maintain dynamic websites.
Currently, the websites are built on PHP, MySQL, and a bit of JavaScript.
Unfortunately, the last web developer we had, moved to California last year,
and I'm not an expert in any of those three, by any stretch of imagination.
What's worse, there are cool technologies that I've only read about, like
AJAX and Ruby on Rails. So I would need questions *with* answers (and
comments!), as they are likely to be over my head. :)

To keep the discussion focused, I think I should mention that I already have
a list of "generic" people skills and programming questions. I plan to use
some of the questions from the previous thread to probe generic programming
experience. What I really am after, are PHP-, MySQL-, AJAX-, Ruby on Rails-,
and web development-specific questions.

Thank you all in advance.

Best regards,

Vitaliy

2007\11\05@201644 by Martin Klingensmith

face
flavicon
face
Have them write a web app that searches a database using ajax hinting -
answer is obvious, time how long it takes them to do it with whatever
online documentation they want (don't tell them you're timing them).
They get bonus points for modularity (CSS), looks (subjective), and
being able to crank something out without asking 100 questions (they can
write it to spec.)
I don't know if you're looking for a rubrick from me, you get what you
pay for with advice =)
-
Martin K

2007\11\05@211057 by Russell

flavicon
face
> Unfortunately, the last web developer we had, moved to
> California last year,

But, isn't that only a few 10's of milliseconds of Ping
further away?
Or is it the increased $ distance as well?


       Russell

2007\11\05@211516 by Vitaliy

flavicon
face
Martin Klingensmith wrote:
> Have them write a web app that searches a database using ajax hinting -
> answer is obvious, time how long it takes them to do it with whatever
> online documentation they want (don't tell them you're timing them).
> They get bonus points for modularity (CSS), looks (subjective), and
> being able to crank something out without asking 100 questions (they can
> write it to spec.)

OK, this at least gives me something to research. The big question is, how
long would it take a good programmer to write something like this?

> I don't know if you're looking for a rubrick from me, you get what you
> pay for with advice =)

Well, historically, I got the best advice for free. :) How about a $100
donation to the PICList?

VItaliy

2007\11\05@220913 by Vitaliy

flavicon
face
Russell wrote:
>> Unfortunately, the last web developer we had, moved to
>> California last year,
>
> But, isn't that only a few 10's of milliseconds of Ping
> further away?
> Or is it the increased $ distance as well?

No, we just prefer to have the people we work with, on-site. This particular
developer was working from home three days a week for a while, and
eventually we had to tell him "you have to physically be here, every day"
because his output plummeted, and quality of work suffered.

I'm not saying that outsourcing doesn't work, perhaps we just don't know how
to make it work. Or maybe outsourcing does not scale down very well -- large
companies can afford to send people with a good understanding of the problem
domain from US to Russia to coordinate the efforts. I've seen it done the
other way -- a project coordinator from India lived here in the US, and
helped the Indian programmers understand what the project managers in
Phoenix wanted them to do.

We're not there, yet. :)

2007\11\06@070349 by fred jones
picon face

Not so much outsourcing, just remote workers working from home.  I work for one of the largest banks in NA.  We are pushing for more and more work at home.  They save money on realestate costs that way.  For the most part, they actually get more out of people as they tend to be less tied to a clock and many put in more hours and turn out more work.  I do believe it takes discipline which I don't have.  I know if I worked from home I'd be distracted by thoughts of getting I2C working in slave mode on a PIC16F876a, which is currently what I'm doing in the evenings as a hobby.  Admittedly I'd rather be playing with PICs and I'd be easily distracted at home.  For many it works out great though.
FJ
> Russell wrote:> >> Unfortunately, the last web developer we had, moved to> >> California last year,> >> > But, isn't that only a few 10's of milliseconds of Ping> > further away?> > Or is it the increased $ distance as well?> > No, we just prefer to have the people we work with, on-site. This particular > developer was working from home three days a week for a while, and > eventually we had to tell him "you have to physically be here, every day" > because his output plummeted, and quality of work suffered.> > I'm not saying that outsourcing doesn't work, perhaps we just don't know how > to make it work. Or maybe outsourcing does not scale down very well -- large > companies can afford to send people with a good understanding of the problem > domain from US to Russia to coordinate the efforts. I've seen it done the > other way -- a project coordinator from India lived here in the US, and > helped the Indian programmers understand what the project managers in > Phoenix wanted them to do.> > We're not there, yet. :) > >

2007\11\06@095058 by Timothy Weber

face picon face
Vitaliy wrote:
> I'm not saying that outsourcing doesn't work, perhaps we just don't know how
> to make it work.

[assuming by 'outsourcing' you mean/include remote work]

IME it depends 100% on two things:

1. Ability of the remoter to work productively alone - includes the
discipline to "get down to it," not watch TV, etc., but also perhaps the
maturity to be able to go fold laundry while puzzling over some abstract
problem, for a net win/win.

2. Good cultural communication habits including understanding (and
agreeing on) the unique traits each of phone, e-mail, IM, version
control comments, wiki, and "convergence" (periodic
all-hands-physically-on-deck).  Both manager and remoter are comfortable
keeping tabs on one another, reporting, asking questions.

Both of these factors can be assessed in the conventional work
environment before trying it out, though I'm not sure I can state how to
do that objectively.
--
Timothy J. Weber
http://timothyweber.org

2007\11\06@100911 by Martin Klingensmith

face
flavicon
face
Vitaliy wrote:
> Martin Klingensmith wrote:
>  
>> Have them write a web app that searches a database using ajax hinting -
>> answer is obvious, time how long it takes them to do it with whatever
>> online documentation they want (don't tell them you're timing them).
>> They get bonus points for modularity (CSS), looks (subjective), and
>> being able to crank something out without asking 100 questions (they can
>> write it to spec.)
>>    
>
> OK, this at least gives me something to research. The big question is, how
> long would it take a good programmer to write something like this?
>
>  

Well I'm not a good programmer but when I did it, it took me several
hours. Presumably if you're hiring someone who does this for a living it
shouldn't take them more than an hour assuming they have a linux/nix
machine with all the relevant daemons installed and running.
>> I don't know if you're looking for a rubrick from me, you get what you
>> pay for with advice =)
>>    
>
> Well, historically, I got the best advice for free. :) How about a $100
> donation to the PICList?
>
> VItaliy
>
>  
How about a $100 donation to my student loans .. done.

-
Martin K

2007\11\06@102240 by Timothy Weber

face picon face
Vitaliy wrote:
> What I really am after, are PHP-, MySQL-, AJAX-, Ruby on Rails-,
> and web development-specific questions.

In the no-brainer, weed-out category (but with conversation potential)
for MySQL:

Design a database to store readings from test instruments.  There are
currently three instruments, testing different things, all of which are
sampled once per hour.  (Add more detail on request, perhaps.)

Diagram the database however you like.  Then write the following SQL
queries:

1. Create the database.

2. Add a new round of samples.

3. Get the most current three sample values.

4. Get the max, min, and mean sample values over the last 24 hours.

Key concept is to see how many tables they use.  A poor candidate who
doesn't really "get" the relational concept will use just one.  Really
good candidates will ask you for more details, such as whether all three
samples will always be delivered at exactly the same time.
--
Timothy J. Weber
http://timothyweber.org

2007\11\06@105718 by MatthewMucker

flavicon
face
1) Explain to me what a SQL injection attack is. How does it work and how do
you as a programmer prevent it?

2) Explain to me what a Cross Site Scripting vulnerability is. Why is it bad
and how do you as a programmer prevent it?

2007\11\06@141218 by Martin Klingensmith

face
flavicon
face
Timothy Weber wrote:
>
> Key concept is to see how many tables they use.  A poor candidate who
> doesn't really "get" the relational concept will use just one.  Really
> good candidates will ask you for more details, such as whether all three
> samples will always be delivered at exactly the same time.
>  

I don't understand how this makes the candidate "Really good" - could
you elaborate?
-
Martin K

2007\11\06@162209 by Timothy Weber

face picon face
Martin Klingensmith wrote:
> Timothy Weber wrote:
>> Key concept is to see how many tables they use.  A poor candidate who
>> doesn't really "get" the relational concept will use just one.  Really
>> good candidates will ask you for more details, such as whether all three
>> samples will always be delivered at exactly the same time.
>>  
>
> I don't understand how this makes the candidate "Really good" - could
> you elaborate?

Well, I was trying to come up with a classic relational situation; e.g.,
something like this:

Instruments
-----------
ID: Integer
Name: String
TestType: String
UnitsReturned: String

Samples
-------
SampleTime: DateTime
InstrumentID: Integer (reference to a record in the Instruments table)
Value: Float

But the non-relational way to go is:

Samples
-------
SampleTime: DateTime
AtmosPressure: Float
Temperature: Float
WindDirection: Float

Non-relational may be more efficient in terms of space and maybe time,
especially if you know that you will always get exactly three results at
exactly the same time.  But relational will be much easier to expand in
future (e.g., if you decide to sample two of those values at ten-minute
intervals and one every hour, or if you add three more values that
report out of synch with one another...), and more of the conceptual
model is expressed in the database schema.

So I meant that a "really good" candidate will not pick one or the other
before trying to find out which is more important in this case,
efficiency or flexibility.

An experienced but perhaps "less optimal" candidate would, IMHO, do it
the relational way; a perhaps experienced but under-educated candidate
might just bang out the single-table version because he doesn't really
understand the relational design pattern.
--
Timothy J. Weber
http://timothyweber.org

2007\11\06@200911 by James Newton

face picon face
3 tables: Instrument (id, name, parameter, scale), DOT (id, name, serial),
Readings (id, hour, value, InstrumentID, DOTID)

Err... Hang on, are the readings all triggered at the exact same time and
could the "once per hour" be some variable time during the hour? If so:

4 tables: TimeStamp (id, date time), Instrument (id, name, parameter,
scale), DOT (id, name, serial), Readings (id, TimeStampID, InstrumentID,
DOTID, value)

Sorry, but relational table design is something I can't seem to leave alone.
Not that I'm necessarily good at it, but when a problem is poised in that
area, some part of my mind derives great pleasure from solving it.

--
James.

{Original Message removed}

2007\11\06@203116 by Vitaliy

flavicon
face
James Newton wrote:
>3 tables: Instrument (id, name, parameter, scale), DOT (id, name, serial),
> Readings (id, hour, value, InstrumentID, DOTID)
>
> Err... Hang on, are the readings all triggered at the exact same time and
> could the "once per hour" be some variable time during the hour? If so:
>
> 4 tables: TimeStamp (id, date time), Instrument (id, name, parameter,
> scale), DOT (id, name, serial), Readings (id, TimeStampID, InstrumentID,
> DOTID, value)
>
> Sorry, but relational table design is something I can't seem to leave
> alone.
> Not that I'm necessarily good at it, but when a problem is poised in that
> area, some part of my mind derives great pleasure from solving it.

RDB junkie...

;)

2007\11\07@101518 by Timothy Weber

face picon face
James Newton wrote:
> 3 tables: Instrument (id, name, parameter, scale), DOT (id, name, serial),
> Readings (id, hour, value, InstrumentID, DOTID)

What's a DOT?

> Err... Hang on, are the readings all triggered at the exact same time and
> could the "once per hour" be some variable time during the hour? If so:

That's one of the questions I would look for!  You're hired.  :)

> 4 tables: TimeStamp (id, date time), Instrument (id, name, parameter,
> scale), DOT (id, name, serial), Readings (id, TimeStampID, InstrumentID,
> DOTID, value)

What do you see as the advantage of a TimeStamp table referenced by ID,
instead of using a native date/time type directly?

> Sorry, but relational table design is something I can't seem to leave alone.
> Not that I'm necessarily good at it, but when a problem is poised in that
> area, some part of my mind derives great pleasure from solving it.

I think of it as essentially object-oriented design, with a particular
implementation of object persistence that has related efficiencies.

(And that "can't leave it alone" bit is something else I'd look for in a
job candidate!)
--
Timothy J. Weber
http://timothyweber.org

2007\11\07@121749 by James Newton

face picon face
s/DOT/DUT/g Device Under Test. Not sure why I got an O for Under... Fired
again huh?

The only advantage of the separate table is that it technically enforces the
Relational Data Base rule of never duplicating information. I believe that
in every version of SQL commonly available, it would take no more space to
store a timestamp than it would to store a record ID number.

The advantage of the separate timestamps is that each of the three tests
might start at a different time during the hour and that could then be
recorded.

--
James.

{Original Message removed}

2007\11\07@135737 by Timothy Weber

face picon face
> s/DOT/DUT/g Device Under Test. Not sure why I got an O for Under... Fired
> again huh?

Ah!  Nah, I'm tolerant of spelling errors if the candidate can recover
with a Perl phrase.  ;)

> The only advantage of the separate table is that it technically enforces the
> Relational Data Base rule of never duplicating information. I believe that
> in every version of SQL commonly available, it would take no more space to
> store a timestamp than it would to store a record ID number.

I think at this point I would ask a candidate, "What are the
*disadvantages* of separating an item out into a different table?"

Vitaliy, I'm guessing you were looking for more cut-and-dried quiz
questions - this could be another follow-up question, but it's probably
a bit more open-ended.

> The advantage of the separate timestamps is that each of the three tests
> might start at a different time during the hour and that could then be
> recorded.

Yes indeed!

This line of questioning arises because it's similar to some hoary
legacy code (+database) I'm dealing with currently that jams the
analogous fields into one huge table.  Got a new substance you're
measuring?  Add five more fields to the table!  Bleah.
--
Timothy J. Weber
http://timothyweber.org

2007\11\08@040158 by Jake Anderson

flavicon
face
Timothy Weber wrote:
{Quote hidden}

Given that as a spec I would probably use just the one table. Mainly
because its simpler and easier and hence faster less error prone and
more productive. I'd ask if there was the possibility/probability of
more sensors or if the number of sensors is likely to change often. If
the sensor number is going to vary wildly then yeah multi table is the
way to go. 1 table to describe the sensor types (if this is needed, if
its only accessed within the one app its probably a waste of time) and 1
table to store the results of each reading with the time it was taken
against it. Perhaps a bigger question would be what would you index and
why? Something like this could generate loads of data, if its not done
right in 8 months time customers could be taking 5 minutes to query the
database.

I suck at create statements because i usually use a GUI to build and
play with databases but eh see what happens.
create table foo (
   value decimal,
   sensor_id int(4),
   sample_time datetime
   )

insert into foo (value,sample_time,sensor_id) values ("foo",NOW());
select value,max(sample_time) from foo group by value;
select min(value),max(value),mean(value) from foo where sample_time >
"blah" and sample_time < "eeek" and sensor_id = n;

Really the answer to this comes down to the goal of what you are
attempting to do. Hack something togther to solve some problem? Design a
long term system that will be used by other programmers down the track
or will be sitting on a customers site where they will make modifications.
You don't want a PHD in information systems approach that will take 3
weeks to implement the "best" system when a 5 minute solution will keep
the project rolling, with the assumption that in the future you may need
to migrate to a more "relational" model. I have seen examples of both
ends of the spectrum, I have seen one simple app that used 30 odd tables
that could have been reduced to 2 or 3 if you put 2 identifiers on the
rows rather than just the one, sometimes duplicating the data a little
makes life really easy for the programmer and can speed up critical
sections drastically (and cut down on the 4 page long SQL statements
(for a simple select)). At the other end i saw a survey system with 40
questions where each question was a column on the table, to my mind both
solutions are just as dumb as the other. One is more "technically
correct" but they were both a gigantic pain in the ass.

Perhaps one of the better things to look for would be things like naming
and style (points off for the use of "foo" as a table name, credit for  
verbose names on sensor_id and sample_time). Possibly ask them what
issues they might see with moving what they have written to a different
SQL system (IE the above was written with MySQL type SQL in mind and
might encounter difficulties with the decimal type particularly and
possibly the insert syntax (if you were going to do bulk inserts).

2007\11\08@100309 by Timothy Weber

face picon face
Jake Anderson wrote:
> Timothy Weber wrote:
>> Key concept is to see how many tables they use.  A poor candidate who
>> doesn't really "get" the relational concept will use just one.  Really
>> good candidates will ask you for more details, such as whether all three
>> samples will always be delivered at exactly the same time.
>>  
> I'd ask if there was the possibility/probability of
> more sensors or if the number of sensors is likely to change often. If
> the sensor number is going to vary wildly then yeah multi table is the
> way to go.

That's what I was getting at - doing it as one table is not wrong,
depending on other requirements, but doing it as multiple tables just
requires grasping an additional concept.  Asking about
priorities/flexibility puts you in the "superior" category right away.  :)

> Perhaps a bigger question would be what would you index and
> why?

Excellent point.

> I suck at create statements because i usually use a GUI to build and
> play with databases but eh see what happens.

Yeah, me too.  I would make it "open book."

> Possibly ask them what
> issues they might see with moving what they have written to a different
> SQL system (IE the above was written with MySQL type SQL in mind and
> might encounter difficulties with the decimal type particularly and
> possibly the insert syntax (if you were going to do bulk inserts).

If I received even the beginnings of a good answer to that question, I'd
be too busy preparing the contract, canceling further candidates, and
trying to squeeze more money for salary out of the budget to listen.  ;)
--
Timothy J. Weber
http://timothyweber.org

2007\11\09@025126 by Vitaliy

flavicon
face
Timothy Weber wrote:
> Vitaliy, I'm guessing you were looking for more cut-and-dried quiz
> questions - this could be another follow-up question, but it's probably
> a bit more open-ended.

You're right, Tim. :) My knowledge is limited to a brief encounter with SQL
in college, and more recently perusing a couple of books on the subject.

I love asking open-ended questions about a subject I know a lot about. But
with a subject that I'm barely familiar with, open-ended questions are not
the best way to go. I may not be able to tell whether the answer is right or
wrong, and worse yet -- open questions invite questions from the one being
asked! I may end up looking like a total moron. :)

Really, I just need the cut-and-dried questions to help weed out those that
don't know the basics, then hire the guy or gal that seems like they
actually know something, and hope for the best. If the person turns out to
be a great developer (based on their work), it would be their job to put
together a good set of open-ended questions, and interview their future
teammates.

2007\11\09@123222 by Timothy Weber

face picon face
Vitaliy wrote:
> Really, I just need the cut-and-dried questions to help weed out those that
> don't know the basics, then hire the guy or gal that seems like they
> actually know something, and hope for the best. If the person turns out to
> be a great developer (based on their work), it would be their job to put
> together a good set of open-ended questions, and interview their future
> teammates.

Makes total sense.

I'm having a hard time coming up with similar weed-out questions for
PHP, JavaScript, AJAX, etc. - all I can find are either the spelling bee
questions ("What's the function that does X") or the mini-project
assignments ("Implement Y and Z in an hour") or the open-ended ones
("What are some common security threats and how do you prevent them with
<tool>?").
--
Timothy J. Weber
http://timothyweber.org

2007\11\09@125024 by Bob Blick

face picon face

--- Timothy Weber <spam_OUTtwTakeThisOuTspamtimothyweber.org> wrote:

{Quote hidden}

I also like to present someone with an example
(circuit diagram, pc board layout, code, etc) and ask
"what's the first thing you'd do to improve this?"

Cheerful regards,

Bob

2007\11\09@165221 by Vitaliy

flavicon
face
Timothy Weber wrote:
> I'm having a hard time coming up with similar weed-out questions for
> PHP, JavaScript, AJAX, etc. - all I can find are either the spelling bee
> questions ("What's the function that does X") or the mini-project
> assignments ("Implement Y and Z in an hour") or the open-ended ones
> ("What are some common security threats and how do you prevent them with
> <tool>?").

Have you ever considered moving to Arizona? ;)

I've thought of questions along the lines of: "What is [Technology X]? In
which situations would you use it? What are the (dis)advantages? How does it
compare to [Technology Y]?"

Or the reverse: "Here are the project requirements. Which technologies would
you employ for this project?"

Can you guys help me fill in the blanks? :)

Personally, I would be looking for the candidate to select the largest
building blocks available, as opposed to reinventing the wheel. Tony Smith
provided a great example:

> Excel + 'Get External Data' + Autorefresh + PivotTable/PivotChart keeps a
> lot of people happy, and it's dead easy to pull stuff off the web or a
> database, summarise it in a pretty graph, and have it refresh every few
> minutes (aka dashboard apps).  The last guy hadn't finished rambling about
> he'd use XML, AJAX and Java and many other letters of the alphabet when I
> showed him the finished result.  He hasn't spoken to me since  :)

THAT's what I want to see. :)

2007\11\09@174556 by Timothy Weber

face picon face
Vitaliy wrote:
> Have you ever considered moving to Arizona? ;)

Too hot, not enough water, not enough relatives nearby.  ;)  But thanks!!

> I've thought of questions along the lines of: "What is [Technology X]? In
> which situations would you use it? What are the (dis)advantages? How does it
> compare to [Technology Y]?"
>
> Or the reverse: "Here are the project requirements. Which technologies would
> you employ for this project?"
>
> Can you guys help me fill in the blanks? :)

Unfortunately, I don't think I can come up with any good simple,
weed-out questions like this...

... but even if you don't feel confident in your own knowledge of the
topics, I think you should present some of your upcoming projects
anyway, ask those questions (what to use, advantages/disadvantages),
see what they can teach *you* in the interview, compare what various
candidates say, and see how your innate BS-detector feels.  But of
course, that's back to the interview, not the weed-out session.

{Quote hidden}

Agreed!  It's a great sign when someone's got pet tools that they feel
passionate about and proud of, and when they can articulate what tasks
those tools are good for.

(Presumably Tony isn't looking for a job either... ;)
--
Timothy J. Weber
http://timothyweber.org

2007\11\20@202934 by Gerhard Fiedler

picon face
Vitaliy wrote:

> We want to find someone who can build and maintain dynamic websites.

A side comment: in general: I think that there are by now enough mature
CMSes out there that you should really think it through whether
custom-programming dynamic sites is worth the effort, or whether a CMS
doesn't fit your bill better. In which case you'd get someone with proven
experience in the CMS of choice and that person sets up the site using a
CMS -- after which you have it much easier to make changes yourself than
with a custom-programmed website.

Doesn't fit every situation, but my hunch is that it fits a lot more than
it's used for. See
<http://en.wikipedia.org/wiki/List_of_content_management_systems>

Gerhard

More... (looser matching)
- Last day of these posts
- In 2007 , 2008 only
- Today
- New search...