Hacker News new | past | comments | ask | show | jobs | submit login

I'm sorry but if a place I was interviewing for asked me this I'd end the interview and move on. This is about as useful as knowing how to write C boilerplate on paper from memory (something a college professor had us do for an exam), which is to say it's completely useless.

> The first line of every document’s source code is perfect for this interview because how much a candidate knows about the DOCTYPE declaration closely resembles how many years of experience they have.

This just screams "I have some esoteric knowledge and I'm going to lord it over you", sure I remember vaguely when the html doctype first came out but knowing what that does doesn't make me a better programmer. I write that line 1 time max in a project and then never think about it again. Why would you ever harp on that? Especially when most frameworks your are going to be using handle that all for you or it's in the default header block/index.html?

Talk to me about how I'd solve a problem or how I'd architect something but don't quiz me stuff I rarely need to know. Even PHP argument order (a near-useless skill) is more useful than this list. Give me 5 minutes on google and I'll tell you what every single one of the tags mean/do (the ones I might not know off the top of my head), that's a way more important skill then being able to spout off what they are from memory.




I'm sorry but if you don't understand most of the first ten lines of twitter.com (or any website) you're just not a senior frontend web developer. He's not asking you to recite them from the top of your head, he's asking you to have a simple conversation about them.

Who cares if you can architect Twitter. Any college graduate can make a half hearted attempt at architecting some bullshit. What needs to be tested is how well do you know your domain. If you claim to have ten years of experience as a web developer, how much did you actually learn in those ten years?

You can't be serious that you couldn't explain what UTF-8 is, or why text direction might matter, or why we put social media links in our headers if you claim to be a senior frontend web developer.


> I'm sorry but if you don't understand most of the first ten lines of twitter.com (or any website) you're just not a senior frontend web developer.

cough No true Scotsman cough

I'm loving the way you are putting words in my mouth about what I do/don't know from those headers. I can explain most all of them but that doesn't stop it from being a stupid exercise. If you start a potential working relationship with me by asking me to explain 10 lines of HTML head tags then that tells me you focus on all the wrong things. By the way, I am a senior frontend web developer and I've been quite successful at it, thank you very much.


I don't think it's a great question, partially because there are a lot of meta tags there and it feels a bit redundant and slow, and partially because the phrase "first ten lines of Twitter's source code" makes me since - but, I don't see the problem with it. It's a basic question asking you to talk through some stuff. Test of knowledge and communication. There is a right and wrong way to evaluate to evaluate this kind of thing - e.g. "Didn't know about the direction property in the HTML node? Terrible, get out." Would be a pretty lousy interview, but there's no reason to assume the interviewer is going to do that and anyone could beat jerk with any set of interview questions.

I would think that if you would walk out of an interview if the interviewer asked you basic questions then those questions have done their job.


These conversational questions where you talk out some code are probably the most pleasant interviews.

It’s not a quiz, if done right. But you can get to know a lot about someone even by how they respond to not knowing the answer.

Someone with experience knows it’s not a big deal to not know every bit of trivia, but they can talk intelligently about what the code might do. And they know how to find out.

For example, they may point out they know about charset=utf8 in the Content-Type header and admit they thought the meta tag was redundant, and you can have a conversation from there. Or how about "I know 'ltr' means left to right but I never thought about using it with lang=en, but now I want to see what 'rtl' does with English". I suppose it's not the best starter question, but I don't think it needs to be to suss out good candidates from bad ones.

Rage-quitting the interview or blurting out confidently wrong guesses, on the other hand, are bad signals.


I assume that I'm bad at interviews, but I've had people intelligently talk about code, but then completely fail at simple coding tasks. In pretty much all of the cases, they completely understood what was going on, but they were part of a team where someone else was actually implementing it all. So, I think more is needed. This seems to be great for screening though, since it can be done casually, on the phone or while eating a sandwich.


I never doubted you were. That's why I'm saying you're not serious if you say you don't know these things that you obviously do. I'm 100% sure you'd ace the first ten lines of Twitter's html question.

I want to hire you, not someone who's never really thought about what's going on. These questions are just a trick to force someone to step out of the box and go deep into some fundamental web concepts. It's not about memorizing some HTML tags, it's about knowing why they exist.

