the blog for developers

How to Recruit a Frontend Hero – Interview Question Series

This is the first guest post on this blog. Sebastian Deutsch (@sippndipp) was kind enough to help me with this frontend topic. Sebastian Deutsch is one of the founders of 9elements.com. 9elements is a small software boutique with a strong focus on design that loves to build web applications

Recruiting a frontend developer for a large scale webapplication is a delicate task. It is that delicate because you don’t need a specialist, but you also don’t need a generalist. What you need is a T-Shaped person. Someone who is really good at HTML, CSS and JavaScript. Beside that you are seeking for someone who has also deeper understanding of SEO, some coding, template engines, deployment workflow – the list is almost endless.

A second problem is that there is no industry standard for the skillset you looking for. And that makes sense, since the techs we use to develop websites are constantly evolving. So what is the skillset I’m looking for? I have some questions in certain areas. I don’t expect the people to reproduce the knowledge as depicted here – It’s more like a tech talk. Sometimes I give hints and see how people react.

HTML/CSS

Q: What is the difference between strict and quirks mode?
A: It is a technique not to break old implementations as described here: http://www.quirksmode.org/css/quirksmode.html

Q: Could you roughly describe the box css model?
A: width/padding/border/margin

References: http://www.w3.org/TR/CSS2/box.html

Q: What methods do you know to realize columns?
A: cleardiv
clearfix (better one)

Q: What different clearfixes do you know?
A: Answer 1:

/* float clearing for IE6 */
* html .clearfix{
height: 1%;
overflow: visible;
}

/* float clearing for IE7 */
*+html .clearfix{
min-height: 1%;
}

/* float clearing for everyone else */
.clearfix:after{
clear: both;
content: ".";
display: block;
height: 0;
visibility: hidden;
font-size: 0;
}

A: Answer 2:

.clearfix {
overflow: hidden;
}

/* triggers has layout in IE6 */
.container {
zoom: 1;
}

References

  1. http://www.tjkdesign.com/articles/block-formatting-contexts_and_hasLayout.asp
  2. http://www.satzansatz.de/cssd/onhavinglayout.html
  3. http://www.yuiblog.com/blog/2010/05/19/css-101-block-formatting-contexts/

There are several flavours in clearing, but these are the essential ones. A bonus question on that topic (the people barely know it):

Q: Why is the “overflow:hidden” method considered harmful?
A: The subpixel font hinting on windows sometimes draws pixels outside the boxmodel. These will be cropped if padding of the box is 0.

Q: Assume we have a list. Each list item needs to be styled with an item seperator except the last one. How would you write the html/css?
A: good one

<ul id="items">
<li>one</li>
<li>two</li>
<li class="last">three</li>
</ul>

ul#items li {
border-bottom:1px solid #000;
}

ul#items li.last {
border-bottom:none;
}

A: bad one

<ul id="items">
<li class="seperator">one</li>
<li class="seperator">two</li>
<li>three</li>
</ul>

ul#items li.seperator {
border-bottom:1px solid #000
}

Q: What is specifity on CSS selectors?
A: If you have conflicting CSS selectors specifity defines the order in how the conflicts will be solved e.g. id before class.
References:http://www.htmldog.com/guides/cssadvanced/specificity/

Q: What are vendor prefixes?
A: -moz, -webkit, -o, -ms

Q: How do you arrange your stylesheets so that you can easily develop for Internet Explorer?
A: Include patches and hacks for the IEs using conditional comments.

Q: Are you familiar with CSS Frameworks?
A: At least one of the big ones (blueprint, 960, YAML).

Here comes another bonus question:

Q: Could you imagine a usecase where you won’t use a CSS Framework?
A: Yes, when you develop a large scale web application consisting of repeating elements. I would write my own framework and follow the rules of OOCSS http://wiki.github.com/stubbornella/oocss/.

Q: Do you know what responsive web design/media queries is/are?
A: Responsive web design as stated here http://www.alistapart.com/articles/responsive-web-design/

Javascript

Q: What javascript frameworks do you know?
A: One of the big ones jQuery/Prototype/YUI/Closure Library.

Q: What methods in javascript do you know to realize object inheritance?
A: prototype / mixins.

