
Hiring Front-End Engineers - martian
http://www.computedstyle.com/2010/12/hiring-front-end-engineers.html
======
jaspero
I felt that the author kind of mixed up front-end engineer and graphic
designer. Good front-end engineers(developers) are not necessarily good
graphic designers and vice versa.

I am a computer science graduate and front-end developer with four years of
industry experience and I started it around 10 years back as a hobby. I do
some graphic designing too but my strong domains are html,css and javascript.
All of them are self-learned as the author has mentioned.

Wherever I worked, I hated the fact that people kind of undermine the
importance of front-end. They bring in some software engineers and make them
work with me. Everyone thinks they know html and css and its pretty easy.

Since there are no way of measuring the quality of their code, I get really
frustrated seeing people undermine my domain. Even with this much of
experience I feel there is so much to learn and so much improvements can be
made.

~~~
sudont
What's even worse is when the engineers usurp _everything_ , from front-end to
UX and design.

As a designer, it pains me to see some interfaces that directly represent the
back-end model, not the user's task.

~~~
Dylanlacey
The reverse is just as bad.

Dear GDs: Let's not fight anymore, lets work together to make beautiful web-
babies.

Love, the Engineers.

PS: Did you lose weight? You look great! Lose the hipster hat.

~~~
Tyrant505
why yes, thank you. Did you get a tan?

~~~
BillSaysThis
are you suggesting I was not working during sunlight hours every damn day for
the last three months?

------
rimantas
Article is funny in a funny way: it kind of gets the gist right, but every
single point is debatable.

#1: same applies to back-end too.

#2: why not? And why is that front-end is specialist and back-end is
generalist? This point is very weak, and I'd say that the main problem with
back-end specialist coming to front-end is the tendency to dismiss it as
"easy".

#3: I have both. And prototype. Good JS developer does not make good front-end
engineer. Experience with popular frameworks _is_ a plus. Also, if you know
jQuery you will know your CSS selectors—that's a plus.

#4: Author has a point there. I'd not say good F-EE must be an artist, but a
good taste and design sense is a huge plus: with those qualities one can see
misalignments, broken rhythm, stray font, etc. without the need of designer to
point at that.

#5: Wrong. A good front-end engineer _must_ be able to operate those three
separate layers: structure (HTML), presentation (CSS), behavior(JS). There is
very little of that in print, not to mention other qualities that
fundamentally differ.

~~~
shawnee_
>>#5: Wrong. A good front-end engineer must be able to operate those three
separate layers: structure (HTML), presentation (CSS), behavior(JS). There is
very little of that in print, not to mention other qualities that
fundamentally differ.

Nah. The original point of #5 was

 _If you want to find good front-end engineers, look to the newspaper and
print industry._

This is because every design -- print or graphic-- needs a logical FLOW,
visually. People who migrated from (or started in) print know this, and it
ultimately makes the end user experience better. Knowing the three layers is
obviously necessary, but I don't think that's the point the author was
pointing out with respect to that data.

~~~
zacman85
Yes. This is exactly what I intended. Thank you for clarifying.

~~~
shawnee_
You are welcome. Must stick up for print people; my design career technically
began in middle school, on the yearbook staff. It is hard to forgot those
basic fundamentals when they are drilled in so young. Even today I spend far
more time pondering pixels, margin widths, font sizes, fonts, padding, etc
than any normal person should.

------
jhpriestley
_A div with an id of 'slideshow' contains five images, the first of which is
shown and the others are hidden using a display style of none. Using
Javascript, create a simple slideshow that cycles through the images,
displaying each image for three seconds at a time, looping back to the first
image when the end is reached. You cannot use jQuery or any other library._

Instead of asking something easy, with a completely unrealistic caveat that
makes it tricky for people who think that the "library" was actually a
positive invention, why not ask something _not easy_.

It sounds like you're looking for people who spend their time writing garbage
like

    
    
        while(node = node.parentNode){
            if(node.className.match(/foo/)) {
                break;
            }
        }
    