edit: This is just in the hypothetical scenario I'd be hiring a senior frontend web developer. You generally only need maybe 30% of those, the rest I can get trained on developing features within 3 months after finishing a 10 week bootcamp. I wouldn't bother asking them how UTF-8 works, I just explained what the word "encoding" means to a junior who'se been outpacing me for the past 3 months. The person who reviews their merge request should definitely know what UTF-8 is.


And, if I was trying to hire someone and had this type of conversation with them and they stormed off in a huff, I would be grateful. I don't want to employ people who can't get out of their own mental demesne to have the conversation that I, as an employer, want to have, and I for sure as hell would not want to hire someone who got upset that I asked them questions that they consider beneath them during the interview where the point is for me to figure out how much value you bring.

The ground is beneath you too but you would fall to your roasty death in the center of the planet if it wasn't there, and if you have a gaping hole in your knowledge base then identifying and resolving it before some portion of the companies' success is resting on your too-narrow shoulders is a good idea.


[flagged]


You're not coming off how you think you're coming off.

I'd much rather work with and for any of the people replying than you.


It's also about your communication style. If you know what an HTML tag is for, can you clearly explain it in language that's easy to understand? If you don't know what it does, do you just say that, or do you try and bullshit your way through the answer?


You can't be serious. I save someone a million dollars a year knowing how to properly index and query DynamoDB, not about what <doctype HTML> means or whatever. Or when preflight requests in CORS are too expensive to be worth the overhead vs alternatives. Or the advantages and disadvantages of a REST API following jsonapi.org vs GraphQL.

Nobody cares about text-size-adjust and other such nonsense. It doesn't materially change anything.


I save someone a million dollars a year knowing how to properly index and query DynamoDB, not about what <doctype HTML> means or whatever.

If someone said that to me in an interview my next question would be "Why did you apply for a senior frontend dev role then?"

Nobody cares about text-size-adjust and other such nonsense.

Senuor frontend devs do care about that, because it affects the display quality, accessibility, and readability of a web app on a mobile device. If you get text size wrong on a site like Amazon or Twitter you could push tens of thousands of people to stop engaging with the site. Imagine if the "Buy Now" text on a button overflowed because the font was too big so it read "Buy no" instead. That would have an impact on revenue.


I think this is just one of the many questions. No body is expecting the interviewer to spend hours quizzing you on twitters HTML. But a 5 to 10min discussion on HTML tags and their applicability seems right for a web-developer interview. If nothing else, it shows that the candidate knows tags other than `div`, `span`, `form` and `style`.


This is basic stuff. Perfect answers aren't required.. it's just whether or not you can have a conversation on something technical which you ought to be, according to your job title, at least vaguely familiar with.

Don't take this type of exercise personally; it's not aimed at you - it's aimed at the many people who call themselves "full-stack engineers", but haven't ventured beyond the bounds of a particular framework.


> it's aimed at the many people who call themselves "full-stack engineers", but haven't ventured beyond the bounds of a particular framework.

That's a great point. Lots of people think that full-stack means knowing how to use npm to install tailwind and express. They just don't know what they don't know.

A "full-stack engineer" should be very familiar with standards like TCP/IP, HTTP headers, the OSI model, CSS things like flexbox, DOM, CORS, SQL, websockets/eventsource, unicode etc etc as well as probably multiple web frameworks in multiple languages, various backend and cloud platforms (at least enough to get around in) like AWS and GCP, and understand what proxies and TLS are and what they do, and probably also how to do things like Let's Encrypt and write secure code with XSS, CSRF, etc hardening.

Obviously, everything is a gradient, and nobody is perfect with everything (as well as the JS build tool of the week) but this stuff takes years and perhaps decades to really grok. There's nothing wrong with being a "junior dev", or just a "dev", or whatever -- it takes a lot of effort to master your craft, especially when you're crossing multiple domains from front-end to back-end to security to architecture. But it is important to know where you best fit in, at least at whatever your current career stage is.


I think it's unrealistic for any engineer to remain highly proficient in many of those things simultaneously. I use AWS day-to-day, but haven't used GCP day-to-day in 5+ years - should I realistically be able to keep abreast of the vast number of GCP changes that have happened over that time (plus all the changes in devops that make the workflows I was using 10 years ago look outdated)? Many projects don't need Websockets or Eventsource - do I have to keep that knowledge top-of-mind across the years that I don't use them? Can you really claim that you're "very familiar" with that web framework that you used two jobs ago - assuming there haven't been a bunch of major changes since then? I guess my point here is that proficiency teaches you some knowledge, but perhaps more importantly it provides you with context, guidance and direction when picking up new stuff (or catching up on old stuff).