Q: Is it a good thing to mixin something to the array object?
A: No because you cannot predict the behavioural change of third party libraries (error or even worse performance).

Q: Describe roughly the concept of closures in javascript?
A: Since javascript is functional language functions can be nested. Inner functions can access variables from outer functions.

Q: Why this could be a harmful thing?
A: Wrong applied closures can have serious performance issues (e.g. the variables will never get garbage collected).

Q: What is function binding in javascript?
A: You can bind any object to a function call. When the function runs “this” will be the bound object.

References: http://alternateidea.com/blog/articles/2007/7/18/javascript-scope-and-binding

Q: Do you know what function currying is?
A: Function currying as described in here http://www.dustindiaz.com/javascript-curry/

Q: Do you know a server side javascript framework?
A: node.js [Stephan: Helma and RingoJS are others]

Q: What javascript framework would you use if you just develop for the iPhone/iPad/(…)?
A: A more lightweight one.

[Stephan:] What do you think one should ask when hiring a frontend hero, what do think one needs to know?

About Sebastian

Sebastian Deutsch (@sippndipp) is one of the founders of 9elements.com. 9elements is a small software boutique with a strong focus on design that loves to build web applications. Last year we created a little html5 demo that created a lot of buzz in the blogosphere.

About the author

stephan Stephan Schmidt has been working with internet technologies for the last 20 years. He was head of development, consultant and CTO and is a speaker, author and blog writer. He specializes in organizing and optimizing software development helping companies by increasing productivity with lean software development and agile methodologies. Want to know more? All views are only his own. You can find him on Google +

You can leave a Reply here. Of course, you should follow me on twitter here.

You can share this post!
Do you want to tell others about this article? Use the social bookmark icons to submit this artice to the service of your choice. Thanks.

55 Tweets 24 Comments

Leave a reply.

Comments

In the past I’ve let them build a dummy site (page) with a CSS and a JS framework for example, one can then see if they have classitis for example.

http://joshuaink2006.johnoxton.co.uk/blog/330/avoiding-classitis

Or argue classitis vs. specifity. We had such a discussion recently at my job.

For the list separator, if you’re allowed to ignore IE6 (which is increasingly an option) you can do it without any additional classes:

ul#items li + li { border-top: 1px solid #000; }

This uses the adjacency/sibling selector which you can use in IE7 upwards (and other browsers obviously).

This would not tell you anything about a “frontend hero” This just is asking can you answer every blog article I opened up and copied today? Have you heard of this corner case? Can you call my bluff that I have no idea what I am interviewing you about?

For instance.

“Q: What methods do you know to realize columns?” What? That makes no sense.

“Q: Why is the “overflow:hidden” method considered harmful?” Its not, your 1 corner case does not mean avoid it everywhere.

“Q: What different clearfixes do you know?”
I would look at you with a blank stare and ask wtf are you talking about? Where have you heard it called clearfix? That sounds like an internal standard class, not an actual term.

“Q: What are vendor prefixes?” Who cares?

“Q: Are you familiar with CSS Frameworks?” Yeah avoid them… They are a waste.

“Q: Could you imagine a usecase where you won’t use a CSS Framework?” Yes. Everytime you write css.

Jodo Kast

This article is ridiculous.

@Jodo: Then I assume you had some fun reading it? :-)

Venkman

I know it’s meant as a very simplified explanation, but the answer to the question about closures is not “rough” but “wrong”. (Pascal and many others that are not “functional languages” still support nested functions. And also inner functions being able to access the containing scope does not on its own create a closure)

Also I wouldn’t ask about “function binding” but more generally about function scoping and binding (to give the interviewee a little more context). And currying is a general programming concept. Not that is wrong to ask about it, but you could ask about a lot of other concepts too.

I agree on quite a few points – good frontenders are not that easy to come by.

Regarding the overflow: hidden clearfix, you sometimes need to define a width too I have found (can’t remember if it’s IE6 specific but even width: 100%; can be important to add). One of my favourite methods when I already have a container that I can apply it on, why add extra elements to your DOM?

proz

seems you’re looking for someone who reads the same articles as you do.

Its sad to see you consider css grids and hacks something that a frontend “hero” should use.

that oocss is baaaaad, look at the code:
———