because `node.closest('.foo')` isn't _hardcore_ enough. That sounds like a
_crap_ engineer to me.

~~~
Isofarro
The point of understanding the fundamentals of DOM means being able to adapt
when the library abstraction you are using leaks. We are not in a state where
libraries have effectively or completely abstracted DOM and BOM, so sometimes
seeing past the library is necessary.

With developers who can't tell the difference between jQuery and JavaScript +
DOM, that is a barrier to being an effective developer.

------
bill-nordwall
I agree with Chris here - I wince a little bit every time I see a candidate
start off on the whiteboard with a dollar sign.

However, this article emphasis on Javascript at the expense of the other
technologies and soft skills that make a truly excellent front-end engineer -
HTML/CSS, solid understanding of SEO, Accessibility (WCAG/508/WAI-ARIA), etc.

I've interviewed plenty of front-end engineers who breezed through a similar
no-framework javascript question, but fell to pieces when I had them hand-code
a three-column, fixed width, centered layout in HTML/CSS (nav/content/sidebar)
with the stipulation that the content column appear first in the HTML source.

These candidates also tend not to know:

    
    
      - What rel="nofollow" means
      - What WAI-ARIA is.
      - What browsers were affected by and how to trigger Quirks Mode.
      - The difference between PNG-8 and PNG-24
    

Front-end engineering is a holistic discipline that demands a wide array of
skills across a big chunk of the spectrum between back-end developer and
visual designer. Overemphasizing Javascript skills at the expense of others is
a dangerous precedent.

EDIT: Fixed formatting.

------
grayrest
Proper front end engineering PRODUCES measurable, testable, predictable,
reproducible and stable solutions. If you're calling yourself an engineer, you
should be able to build a full application client side with separation between
the business logic, communication, and display code. If you're writing
untested spaghetti jQuery all over the place without at least writing custom
extensions, I object to you calling yourself an engineer even if you can bang
out a marketing site in no time flat. Call yourself an expert front end
developer with my blessings.

~~~
haribilalic
I know plenty of people who, even with an engineering degree, call themselves
a front-end _developer_. I think to a lot of developers, whether you call
yourself a a developer or an engineer or whatever else, is a personal
preference.

~~~
Stormbringer
If you go work with some real engineers (mechanical or electrical) you will be
quickly disabused of that notion.

Engineering is a mindset. Engineering is a more mathematical approach to the
coding (e.g. thinking in terms of theorems and proofs, and being aware of what
your fundamental assumptions are (and being able to challenge them)).
Engineering is someone else being able to pick up where you left off if you
get hit by a bus. Engineering is kicking the tires before you give that live
demo. Engineering is beating your own code to within an inch of its life.
Engineering is about divide and conquer. Engineering is referring to problems
with the code as defects and not bugs (calling it a bug is distancing yourself
from it, as though it crawled in there by itself; calling it a defect is
taking responsibility).

Engineering is best in life. Engineering is crushing your defects, seeing them
driven before you, and to hear the lamentations of the testing team (because
they're bored because everything works perfectly).

Engineering is listening to someone talk about the wonders of TDD, Unit
Testing and Automated Testing and thinking to yourself, "that's a nice start
but you've got a long way to go kiddo".

====

To be a developer is to sit in a circle, giving each other Dutch rudders, and
go on about how Agile you are.

====

I'll take one Engineer, _or someone who is keen and teachable_ , over a dozen
'developers' any day of the week.

~~~
toadi
Needed to look up the term 'Dutch Rudder'. Was quite surprised what it meant
;)

------
btipling
jQuery is not good for individuals who want to start out with JavaScript. I
recommend people who want to work in the world of JavaScript to know
JavaScript, read The Good Parts, read the Rhino Book, etc. Once you've got it
down then use jQuery. In addition I recommend reading the source code of
whatever library you use to see how it does things.