When referring to AWS/GCP, I said,

> "at least enough to get around in"

Because, you're right -- cloud-based knowledge changes a lot faster (and gets wider) than standards-based, and it's actually a lot less useful because you don't know from year to year if the knowledge is even still relevant or if the product is still supported.

And, yes, you do need to keep standards-based knowledge top-of-mind, even if you perhaps are not currently building projects on them and even if you can't remember the specifics of syntax etc. Knowing every tool in your toolbox will make you a far better engineer, and, yes, it absolutely can be done.


> A "full-stack engineer" should be very familiar with...

That person doesn't exist, gradient or not. There's no way for someone to be "very familiar" with so many different domains at the same time. By the time you gain familiarity with all the domains, the information you initially learned will be out of date or you will have forgotten.

Also, full-stack colloquially refers to someone who can work on frontend and backend.


I sometimes market myself as a “true full-stack engineer” and I’d say I’m pretty darn familiar with everything from the machine code, lexer, parser, compiler, linker, language idioms in a few languages, frameworks, CSS, HTML, TCP/IP, an ever-hating-and-hope-will-die feeling towards GRPC, JSON quirks, YAML quirks, how file systems work, how email works (SMTP, DKIM, SPF, etc), k8s, the Linux kernel, custom drivers, video game engines and the maths behind them (like Quaternions, vectors, matrices, etc), and probably a few other things I can’t remember right now.

It takes a lot of time work to stay on top of these things but it’s a passion, and some things I know exist but don’t know the current incantation for (like getting full screen access for a game engine). It used to be quite long, but I think it’s much less LoC these days. Anyway… we do exist.

Like I said, for me it’s a passion. It probably won’t come up in an interview unless it’s a startup and the job sounds incredibly interesting. Even then I might keep my mouth shut just to not come across as over-qualified or “too expensive.”


To me being "very familiar" with those things would mean that you could perform the role of a SWE, SRE, compiler dev, <language> dev, <framework> dev, kernel dev, engine dev, etc right now and be effective.

Since that isn't possible I have to assume that you have a different definition of "very familiar" than I do.


I’m active in my favorite language’s development, I work as a SWE, my current project is in a legacy system touching billions of people a year. Prior to that, I worked on a stats-heavy project that needed to make real-time decisions for millions of users at any given moment.

On my free time, I work on various things like building a cockpit for a flight sim, building my own Bluetooth door lock, learning new languages and frameworks, creating SDKs for my favorite language to popular services, etc.


It is possible. Contradiction dissolved.


Do you know of such a person? I would love to see someone who can work in all of those roles simultaneously so I can try to learn how they're so effective across such a large number domains.


Sure. I’m like the person you replied to. It’s three things. 1) It took me 25+ years to amass the expertise. 2) It’s a hobby first, and a career second. 3) Since the beginning I always choose to see how things are the same more than how they are different. Goes for languages, hardware, APIs, OSes, protocols, everything. I insist on seeing it all as superficial variations on the same thing, no matter what anybody says.

Oh but I don’t know how to do SRE. No interest.


Same. It took about 25+ years, and a hobby that happens to pay the bills. Interesting that you say that about how things are similar. It’s so true! The same patterns/abstractions are everywhere, just with different words in them, different orders, and sometimes, different names.

I also have no interest in an SRE role. I don’t like being on-call. I build systems to fail gracefully so I never work weekends, but most people don’t do that for some reason.

I currently work as a SWE. We don’t have explicit roles where I work, but my responsibilities are in-line with a principal or lead engineer.


I've also written a Linux driver, a filesystem, IPC code across an ARM CPU and proprietary DSP, web apps in PHP, Python, React, and Go, desktop apps, data pipelines, reporting dashboards, and all kinds of other things. Same as my sibling I stay curious and say yes a lot.


I don't think this is true - while exposure to a wider or narrower set of these domains / technologies will depend greatly by your held positions and responsibilities within teams, size of companies worked for, and raw years of experience (so it is a gradient), I would expect from an experienced web developer to simply be very familiar with all of these if they are passionate and curious about what they do.