1/2
Lorem ipsum dolor sit amet…

——-

classic case of classitis.

rofl can’t believe this got linked from hacker news.

btw fix the audience div and give it some padding, looks bad.

this list does have some useful info though, i don’t think i would hire someone just based in this questionnaire

proz

can’t even post

1/2
Lorem ipsum dolor sit amet...

@Proz: You know, there are different time zones in the world …

@Venkman: I assume that languages beside functional ones support closures.

proz

@stephan what does that suppose to mean?

You can’t even post code tags or anything like that. I can’t even show you where I think OOCSS has it wrong.

sad…

Tonny Staunsbrink

+1 for @CoryMathews (almost – since I do not agree in all points).

I would consider this an interview for certain design philosophy – not a test for the actual abilities of the “front end hero”.

BTW, I know designers who can make great looking pages (across the major browsers), but whom are poor javascripts developers – on the other hand i have seen backend developers who write great javascripts -usually those who don’t try to reinvent Java on the client ;-) .

nice roundup.
fronteers, ftw!

regarding which clearfixes does the fronteer know, what if their answer was, none. i am aware of clearfix, it’s purpose and what it does. but i clear my floats.
what say you to that?

[...] Code Monkeyism: How to Recruit a Frontend Hero – Interview Question Series (tags: resume) [...]

Another 2 question:
1. Who is Eric Meyer?
2. Which sites/blog do you visit?

c.

I’m just a nobody, but I am offended that you think using a bloated CSS “framework” makes you a “frontend hero”. I rolled my own toolbox, which includes a base CSS that I’m comfortable with, and more than happy to hack to pieces for the sake of optimization. As much as I dislike Ruby, SASS deserve more attention than any of those popular things that get passed off as “frameworks”.

Yes, I know what “clearfix” is, no I don’t have it memorized so I can spit it out at an interview. That’s what bookmarks and code snippet libraries are for.

On JS: What is variable hoisting? Or, a simpler way to ask, how are variables scoped in JavaScript?

Richard BF

There goes usability and accessibility.

Sebastian points out that these questions should mainly trigger a discussion, not necessarly a correct answer (there is sometimes no right or wrong).

Good developers are flavors, and you can easily identify one, if he goes wild when talking about css frameworks or whatsoever.

In my opinion a frontend developer doesn’t need to be a designer.
But he must be very good in structure and layout.
In other words – he doesn’t care if a button is glossy or has shadows, but he cares about its position in the app.

you misspelled separator on the fifth question.

Leave a Reply

What people wrote somewhere else:

Just published a guest post by @sippndipp on CodeMonkeyism: “How to Recruit a Frontend Hero” http://bit.ly/d2sptt

This comment was originally posted on Twitter

RT @codemonkeyism: Just published a guest post by @sippndipp on CodeMonkeyism: “How to Recruit a Frontend Hero” http://bit.ly/d2sptt

This comment was originally posted on Twitter

RT @codemonkeyism: Just published a guest post by @sippndipp on CodeMonkeyism: “How to Recruit a Frontend Hero” http://bit.ly/d2sptt

This comment was originally posted on Twitter

RT @codemonkeyism: Just published a guest post by @sippndipp on CodeMonkeyism: “How to Recruit a Frontend Hero” http://bit.ly/d2sptt

This comment was originally posted on Twitter

RT @codemonkeyism: Just published a guest post by @sippndipp on CodeMonkeyism: “How to Recruit a Frontend Hero” http://bit.ly/d2sptt

This comment was originally posted on Twitter

RT @codemonkeyism Code Monkeyism: How to Recruit a Frontend Hero – Interview Question Series http://bit.ly/d2sptt

This comment was originally posted on Twitter

RT @codemonkeyism: Just published a guest post by @sippndipp on CodeMonkeyism: “How to Recruit a Frontend Hero” http://bit.ly/d2sptt

This comment was originally posted on Twitter

How to Recruit a Frontend Hero: http://bit.ly/dmxX5U Comments: http://bit.ly/9O83FQ

This comment was originally posted on Twitter

How to Recruit a Frontend Hero http://dlvr.it/3JsMx

This comment was originally posted on Twitter

How to Recruit a Frontend Hero: Comments http://url4.eu/6i27M

