Live data from Hacker News

Interviewing as a Front-End Engineer in San Francisco

css-tricks.com

141–150 of 188 posts

Re: Interviewing as a Front-End Engineer in San Francisco

#141

We were hiring a non-senior full-stack developer recently and I noticed there were no "frontend" questions on the list, so I added what I thought would be a question that any developer with frontend experience could answer, and would also pave the way for some more interested discussions for an advanced candidate. The question was something to the effect of "In JavaScript, what is the value of 'this' in a method?" I…

> It was a disaster. We may as well not have asked the question at all. Nobody seemed to even be aware of anything about it.

You have it backwards. It would have been a disaster if you didn't ask the question and hired someone who doesn't know basic JS fundamentals.

Re: Interviewing as a Front-End Engineer in San Francisco

#142
As a former front-end engineering manager that has screened, interviewed, and hired tons of developers for large corps and small startups, I hear this guy's frustration and have felt it myself. I've often stepped into interviews for other departments and teams that had no FE developers to give them a hand.

At the same time, I've come across far too many developers who assume "front-end" only meant HTML, CSS, and jQuery.

NOTE: Not JavaScript, but jQuery, which are very, VERY different things. The author does himself a disservice by citing a jQuery example instead of a general JavaScript one. I get how prevalent jQuery is, but if you can't describe some of the inner workings of JS to me, then I may weed you out. That's just my preference though; other hiring managers differ.

In my particular cases, we needed FEs that knew JavaScript and server-side scripting languages - to the extent of being able to write some presentation-layer logic if necessary.

So whenever I've coached technical hiring managers who have no experience with front-end development, I'd tell them to go right ahead and ask questions on general programming logic. Even if the candidate's verbal answer is incorrect, the thought process behind trying to answer it can be helpful.

FYI, the type of phone screen questions I would ask are:

+ Why is a doctype significant? (HTML)

+ What is the box model? (CSS)

+ Describe the event model. (JavaScript)