I consider myself a mediocre senior web dev, and I am can humbly say that I'm very familiar with all of the listed, without intentional effort in that direction over the years, simply because I wanted to understand the context of some of the things I needed to do, and also poke into each enough to understand how much depth there is and what I don't know. It is natural that it tends to add up.

Over the years, I saw a strong correlation between that breadth and how "good" someone was - on the example of someone working on the fronted in a team, I see 3 basic categories:

1) Not very good: I can do only the most direct and specified things and if something doesn't go as implementation plan intended, or requires outside of what I see as my "formal scope" (e.g. "frontend developer", so React + CSS), I expect someone to solve it so I can continue

2) Ok, but limited: I do only the things inside my "formal scope", so if I'm building a frontend to a web app, it's someone else's responsibility to think about e.g. security - but when something doesn't go as planned along my line of work, I'll find why and unblock it

3) Good: We're building a web app, what are all the things it needs to consider and achieve? My part in the team is this UI / frontend, but if security is important for this use-case, how will my frontend be cognizant of the security goals? I should read up that OSI thing I heard about, cover the basics on my side, and start the discussion on it so we as a team ensure the frontend part is good security-wise


> I wanted to understand the context of some of the things I needed to do, and also poke into each enough to understand how much depth there is and what I don't know

To me this is not equivalent to "very familiar". I think whakim's comment puts things well:

> I use AWS day-to-day, but haven't used GCP day-to-day in 5+ years - should I realistically be able to keep abreast of the vast number of GCP changes that have happened over that time (plus all the changes in devops that make the workflows I was using 10 years ago look outdated)? Many projects don't need Websockets or Eventsource - do I have to keep that knowledge top-of-mind across the years that I don't use them? Can you really claim that you're "very familiar" with that web framework that you used two jobs ago - assuming there haven't been a bunch of major changes since then?

https://news.ycombinator.com/item?id=30474206


> That person doesn't exist

Just because you've never met one doesn't mean they don't exist.

However, often, people like this (sadly) move into management or into higher-level architecture types of roles, and let their tech skills go fallow.


"Very familiar" feels pretty squishy, aren't there fairly standard HR terms for these levels of knowledge? I'm pretty sure it's less than "proficient" which is less than "expert," and I feel there should be at least one more in the middle there. I've always understood "familiar" being just a little more than exposure.


A web developer that can't explain extremely basic tags for something that is the absolute foundation of their tech does sound quite a lot like a scotsman not knowing how to speak Scottish.


I'd strongly dispute this point - these tags need to (usually) be written once per organization, occasionally you need to come in and fiddle with it, but the contents of your page header should occupy no brainspace. Additionally I think this interview question might be testing a depth of knowledge, but not one that's actually relevant for your position. I've worked on backend systems for most of my life (that and databases) and I can definitely name the purpose of most of these tags since, back before node, I'd just be popping them out in some PHP file somewhere - again, once written and then mostly forgotten about. If the job responsibilities are going to involve a modern front-end framework/language suite and your interview isn't even touching on that topic then you're not effectively interviewing for the position - you're querying about some corollary information that most people in the space will sort of know but, if I was their manager, I'd be happy as a clam if they popped over to the MDN and copy-pasted a big chunk of this as a starting point... assuming they ever actually needed to interact with it.


Not to mention they're perfectly referenceable. If I need to set up a new HTML doc and add the meta tags I can easily find everything I need on MDN and a quick Google search for best practices. Anything more specific (like Apple specific tags) is trivial to find as well.

Interviews should be focused on skills and experience because those take time and effort to develop. Not 5 minutes on the internet.


Not only do these get written once per organization, but they are specific to that organization. With the exception of the doctype, html tag, viewport, and charset, we use none of the rest. And our attribute usage differs.


That’s exactly why it’s such a bad interview question, regardless of how “fundamental” it is to a website, changing the HTML <head> tags will never be within the new hire’s scope of work.

They will basically never ever in their entire career need to do this.

It’s like hiring a C++ developer by quizzing them on random gcc flags. These are things that make up 0.00001% of the total work produced by the dev.


Now I'm thinking its a good idea to quiz developers on the first 10 lines of some arbitrary Makefile