This comment was originally posted on Twitter

How to Recruit a Frontend Hero – http://su.pr/1Wzyzx

This comment was originally posted on Twitter

ac

How to recruit a front-end hero: http://codemonkeyism.com/recruit-frontend-hero/

This comment was originally posted on Twitter

RT @PlanetScala: Stephan Schmidt: How to Recruit a Frontend Hero – Interview Question Series http://bit.ly/94yVgG

This comment was originally posted on Twitter

HNews: How to Recruit a Frontend Hero http://bit.ly/bS2O9E

This comment was originally posted on Twitter

http://tinyurl.com/338gddz
Code Monkeyism: How to Recruit a Frontend Hero – Interview Question Series

This comment was originally posted on Twitter

Code Monkeyism: How to Recruit a Frontend Hero – Interview Question Series – http://codemonkeyism.com/recruit-frontend-hero/

This comment was originally posted on Twitter

@baggio16 is this how to recruit you? How to Recruit a Frontend Hero – Interview Question Series http://bit.ly/cox0Z4

This comment was originally posted on Twitter

Sadly (ironically?) I would probably fail this test. At least the Javascript part: http://codemonkeyism.com/recruit-frontend-hero/

This comment was originally posted on Twitter

http://is.gd/dYUsJ – if I get 19/21 right without even having touched this stuff for more than 1 year, am I a frontend hero? -_-

This comment was originally posted on Twitter

How to Recruit a Frontend Hero http://codemonkeyism.com/recruit-frontend-hero/ (http://bit.ly/bbxoQD)

This comment was originally posted on Twitter

How to Recruit a Frontend Hero – Interview Question Series http://codemonkeyism.com/recruit-frontend-hero/

This comment was originally posted on Twitter

@honorarykiwi Something tells me this is right up your alley: http://codemonkeyism.com/recruit-frontend-hero/

This comment was originally posted on Twitter

mark … 然后自己也补习一下 ~ RT @codemonkeyism Code Monkeyism: How to Recruit a Frontend Hero – Interview Question Series http://bit.ly/d2sptt

This comment was originally posted on Twitter

RT @codemonkeyism Code Monkeyism: How to Recruit a Frontend Hero – Interview Question Series http://bit.ly/d2sptt

This comment was originally posted on Twitter

RT @codemonkeyism Code Monkeyism: How to Recruit a Frontend Hero – Interview Question Series http://bit.ly/d2sptt

This comment was originally posted on Twitter

How to hire a web javascript hero #javascript http://bit.ly/aJlrTX

This comment was originally posted on Twitter

How to recruit a web Html guru #css http://bit.ly/aJlrTX

This comment was originally posted on Twitter

RT @mrpaladin: How to recruit a web Html guru #css http://bit.ly/aJlrTX

This comment was originally posted on Twitter

How to recruit a web javascript hero #webdesign http://bit.ly/aJlrTX

This comment was originally posted on Twitter

How to identify a web Html hero #frontend http://bit.ly/aJlrTX

This comment was originally posted on Twitter

How to identify a web front end guru #frontend http://bit.ly/aJlrTX

This comment was originally posted on Twitter

How to identify a web front end expert #web2.0 http://bit.ly/aJlrTX

This comment was originally posted on Twitter

How to Recruit a Frontend Hero – Interview Question Series http://bit.ly/9wA51f #FRENDS

This comment was originally posted on Twitter

How to recruit a web front end hero #developer http://bit.ly/aJlrTX

This comment was originally posted on Twitter

good blog post: http://codemonkeyism.com/recruit-frontend-hero/

This comment was originally posted on Twitter

How to hire a web CSS guru #career http://bit.ly/aJlrTX

This comment was originally posted on Twitter

How to hire a web javascript guru #browser http://bit.ly/aJlrTX

This comment was originally posted on Twitter

How to hire a web javascript guru #browser http://bit.ly/aJlrTX http://goo.gl/fb/EjN1x

This comment was originally posted on Twitter

How to identify a web CSS hero #css http://bit.ly/aJlrTX

This comment was originally posted on Twitter

How to hire a web CSS expert #frontend http://bit.ly/aJlrTX

This comment was originally posted on Twitter

