10 ms·
One of my favorite tech interview questions for any position is, "Describe in excruciating detail, everything that happens when you request and load a website i
by notarealllama 2y ago
One of my favorite tech interview questions for any position is, "Describe in excruciating detail, everything that happens when you request and load a website in your browser."
You learn a LOT about how a candidate thinks and the depth of their knowledge.
- spps11 2y agoi feel this question correlates more with the generation of the SWE more than anything. expecting current gen SWEs to talk about network layer protocols while answering this is kinda the same as expecting 1990s SWEs to include wire physics and dispersion statistics in their answer to this question. Depth alone isn't always a good indicator. We have to move on from some of the low level stuff at some point and it is okay for engineers to know in detail about things that have been solved long back.
- notarealllama 2y agoThat's the beauty. I could care less if my backend JS candidate knows anything about Ethernet frames, but I damn well expect h3 and async discussion. But my devops guy? He better be talking about CDN, cavhing, WAF.
- rendaw 2y agoDo you prompt them? Expecting them to talk about CDN and WAF seems unfair, those go beyond the definition of the web.
- miyuru 2y ago> CDN and WAF seems unfair, those go beyond the definition of the web Current web is full of WAFs and CDNs, devops should know that they exist at the very least.
- hadlock 2y agoFor a senior role? no. They should be asking you how deep you want to go. And you should be the one stopping them for time. If your SRE/DevOps can't wax poetic about the deep deep details, how are they going to get you out of the ditch when production goes down at 11am on a Tuesday, or 11pm on a Saturday
- dartos 2y agoI’d expect an SRE to know about all that.
- fud101 2y agowhat is h3?
- theandrewbailey 2y agoHTTP/3
- Swizec 2y agoSurely that depends what your hiring them for? The nice thing about the website load question is that it touches every part of the stack. You could talk for an hour about rendering on screen at the OS level, or network protocols, or server stuff, or web client stuff, or data center stuff, or … Really to answer the question in its full entirety would be the equivalent of that “Everything that goes into a pencil” essay. You could build an entire college curriculum just out of that question.
- LoganDark 2y ago> that “Everything that goes into a pencil” essay which one! I tried googling this but without quotes it gives me clickbait and with quotes it only points to this comment. :(
- baggy_trough 2y agoI, Pencil
- LoganDark 2y agothank you!!
- tabony 2y ago100% a generation thing. Been around long enough so I've written my own CSS framework, server-side framework, web browser, web server, sent bits over Ethernet, written assembler, programmed a FPGA, built circuits, AND have a electrical engineering degree... and YET, _ABSOLUTELY NONE_ of this is useful _99%_ of the time. So meh. If I want you to do frontend, I will ask you frontend questions. Hopefully you can go deep on a11y and that's what I care about. (But the 1% of the time when I can precisely step through a whole stack is also fun.)
- notarealllama 2y agoExactly, someone who can answer where media queries fall in terms of loading priorities for FE (when hiring for that.) Electrical engineering is a whole nother thing!
- dylan604 2y agoHence the differences in the level of schooling. Graduating a coding boot camp for using React vs years of engineering school. Why are the interviewers are confused on this is the unsane thing.
- layer8 2y agoYes, I would drop the “in excruciating detail” and “everything”. The level of detail the interviewee starts at or goes down to by default is also informative.
- spankalee 2y agoWhy should "current generation" SWEs know about network protocols? We live in a more networked world, not less.
- spankalee 2y agoOops! Bad, meaning-reversing omission: I mean "not know".
- panza 2y agoI think it's fine to ask a web developer how web pages are served. If they can talk about network layer protocols, then that tells you something. If the next candidate's understanding stops at knitting libraries together, then that's also notable. Even if it's not a discriminating factor in hiring, it still helps you flesh out the candidate.
- what 2y agoI assume we have to start with the physical action of typing in a url and everything involved in that? Then how the physical keyboard works? Then how the OS handles the input from the keyboard? Then…
- notarealllama 2y agoThat's the beauty... Sometimes too much detail can be distracting, so knowing what to mention/omit is part of it too. As CTO for multiple companies and hiring across multiple competencies for 10 years... This is the question that keeps on giving!
- notarealllama 2y agoConsider, do you type or paste the url? With or wothout http/s? Or www? Does it matter? What if you typo wwww.domain.com? And what do you mean physical keyboard, the virtual one on my phone works fine ;) (also preconceived notions)
- rovr138 2y agoWhich branch, physical or virtual. How does the virtual one work?
- 2y ago
- groby_b 2y agoThe only good answer here is "breadth first, or depth first"? If they say "depth first", go all the way down to electrons bumping into each other on the wire. It's an "I'm so smart, are you so smart" question, the only right approach is a smart aleck approach. I work on web browsers for a decade+ now, and worked on network protocols for a decade+, and it's not a question I'd consider in any way high signal. If this particular area matters to you, ask a problem in the space. "Web page X doesn't load, figure out why". It shows you way more than "please regurgitate every detail"
- notarealllama 2y agoThat's exactly the point - sometimes too much detail or focused on wrong thing can ve distracting. But having a frontend engineer aware of Safari on iOS or macOS vs assuming chrome compatibility, or a SRE aware of abusive UDP http2 / h3 stuff... Again the beauty is in the flexibility and scope of something normies take for granted, and this video delves into some of the esoterics of this topic!
- groby_b 2y agoYep, having a video explaining it in detail is great. It's absolutely interesting. (I mean, I would say that, wouldn't I ;) My objection was to using it as an interview question. An broad open-ended question like that without any guidance what the interviewer cares about is a signal of either copy-pasted hiring practices, or a working culture that doesn't know what it wants. It's also a question with little signal in the noise if you don't give a bit more clarity. I mean, fundamentally I'm happy if other companies use the question, more good hires for me, but in terms of "we should really raise the bar on this interviewing thing" I still object :)
- fc417fc802 2y agoIt's only low signal if you directly score the answer based on presence or correctness of specific details. Forget about that. The question is an open ended and adaptable tool to get a huge amount of information about knowledge, verbal ability, audience awareness, and all sorts of other directly relevant skills. No trick questions just "teach me everything you know about this subject" and then work with the other party. That said I suppose there's no reasonable expectation that (for example) most firmware developers necessarily know anything whatsoever about loading a web page. But anyone whose touches network (ie most) should know something.
- deleted 2y ago[deleted]
- layer8 2y agoIn former times, this used to be “Describe what happens between pressing a key on the keyboard and the corresponding letter appearing on the screen”. You can go into all sorts of interesting tangents with that topic.
- jiveturkey 2y agoi literally am the inventor of this question. it's an awful question.
- gnabgib 2y agoYou are! Amazing, I was asking it before you were a on HN. I guess I would have though you'd mention it before? https://hn.algolia.com/?&query=Describe%20user%3Ajiveturkey&sort=byDate&type=comment https://hn.algolia.com/?&query=Describe%20user%3Ajiveturkey&...
- youngtaff 2y agoI started asking it over 25yrs ago… Never specified the level of detail I wanted but left it open to the candidate…depending on where they went it leaves plenty of room for follow on questions to probe their knowledge
- jiveturkey 2y agoYes. I invented this question approx 25-26 years ago. At the time it was a pretty fair question. Today it's a trivia knowledge kind of question. You will be "impressed" by a candidate that can use up the entire interview (very possible) answering it, but that proves nothing about the candidate. Unless of course the job is writing system documentation based on personal knowledge only.
- jiveturkey 2y agoi change my HN identity once in a while. this is the longest run for me.
- hoten 2y agowould be fun to do this while stepping through chromium w/ a debugger.
- gamedever 2y agoIt depends on the role. I suspect the majority of software developers have no clue. The majority of C, C++, C#, Rust, Java, Python people, really don't know, unless their job deals with the browser. Most game devs don't know.
- nill0 2y ago"All of the amazing things that modern computers do, are based on just ability to compute any computable function." - Ben Eater source: https://youtu.be/AqNDk_UJW4k?list=PLowKtXNTBypGqImE405J2565dvjafglHU&t=824 https://youtu.be/AqNDk_UJW4k?list=PLowKtXNTBypGqImE405J2565d... at 13:44s
- hinkley 2y agoThe button on your keyboard is depressed, making a connection between two wires. The circuit is made and interpreted by a microcontroller, which differentiates which key press was made based upon… What? You said excruciating…
- LoganDark 2y agoHow are you requesting the website? Are you typing into the address bar? Of which browser (and what version)? On which operating system (and what version)? On which hardware platform? Have you configured the address bar to also work as a search bar ("omnibox")? Are you typing a domain name or an IP address? Do you have any entries in your hosts file for the domain name? Is the machine configured to resolve hostnames on the local network? Is the domain name one of those? Are you connected to a network? Is your network connection over Wi-Fi or Ethernet? (or something else?) What is your network card and how is it connected? (If USB, which port? If PCIe, which slot?) What other network interfaces do you have? What access point are you using? Do you have a network switch, and if so, which one? Is your internet service over fiber or cable? Which ISP are you using? Gimme a second to look up their peering... I could go on but :)
- hydrogen7800 2y agoIs there an "explain like I'm 5" version of the answer to this question? I have read "The Internet explained from first principles" [0], and while I think I understood most of it in theory but, it didn't help me understand in practice. [0]https://explained-from-first-principles.com/internet/#preface https://explained-from-first-principles.com/internet/#prefac...
- remram 2y ago"excruciating details"? I don't think I would ever get to the network if you asked that. I would have to cover how you pressing "enter" gets encoded by the keyboard, how the USB bus works, the interrupt processed by the processor, how that context switch happens, how the next instruction is fetched and decoded by the CPU, how the code for the interrupt gets read, TLB, L1/L2 cache, pipelined execution, microinstructions, transistors, ... Depth-first doesn't work when the depth of reality is basically unlimited.