Wow, there seems to be a consensus that being able to read an entire HTML file is not a reasonable expectation of a senior frontend engineer. That's news to me, and honestly I can't imagine how narrow the job definition must be if it doesn't include a working understanding of page headers.


I don't think there's a consensus. This is a totally fine interview question.

If you read a thread on hiring, you'll learn that you can't ask a coding question, you can't do a take-home coding test, you can't talk through system design, you can't expect people to have a Github or portfolio, and you certainly can't rely on academic credentials. At that point, it sounds like you have to hire the first person that responds to your want ad, and I'm sure someone is against that too.

The only consensus is that people that care strongly one way or another will write a comment. Those that don't really care just go read some other article ;)


When I look at the article two things stand out to me:

1. The author is focusing on the first 10 lines, not the whole document. 2. Their "perfect answers" have the candidate essentially reciting the reference docs verbatim.

That to me reads very differently from reading and discussing the whole HTML file. It reads much more like gotcha questions or an expectation that your candidate has extremely specific, arcane knowledge.

For example, the perfect answer for line 1 includes:

> This was especially annoying because each standard generated a different layout so this tag was adopted to make it easy for browsers. Previously, DOCTYPE tags were long and even included the specification link (kinda like SVGs have today), but luckily the simple <!doctype html> was standardized in HTML5 and still lives on.

So to the author, one should ideally not just know what "<!doctype html>" is for, but also be able to rattle off complaints against the previous revisions of HTML. The whole article just comes off as very verbose and stifling. (For that line he does allow for a more basic, but still verbose, answer)

Is it unreasonable for a senior frontend engineer to rely on references for some of these extremely specific details?


It's auto filled ha

! then tab (emmet).

To me though most important is that viewport scale 1 and similar tangent, using offsetWidth for Mac's higher DPI screen.


Unless you are hired for a very specific function, why would testing specific knowledge be useful?

The way I see a Senior is someone who can autonomously get shit done. How does testing for specific knowledge help determine if someone is capable of solving problems autonomously? If they don't have knowledge they should be able to seek it out.


In my company we see a senior as someone who can help increase the leverage of juniors.

Another definition I’ve seen is “a senior developer is a developer who can turns other developers into senior developers”

Whereas someone who can autonomously get shit done (and may or may not be good at the earlier definitions) is a “contractor”.


The article makes it pretty clear that the exercise is a conversation, not a test. It’s not just seeing what they know, it’s finding out if they can carry on a pleasant conversation. It’s finding out if they can discuss a technical topic beyond telling the other person to “Google it.” In many organizations a Senior is responsible for helping the Juniors become Seniors — a responsibility not well suited to the autonomous lone wolf.


The way the author writes and answers questions in the comments shows he does actually see it as a test.

> Note that since our technical discussion is a conversation. I don’t expect a perfect answer from anyone. If I hear some right keywords, I know that the candidate knows the concept, and I try to push them in the right direction

I.e. if you don't know the concept you don't pass.

And in a comment:

> I would much rather hire an all-rounder with deep knowledge of HTML/CSS/JS rather than a particular framework. This “Twitter source code” test demonstrates just that.

He literally calls it a test.

Also, I'm not saying Seniors are lone wolfs. I'm saying that they should be able to work autonomously (I.e. without supervision). I'm not prescribing what that work entails.


"but, but leetcode cramming didn't prepare me for this!" /s


Senior engineers duties including mentoring juniors, working with managers and architects, setting and maintaining the technical direction of a project, having input into planning etc etc etc. Talking about the first 10 lines of a website and seniors is laughable.


FWIW, the article said this is a question they use for a senior full stack role, not a frontend specialist role. With that in mind, the question does seem a bit badly formulated. For example, why would you ask about tags that you know through calibration that nobody will answer satisfactorily? And if you're already gathering signals about frontend specialization fluency by discussing web vitals, accessibility and other topics that would already establish competence, then why continue to get into these trivia style questions? Seems like a bit of a waste of time.

One potential problem with this approach of trivia checkbox ticking is that you could be selecting for "mini me" candidates, meaning that you're overfitting for the skillset you already have. For example, maybe the candidate is "full stack" from a primarily backend background, but you're formulating questions like this because you have a frontend background. But then they might seem less qualified than a mid-level frontend-only person because the interview was focusing on frontend, even though stronger expertise on backend would complement your current skill pool better.


> What needs to be tested is how well do you know your domain

