

Ask HN: What should a Front-end engineer know? - voidfiles

Let's say a publisher wanted to make a book, and focus on the job of a front-end. What should that book talk about? What do you think the responsibilities of a frontend are?<p>Is the job clearly defined, or is it still something that people disagree on. Is a FE someone who only works on JS, HTML, and CSS, or do they do some kind of server side scripting as well?
======
briandoll
I've hired several front-end engineers in the past that didn't work out, due
to a gap in their skill set.

Beyond the technical requirements of cross-browser front-end development using
HTML, CSS and JavaScript, a front-end engineer also needs to: \- Know how to
use various source control systems. This is huge. You can't ship what you
don't commit. \- Know enough about various template languages (for Ruby, PHP,
Python, etc.) to wrap your UI around dynamic template code. If you only
deliver static pages, someone else has to do all the integration work. \- Be
able to do basic image manipulation. Stopping progress because you have to
wait to get an image resized doesn't work anymore.

Someone with these skills, by the way, who is efficient, knowledgable about
good CSS/JS practices, and can work with a variety of template languages, may
be the most in-demand position right now. This is certainly true in the bay
area. In fact, if this is you and you're looking for work, drop me a note!

~~~
voidfiles
Good try, but I am happy where I am at.

------
allenc
Mmm...I personally see a distinction between front-end developer and front-end
engineer. What you're describing sounds like a FE dev.

A FE Eng. is still a software engineer, which means you ought to be able to
pick up any backend language, be it Python, Rails, PHP, or a Java/C++ service.
A lot of the time you'd be tasked with bugs/features that require a lot of FE
work, and some backend work as well; it's so much more efficient for you to
just write the backend handlers, esp. when it's usually a stone's throw away
from an ORM layer or a simple SQL call.

I'd also consider knowing something about UI/UX to be a nice bonus. In
reality, your UI designer isn't going to provide mocks for every page and
every interaction; you're going to have to fill in the gaps, and probably do
so without a huge dropoff in quality. At the same time, I usually find myself
bringing another perspective from the UI side when talking w/ the designer,
and since most places only have one UI guy it's valuable for them to get
feedback, even if it's from someone not at the same level.

------
Travis
I think, traditionally, front-end has meant html/css/js. With the promise of
node, however, and other blending of server and client side technologies, that
may not necessarily be the case. Also, beware people who seek to clearly
delineate between titles. no jobs are so clearly defined in reality.

If I were to write a book on front end engineering (in addition to the items
already mentioned), I would make sure to include the science of UX.
Specifically, the analyses done by Jakob Nielson at UseIt.com. I would discuss
some psychology, so that your interface and your site objective are aligned. I
would also have them learn some copywriting skills (the concepts of landing
pages should be well covered).

Also: analytics, social media (so much of it is done through widgets now),
user testing.

------
anm8tr
The difference between a dev and an engineer is a bit semantic. I would say an
engr has the additional task of being a leader, overseeing the project, and
implementing the QA.

That said, no, it's not clearly defined, and there are dozens of not hundreds
of different tasks a FED could have a role in. Graphical design, UI, UX,
usability, SEO, and multimedia just to name a few.

Probably most critical though, a FED has to really keep up with emerging
technologies. HTML5 didn't even exist a few years ago. Ajax is only 6ish years
old. Flash is a necessary skill to help with IE's failings. And Flash != Flex
!= AS3.

[http://clubajax.org/presentation-why-you-need-a-front-end-
de...](http://clubajax.org/presentation-why-you-need-a-front-end-developer/)

------
eswat
A FE is expected to know enough of the language in the backend that they can
integrate a design without having to bother a programmer for help; the various
ways to echo content, how to tap into helpers and make your own, etc. Seems
rather obvious but a lot of FE people think that if a line is written in Java
or Ruby then they aren’t responsible for it.

Also important for FE to know their core languages, irrespective of popular
abstractions they will probably end up using (JS and jQuery or CoffeeScript,
CSS and SASS or LESS, etc.). Again obvious but these days a lot of people
working front-end will claim they know JavaScript, when they actually mean
they know jQuery and drown when tasked to work on a project not using a
library or something else.