~~~
astrofinch
Why?

~~~
iron_ball
So you can answer interview questions.

------
tantalor
Solution to the puzzle; took about 3 to code minutes after I found the
thumbnails for the slideshow.

<https://gist.github.com/789200>

~~~
formika

      c = c < 4 ? c + 1 : 0;
    

What is this line of code saying exactly.. ?

~~~
ericras
<http://en.wikipedia.org/wiki/Ternary_operation>

    
    
      if (c < 4) {
       c = c + 1;
      } else {
       c = 0;
      }

------
geuis
These are very good points. I fit those requirements almost perfectly.

Self-taught: check Some college, no CS degree: check Play an
instrument(several): check Artist of type X: pseudo check (I'm an amateur
photographer)

I think it makes sense under those guidelines where when I interviewed with
Facebook in 2009, I ended the conversation after 10 minutes with one of their
engineers. _Completely_ the wrong fit for a frontend engineer worth their
salt.

------
rwhitman
Well, I like that I've been validated. I'll say that.

------
ojbyrne
Each point except for #3 has lots of weasel words. "Nearly every", "The back-
end engineers that break the mold", etc. Makes it un-actionable.

~~~
zacman85
If I had been more definitive, I would risk making the same mistakes that the
people who inspired this article were making. That is, to rigidly define what
a front-end engineer is in terms of completely arbitrary constraints. I wanted
to provide a set of commonalities that I have found through my experiences,
but not to explicitly say "this is what a front-end engineer has to be." A
good front-end engineer can come from ANYWHERE and I state that by saying that
there are clearly going to be exceptions to whatever I write.

------
gcb
Went trhu the youtube hiring process a while ago.

recruiter told me the interview would be just like google's. And i should
study classical algos and python/java/C++ Studied it for 4 weeks until the day
they wanted to call me. first question was a javascript one where the
interviewer wanted me to remember the getElementsByTagName(*) solution. Heck,
4 weeks watching MIT algo classes and reading TOC and doing the exercises in
python or C, i couldn't even remember proper JS syntax on the spot!

Think that was one of the most awful interviews i had. got so nervous on that
1st question that i blanked out trhu all the rest :)

back on topic, i got 5/5 on this list :) 1\. degree in design related area 2\.
learned FE before BE (could do a little desktop and embeded before the web
tough) 3\. Still prefer pure JS for my personal projects (at work it's YUI,
and open source contributions are mostly jquery nowadays) 4\. Who aren't? :)
5\. first job was at a newspaper

~~~
Stormbringer
Asking people questions that they could look up the answer to online in a
couple of seconds is pointless unless you expect them to be doing critical
patches to web code when the internet is down or unavailable.

Fundamentally the interviewing process is not a solved problem. So we have
flaws in the system. I agree that playing trivial pursuits is annoying, but
what else will they do?

------
Charuru
Chris Zacharias worked at Youtube right? The hilarious thing about this
article is that where he says Front-End Engineers he actually means web
designers, and Google doesn't have them. It seems obvious to me that to have a
good looking website you need good artists, and that #2 and #4 are such
revelations speaks volumes to Google's overall lack of respect for that kind
of thing.

Though Developer/Test Driven Design seems to be working out for them.

~~~
MJR
Web designer != Front-End Developer. For me the distinction is in the use of
graphical tools. If you spend your day working in Photoshop for part of the
time and you're not just slicing - you're a designer.

The front-end developer takes the design and builds it in code. All of it -
code, styles, interaction, etc. There are web designers who are also front-end
developers and vice versa, but the roles are not equivalent and they require
different skillsets.

~~~
Charuru
Yes I'm not saying they're the same role.

------
jsavimbi
He's 50/50 at best with his assumptions. He should work on them.

\- Web developer since before Bubble 1.0.

~~~
gscott
And who never needs to search for information on Google to develop a feature.
I want my whole platform written on the whiteboard first please. No Googling
for you.