I pretty much never look for this in an interview, outside of specific claims from the candidate, specific needs for the position, or the bare minimum.

I try to evaluate candidates for their ability to think, reason and operate in a domain. Knowledge is easy to acquire and useless in the face of changing tech.


Ask me questions I can't answer using Google. If you do ask me questions I can Google, let me answer the what I can from memory & give me points for looking up the rest.


I think this only works if management has enough foresight to hire before the person is actually needed, to allow for ramp up. Unfortunately, I've never seen this, so the person needs to be able to hit the ground running, meaning general intelligence is put to the side, which really sucks.


Is this sarcasm?


I think it's a very good question. You're not just checking boxes and giving a score here, and if the interviewer is any good, it's not just about "how many correct answers".

The depth of each answer gives you a lot of information about the depth and breadth of the candidate's knowledge. It immediately lets you tell the complete idiot who has always copy-pasted without any understanding from the person who lives and breathes web standards.

Since some of the questions are very esoteric, as you said, it lets you judge how the candidate deals with lack of knowledge. Do they make up some bullshit pretending to be confident (which could be a huge problem in a real project), or do they say "I don't know this one, but based on X I assume it's probably Y"?


I agree. If this is judged by how many you can answer then the interview isn't useful. But if the interviewer uses it as a launching point from which the candidate can talk about their experience with web technologies then it's a great addition to a longer interview.


Very surprised to see this as the most upvoted answer. Stuff like doctype is HTML 101. “A framework is going to output this for you anyway” sets alarm bells ringing in my head, it shows that you don’t actually understand the underlying technology and you use frameworks as a crutch.

Look, all of this clearly depends on what job you’re actually applying for. If it’s a junior role I wouldn’t sweat it a whole lot and wouldn’t ask a question like this. But if you’re interviewing to be a senior front end engineer I absolutely want to know that you can head an HTML source and know what the lines are doing.


It's pedantic. Firefox parses the doctype from the document itself,[a] and no one is using Netscape anymore anyway. Any web engineer could learn all of this in an hour if need be. If they don't know it already it's because it is simply miscellania tangential to building web applications today.

[a] You can see this by navigating to `data:text/html,<div>Inspecting the source shows the "naive" HTML. Inspecting the DOM in Firefox shows the added doctype tag.</div>`.


I’m really not sure what you’re trying to say here.

Firefox parses the doctyp from the document. Of course it does. That’s why it’s there. That’s what everything does. What else would it do?

Your footnote is incorrect: `data:text/html,<!doctype html>…` will show a doctype in the dev tools and view source, `data:text/html,…` will not show a doctype in either place, and report the document to be in Quirks Mode. If you want more fun, try `data:application/xhtml+xml,<!DOCTYPE html SYSTEM "about:legacy-compat"><b xmlns="http://www.w3.org/1999/xhtml">Look at this!</b>`.

The history of the doctype is not particularly important any more, and I wouldn’t expect normal developers to know about specific doctypes beyond <!DOCTYPE html>, but its presence is important, and missing it or not knowing it’s necessary for sanity is a definite red flag.

And that’s the first line. Lang, charset, viewport… these are basic essentials that everyone who works in HTML should already know about, even if it’s as simple as “lang="en" means the document is English”, “there must be a <meta charset="utf-8"> right at the top, I dunno why, but it’s necessary like the doctype” and “this viewport tag is to tell mobile browsers that I know what I’m doing on small screens”. Some of the other things in the ten lines aren’t so important for many areas, but you should still be aware of most of them.

The starting point for basic competence is not knowing things, but rather knowing where and how to look: and that requires at least basic broad foundations of knowledge. I would have grave concerns about the foundations of any web engineer that didn’t recognise and know the purpose of at least most of these lines: the first four lines are basic web page functionality, then there’s OpenGraph which it’s important to know the purpose of and what can be achieved thereby, then three lines of mostly mobile browser chrome tweaks and it’s generally wise to be at least aware of this stuff—you get the idea?

I’ve spent too long suffering because of people that don’t know how to write a <title> tag (and writing user scripts to fix this), often because they’re using the Single Page App style and they don’t know how to get their router to change something in the <head>, and maybe don’t even notice it.


You will have to trust when I say the last time I tested this (not when I wrote the comment) using the data scheme without a doctype tag still disabled quirk mode. Clearly you are very knowledgeable about the browser so I am willing to concede defeat here. :)

