Ask HN: What should a Front-end engineer know?
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?
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?
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!
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.
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.
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...
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.