(You'd be surprised at how many purported front-end engineers get these wrong.)

These were accompanied by general programming logic questions. They all designed to assess the developer's ability to communicate and explain, and not the developer's technical skill. For that, I looked at code samples and the results of a take-home code exercise. And the specificity and difficulty of the questions would depend on the stage of the interview and level of candidate's experience. The "What is the value of 'this' in a method?" question is a great one too.

Re: Interviewing as a Front-End Engineer in San Francisco

#143
I have been a front-end engineer for over a decade, and if I were hiring for a position a decade ago I would understand and agree with your points. However, with the breadth and depth of skills required for great front-end engineering today, I would feel very uncomfortable hiring someone who only had the arcane skills required to "get the job done" on the front-end. If hiring for a smaller company, I would be concerned about this person's ability to contribute to more than just the tasks in their silo. If hiring for a larger company, I would be concerned about this person's potential for future growth. Also, it's usually apparent from projects or employment history that someone can do what's required on the surface for front-end work, so why would I waste interview time going over details and minutiae in that area? I'd rather take the opportunity to find out if they're a solid engineer as well.

Re: Interviewing as a Front-End Engineer in San Francisco

#144

I know it's a bit off-topic, but I'm a student so anything about interviews interests me a lot. For the Bacon Number question, I'm struggling a bit to get my head around a good way to do it. My immediate idea is to derive a graph where nodes are actors and an edge between 2 actors means they've been in 1 or more films together. I believe the shortest path between them and Bacon could then be found by breadth-first se…

It is the final inner loop that is problematic.

Instead, your graph should comprise movies and actors as vertices (edge = actor was in a given movie), and to get the Bacon number you just halve the distance in this graph.

So you code would look like

    for bucket in hashtable:
        add node for bucket
        for actor in bucket:
            if actor not in graph, add a node for actor
            add an edge between actor and bucket
            add an edge between bucket and actor
If each movie contains exactly K actors, and there are N movies, then your graph has O(NK^2) edges while mine has O(NK) edges.

Re: Interviewing as a Front-End Engineer in San Francisco

#145

I'm almost entirely backend, but I can relate to the travails of interviewing in the Bay Area and dealing with unprepared interviewers. The engineers were like anywhere else-- and a fair proportion of them were very good-- but there are just a lot of arrogant people in the managerial ranks of the Valley. After you get an offer and you get to the negotiation phase, most Bay Area firms try to lowball you because-- even…

I haven't really seen the assumption that "if you were any good, you'd already be in the Bay Area."

I have seen sort of the opposite, though -- if you are experienced, you likely have a family and there is no way in hell you are moving to the Bay Area.

Re: Interviewing as a Front-End Engineer in San Francisco

#146

One problem is that many people associate front-end development mainly with HTML and CSS. HTML and CSS are not programming languages. I say this a front-end developer who has to write HTML, CSS and JavaScript on a daily basis. Yes, strictly speaking, HTML and CSS may be considered programming languages, but they lack control structures, design patterns and other interesting tenants of computer science. Like the autho…

Modern Web Components/Polymers assume that Discrete Front End modules include HTML, CSS, and JavaScript. And then there's http://prezi.com/piifihs2ohet/test-driven-css/ . There are only two hard things in Computer Science: cache invalidation and naming things. CSS and HTML have to be given architectures, where we have to name these "files". What can you do with jQuery if your CSS and HTML are named and mixed up with…

You missed the punchline:

    There are only two hard things in Computer Science:
    cache invalidation, naming things, and off-by-one errors.

Re: Interviewing as a Front-End Engineer in San Francisco

#147
post #91

Earlier quoted context omitted.

To the people who wish they could answer that question with confidence, I recommend getting this book: http://www.amazon.com/Effective-JavaScript-Specific-Software... Just got it and I feel like it clarified so many things about Javascript that I didn't have down cold as a self-taught pragmatist.

I felt Effective Javascript was pretty on par with The Good Parts, and even better in some aspects.

I concur. I recently finished Effective JavaScript, and found it to be an excellent and insightful read.

Re: Interviewing as a Front-End Engineer in San Francisco

#148
Note: I work for Grooveshark, which is in Gainesville, FL, about as far away from San Francisco as you can be in the continental US...so what I'm about to talk about might not be like what is going on over there at all.

When we bring someone in for an interview, we generally already have a pretty good idea of their technical skill level. Part of the filtering process is asking to see their work, either code samples or a portfolio. For frontend engineers it is especially easy to see their work since you can load it up in the browser, inspect, interact with the console, etc.

If we are impressed by their work, the interview is 90% making sure they are a good personality fit, 10% making sure the work we looked at was actually theirs. We probably end up asking slightly more frontend-specific questions than the author experienced, but probably not much.

We find that this process generally works quite well, but a few people that we gave offers to did tell us they were surprised because they felt they had bombed the interview, assuming that since we didn't get into a lot of nitty gritty technical stuff or ask them to write code on a whiteboard, that we had already decided we weren't going to hire them.

Re: Interviewing as a Front-End Engineer in San Francisco

#149

One problem is that many people associate front-end development mainly with HTML and CSS. HTML and CSS are not programming languages. I say this a front-end developer who has to write HTML, CSS and JavaScript on a daily basis. Yes, strictly speaking, HTML and CSS may be considered programming languages, but they lack control structures, design patterns and other interesting tenants of computer science. Like the autho…

> strictly speaking, HTML and CSS may be considered programming languages, but they lack control structures, design patterns and other interesting tenants of computer science. They are non-Turing-Complete programming languages, and part of that is having limited control structures. "Design patterns" aren't a language feature, have nothing to do with being a programming language (architecture has design patterns -- in…

> They are non-Turing-Complete programming languages

Wrong! CSS is in fact a turing-complete language. :) I know it sounds weird, but it's true. Turing-completeness can be formally proved for CSS.

Re: Interviewing as a Front-End Engineer in San Francisco

#150

Earlier quoted context omitted.

How about your average moron with an engineering degree like me? In Canada, there's a very strict definition for engineer. If you don't have an engineering degree from an accredited university, and a professional designation, you cannot call yourself an engineer. They take it very seriously since it's a regulated profession. Obviously everyone is free to draw their own lines (outside of Canada at least). I always tho…

>I always thought an engineer was someone who puts scientific or mathematical theory into practice and to solve technical problems. 100% agree. In the US I don't think it's as strict as Canada (may be wrong) but I know one has to take an FE to be called one. People in the software field, however, running around themselves engineers are more often than not, not putting any theories into practice but instead using the…

The FE exam is to become a licensed professional engineer. It is certainly not required to be considered an engineer, and is considered a waste of time if you are doing work that does not require it. The license is most effective for civil engineers, because building/bridge/etc designs need to be approved by a licensed engineer for regulatory purposes. It was pretty common for mechanicals to take the exam too. I assume it would be beneficial to get it if you are doing any sort of government related work.

I studied computer engineering and have no desire to take the FE exam, as being licensed is almost entirely useless in my field. As far as the difference between "engineers" and CS majors, at my school basically the only difference is math requirements, and how math is used in the higher level classes. In ECPE (computer/electrical) we differentiate ourselves from CS by studying circuits, systems, physics which are very calculus-intensive. The area where it crosses over into CS is when you get into computer architecture, digital design, assembly, which is like programming, but due to being so close to the hardware level (working with raw digital logic) it ends up being more math intensive than most high level programming.

Post reply on HN