edit: I suppose what I'm trying to say is: I wouldn't hold it against an engineer with proven experience if they don't know what quirk mode is, but I would become suspicious of their capabilities if they couldn't imagine any justifications for it after giving them a quick rundown of what it is and how it works.


> Note that since our technical discussion is a conversation. I don’t expect a perfect answer from anyone. If I hear some right keywords, I know that the candidate knows the concept, and I try to push them in the right direction.

You seemed to have missed the most important point in this interview. I agree with you that rote memorization is useless, but the goal here is to have a technical discussion on topics like mobile design, accessibility and SEO. And if you're not willing to have this kind of discussion you're doing the interviewer a favor by walking away.

You also don't need to know how to code those by heart, but you need to view at a glance what their use is if you ever need to diagnose an issue, even if it's generated by a framework, because a framework may not generate the proper code for you.


I'll gladly admit that creating boilerplate from memory is a low-value skill, but you absolutely must know why it is there, and what does it do.

Through the eyes of the interviewer, you googling those tags means you don't know what they do. If you were hired and for some reason had to change those tags, what is the chance that you'll just google and copy/paste? (again, through the eyes of the interviewer)

To be fair, not all people work the same way. Some are happy to swim through the mountain of knowledge that web development has become these days, others are happier specializing in a subset of web development, and others will prefer to diversify their knowledge outside of web development, which means wider breadth in exchange for lesser depth. The interviewed should make sure to clearly transmit how he works, so the interviewer doesn't have to make too many assumptions.


How to change meta tags:

1. What is the current general standard. 2. Does our site do what we want it to do? -> Yes? Then we don't need more meta tags. -> No? Go to 3. 3. Are meta tags part of how to accomplish what we want? -> Yes? Look up the docs and tags needed and implement. -> No? Implement without touching the meta tags of the doc.

That's why focusing on the first 10 lines isn't very helpful IMO. Most of these are things that are trivial to look up and read the docs on when they become necessary.

If you want to interview around a site's source you'd be better served to have a discussion around the whole document.


Their answer should include googling the latest accepted specification if they’re going to be making changes or creating new ones from scratch. If their answer is to go to stack overflow, you might have a problem.


The interview is looking for one very specific type of engineer: a frontend specialist with demonstrated experience with a broad range of web technologies.

I see lots of full-stack and generalist engineers screw up frontend development because they don't understand the choices they need to make or understand the consequences of those choices. They lack domain knowledge. Sure, you can Google a meta tag, but if you never knew it existed in the first place you're going to walk into a performance, security, accessibility, or SEO edge case. It's a domain where a good developer with experience is going to outperform a great developer working from first principles.

I usually dislike interviews that focus on trivia. But I also see a lot of people who wouldn't dare disparage other engineering specialisations belittling frontend as trivial. Yes, everyone can and should do frontend engineering, but it is also a domain full of gotchas where esoteric and hard-won knowledge can be valuable.


I'm a senior frontend engineer and I would absolute use this question in my future interviews.

These are really important details to know to become an effective frontend engineer.