How to Recruit a Frontend Hero – Interview Question Series #html http://bit.ly/cae2RP

This comment was originally posted on Twitter

How to Recruit a Frontend Hero – Interview Question Series #css http://bit.ly/cae2RP

This comment was originally posted on Twitter

How to Recruit a Frontend Hero http://bit.ly/9XXlFC

This comment was originally posted on Twitter

Code Monkeyism: How to Recruit a Frontend Hero – Interview Question Series http://ow.ly/18tbqV

This comment was originally posted on Twitter

Perguntas que você deve fazer a um desenvolvedor Front-end em uma entrevista: http://migre.me/132cI

This comment was originally posted on Twitter

RT @pinceladasdaweb: Perguntas que você deve fazer a um desenvolvedor Front-end em uma entrevista: http://migre.me/132cI

This comment was originally posted on Twitter

RT @pinceladasdaweb: Perguntas que você deve fazer a um desenvolvedor Front-end em uma entrevista: http://migre.me/132cI

This comment was originally posted on Twitter

muito bom! :) RT @pinceladasdaweb: Perguntas que você deve fazer a um desenvolvedor Front-end em uma entrevista: http://migre.me/132cI

This comment was originally posted on Twitter

Code Monkeyism: How to Recruit a Frontend Hero – Interview Question Series http://bit.ly/coO1BC

This comment was originally posted on Twitter

How to Recruit a Frontend http://icio.us/m4ut2t

This comment was originally posted on Twitter

RT @codemonkeyism Code Monkeyism: How to Recruit a Frontend Hero – Interview Question Series http://bit.ly/d2sptt

This comment was originally posted on Twitter

How to Recruit a #Frontend Hero – #Interview Question Series http://zapt.in/N3m #CSS #HTML #JS

This comment was originally posted on Twitter

How to Recruit a #Frontend Hero – #Interview Question Series http://zapt.in/N3m #CSS #HTML #JS RT @luiscameroon: How to Recruit a #Fro…

This comment was originally posted on Twitter

P/ vc @Rockdanx // RT @pinceladasdaweb Perguntas que você deve fazer a um desenvolvedor Front-end em uma entrevista: http://migre.me/132cI

This comment was originally posted on Twitter

How to Recruit a Frontend Hero – Interview Question Series – http://is.gd/eofC7 #programming

This comment was originally posted on Twitter

Additional comments powered by BackType

Guide to CodeMonkeyism

Over the last 4 years I wrote many articles on this blog. To make it easier for you to find the relevant ones, I've organized them into topics.

Top 10

6 reasons why my VC funded startup did fail

Go Ahead: Next Generation Java Programming Style

Java Interview questions: Write a String Reverser

The dark side of NoSQL

7 Bad Signs not to Work for a Software Company or Startup

Is Java dead?

Scala vs. Clojure

Never, never, never use String in Java

No future for functional programming in 2008 – Scala, F# and Nu

Clojure vs Scala, Part 2

Java Developer

Is Java Dead?

Go Ahead: Next Generation Java Programming Style

Be careful with magical code

All variables in Java must be final

Never, never, never use String in Java

Bending Java: More readable code with methods that do nothing?

NoSQL Guy

NoSQL: The Dawn of Polyglot Persistence

The dark side of NoSQL

Essential storage tradeoff: Simple Reads vs. Simple Writes

Sharding destroys the goals of your relational database

The unholy legacy of databases

Startup/CTO

Development Dream Teams

6 reasons why my VC funded startup did fail

American vs. European style of Software Development

12 Things to Reduce Your Lead Time and Time to Market

The high cost of overhead when working in parallel

Essential storage tradeoff: Simple Reads vs. Simple Writes

Job Seeker

Another Good (Java) Interview Question

7 Bad Signs not to Work for a Software Company or Startup

Java Interview questions: Write a String Reverser (and use Recursion!)

Java Interview questions: Multiple Inheritance

As a Manager: What I value in developers

Top 10 Tips (+1) to Get a Pay Raise

Agilist

What Developers Need to Know About Agile

5 Practices Better to Change in Your Scrum Implementation

Scrum is not about engineering practices

ScrumMaster and ZenMaster: The joke of certification

What is Trans-Scrum?