Personally I have encountered several bugs related to wrong or incomplete meta tags on html (css units don't work properly if you fail to declare correct doctype).

Not knowing them will either slow you down in solving a problem (SEO, performance, browser compatibility), or introduce a variety of bugs sooner or later.


You’re not going to convince a technical hiring manager that their puzzles are demeaning or pointless. They believe they’ve beaten some sort of game. That they post / blog about it just reinforces this.

IMHO, if you like the company, just answer the question and add 20% to your ask (fee to deal with person X). The hiring process is usually irrelevant to the company culture in my experience.

When I was hiring for my startup it was really just a conversation and reviewing some of their code / ask them to explain what they were doing in a very casual way. Get people relaxed so it’s not some dreaded test. Worked really well for me, but that’s anecdotal. The idea that there’s one true test / formulae is asinine.


jfc I work full time on .NET desktop and even I know this. This is fizzbuzz.

Are you really suggesting that actual qualified web developers don’t know this stuff?

This isn’t even fizzbuzz. I was inclined to think these questions were too obvious to ask but I think these comments are completely validating the interview question.


I lead a team running very large scale distributed systems with almost a decade of experience and I could take a guess about what these elements and attributes mean but I don’t claim to fully know them.

I also believe I’m fully capable of googling the specification and understanding this in like 15-30 minutes, but by your definition I guess I’m a fizzbuzz failure.


You missed the entire point of the article. The point is now to know whether you know those 10 lines by heart, it's whether you can have a discussion starting from just this.

Do you know why the document starts with a doctype declaration? What accessibility tags are and why they are important? What is OpenGraph and why SEO is important? What are CSS resets and why do we use them?

If you can take a guess you're already halfway there. If you can explain what you know about them you've aced it. It's not about knowing all of the meta tags or the OpenGraph attributes, it's whether you can have a discussion about mobile design, accessibility and SEO.


I’m responding to someone who claimed this is a good fizzbuzz test which is different than the point of the article.


Could you not also Google the answer to fizzbuzz in 15-30 minutes?


You could Google solutions very easily but I suspect if you can’t do fizzbuzz you couldn’t explain those solutions very well.

I see fizzbuzz as a basic test to see if one can synthesize basic programming concepts and implement something that works. Explaining the first few elements on an html5 document is more like asking if you have definitions memorized in my opinion.


None of that is 'esoteric knowledge' knowledge!

When you hire people you need to check for basic competence.

I've hired plenty of FEDs and it's a nightmare, let me tell you!

It's not about answering the questions as such; it's about how you answer them and your ability to reason.

The lack of basic knowledge is appalling across the board. The industry is full of copy and paste developers with Computing degrees that essentially have zero useful skills. I'm speaking as an Australia BTW. So YMMV :-)


> I'd end the interview and move on

Interviews are as much about what it would be like to work with somebody as they are about this supposedly esoteric knowledge. If your reaction to a question you didn't see the value of would be to end the interview immediately, I think they'd be glad to have found that out so early.


Yeah I'd only ask that question if I was interviewing people to work at w3.org.

The years of experience line is nonsense. I learned html 25 years ago and can only describe what that line does in pretty generic terms. It's like asking a journalist candidate to give you the Webster definition of "amalgamation".


It's not a very good question and it's not a very good answer either. Discussing the DOCTYPE without mentioning SGML or XML seems to be a bit weird to me.


That was more relevant 10 years ago. Nowadays the primary point of the html doctype declaration is to say 'I am HTML5'. I know this and I'm not even a frontend developer.


Agreed it's not too relevant, but if you are going to ask a knowledge question, rather that a skill question, you might as well expect some theoritical knowledge :)


IMHO instead of doing fancy tricks the first day for interviewing take something that could be completed in one day at the job you are interviewing for and if you can complete it or get it near enough I would think that would be a better criterion to hire. Also, this interview would be paid for the first day at the same rate that you would be hired for.


Wait... completed in one day? So an ~8 hour task? That's way too much of an ask for an interview, in my opinion.


Not everyone does well in a high stakes environment, which is what this sounds like it would create.


I haven't done or even really touched front end work in a decade and I believe that this would have been an interesting interview.

Given his perfect answers I probably would have been able to come pretty close to passing.

If you know anything at all about the details of html, all of these can be easily understood by looking at what they're claiming to do. None of these are esoteric even if your front end knowledge predates wide spread use of mobile devices.

Take line 5 for example. I have never heard of Open Graph, but I know that og: is declaring a namespace for a pretty self describing tag. It's clear from this take with no other information that it is providing a site name for a specific service.

I don't think it's a big ask at all for a senior front-end dev, who is fresh in the field, to know what the first 10 lines of one of the most popular websites out there is doing.


> I write that line 1 time max in a project and then never think about it again.

In my experience, wanting to know why things work the way they do (instead of just accepting that things work a certain way) is a very desirable quality in candidates. Sure, the candidate might have figured out why it worked a certain way and then forgotten about it (which I think is totally fine in this context), but then the interviewer gets to see how candidates approach unknowns.


It's not 'useless' and it doesn't scream 'knowledge signalling' - it's just not a very good question.


Well said


Such a polite community with opinions...


A lot of these things are also automated from whatever framework, CMS or plugins you're using. It's the kind of thing you usually aren't writing in by hand, and shouldn't need to.

It's the equivalent of asking someone to multiply numbers together by hand instead of just using a calculator. Ok I can do it, what have be proven here? Not a lot really.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: