Technical Interviews Make Me Cry - <AUTHOR> http://blog.pamelafox.org/2013/09/technical-interviews-make-me-cry.html <comment><USER2> Oh, wow, 1000x this article. Forget about the crying thing, which makes it vivid and more interesting to read but might obscure the fundamental point, which is that _interviews make people incredibly uncomfortable_. Some of the calmest, most unflappable people I work with _shook visibly_ in their interviews with us.

What's important about that is: you are not getting an accurate read of a candidate's state of mind in a high-stakes interview. I think you have just a couple of options to improve your accuracy given that fact:

* You can take deliberate steps to lower the stakes in your interview process by changing the kinds of transactions that happen in the interview (for instance, by constructing interviews that involve collaborating on a problem instead of challenging the candidate).

* You can "discount" the signals you get from the interview, particular w/r/t already nebulous concepts like "confidence", "social skill", "enthusiasm", and the dreaded "culture fit".

* You can push more of the recruiting process into situations where the candidate controls their environment (for instance, by doing stuff at home, and on a fixed but flexible time scale) and less on in-person timeboxed interviews.

I'd love more ideas. We're trying all three, but it's a lather-rinse-repeat kind of situation. I'm getting good, I think, at spotting signals that are probably the result of jitters. And I think I've learned pretty conclusively that those jitters have zero correlation to on-the-job performance. But I have so much more to learn.

<comment><USER3> Aren't the high stakes the fact it is for a job?

The problem with interviews is that you have to make a decision and the candidate may not be themselves regardless of what you do. They may freeze up in a collab. Or collapse on a take home or be overly stiff doing a 2 month contract knowing the job is on the line.

I personally think technical questions are useful. Not hard ones, but softballs. It is never used to say someone is a hire, but is a requirement.

<comment><USER2> Who cares why the stakes are as high as they are? They're confounding the results of the interview process, which means they're the employer's problem, whether we like it or not, think it's fair or not, or whatever. The fact is that "we", as an industry, have a counterproductive habit of screening candidates for "ability to gracefully metabolize semihostile job interview experiences", which turns out to be not all that valuable an employee attribute down the road.

<comment><USER3> That's not an industry problem, it is a society problem where people need jobs to eat. Until you fix that problem, everything else is just dancing around the problem.

I interviewed a guy at a movie theatre 20+ years ago when I asked if he liked movies. He started sweating... And eventually said he had to cover medical expenses for his son and he was running out of time. He needed to work and would do what it took.

Until you fix the stakes, all you're doing is changing to another interview form that someone else will freeze up on.

</comment></comment></comment></comment><comment><USER4> Imagine someone walking up to Maya Angelou, handing her a white eraser marker, and asking her to write you a poem on a white board. She's obviously not going to immediately write you a poem, at least not one thats any good. Is it fair to judge her poem writing abilities by this off the cuff creation?Creators can only do their best creation when they are in their comfortable space. Asking a programmer to write code over the phone will result in substandard quality no matter what.

<comment><USER5> Sorry, if I ask you to write a function that determines whether two given words are anagrams of each other, "I need to get into my comfortable space for my creative process to work" is an evasion. No one's asking for a masterpiece, just a demonstration of basic competence.

<comment><USER6> Here is a first go at it:

[https://gist.github.com/rilindo/6575580](https://gist.github.com/rilindo/6575580)

Essentially, I just checked to see if the characters in the first string exists in other string and exits out of the code. It probably won't cover every use case (in other words, probably very buggy), but it is a start.

However, I have the luxury of relaxing while looking up the functions online, writing the code by my lonesome and then verifying it by running it directly. Last I checked, not any of these things are likely not present or available in a white board interview.

EDIT: I should at least put it in a function. :D

<comment><USER7> There's a much easier way to solve this problem than what you've done. And this is sorta/kinda the point of the article, where you will do well at a technical interview if you know some tricks in programming, whether it be through academic study or just on-the-job stuff.

To find if two words are anagrams of each other, do this:

sort(word1) == sort(word2)

done.

The trick is knowing that an anagram has a signature, and that signature can be found if you sort a word's characters alphabetically. Then you do the same to the other word and compare both of their signatures together. Voilá.

        "genuine class" == "alec guinness"
        because
        "aceegilnnssu" == "aceegilnnssu"

In Ruby you'd write your own alphabetic sorting function first, then apply it to each word.

        def sortAZ (word)
          word.downcase.unpack("c*").sort.pack("c*")
        end

        def is_anagram (word1, word2)
          sortAZ(word1) == sortAZ(word2)
        end

        puts "is_anagram(ARGV[1], ARGV[2])"

I recall seeing this trick in a Ruby book (probably PickAxe or something) and thought it was cool because I had never thought about finding an anagram in this way. Regardless, it stuck with me so, if this was asked in an interview, I'd be able to answer the question easily and look like a rockstar...when really it's just knowledge that stuck with me.

 _By the way, the alphabetic sorting here is done by unpacking each character into its number representation and then sorting the resulting numbers._

<comment><USER8> An even easier way is to check StackOverflow.

[http://stackoverflow.com/questions/9321654/java-anagram- find...](http://stackoverflow.com/questions/9321654/java-anagram-finder- algorithm)

One of the comments mentions: "Just had a phone interview with Amazon and this was the exact question they asked. Interesting problem if you have more than 10 minutes to solve it. – Javamann Jun 14 '12 at 20:46"

So....do you store this knowledge in your back pocket in case you need to check anagrams at work (which will be never), or do you toss it aside knowing you can hit StackOverflow if/when you need it?

It seems like the only time this stuff is "used" is on technical interviews.

I readily concede you can't substitute StackOverflow for general competence, but an algo for checking for anagrams doesn't seem like general competence.

<comment><USER5> The whole point of the question is that you don't already know the solution. If you already knew the solution the question would be less useful.

</comment></comment></comment></comment></comment></comment><comment><USER5> It's normal for people to be upset when they're stressed and frustrated and it's good for interviewers to be kind and help them through it. Freezing up shouldn't be a disqualifier by itself, it's just a barrier to finding out whether the candidate has the skills and knowledge you're looking for and one that the interviewer has a vested interest in helping to overcome.

On the other hand, stress and frustration are part of the experience of being a software developer. Lots of developers, myself included, would be better off learning to handle them productively.

</comment><comment><USER9> As a self-taught developer these stories scare me. I don't know the ins and outs of programming fundamentals, but I know how to program and I am really efficient in what I do as well. I've got big ideas, I have drive and vision and I think technical interviews can have the reverse effect of attracting real people.

For what I lack in low-level understanding, I more than make up for it on a higher level. Ask me to build something as a whole, don't ask me to solve mathematics questions and other unrealistic junk questions.

The biggest takeaway from this post is definitely this:

 _In my experience, when we are programming on the job, we 're given the problem and we have time to think about it. We have time to research possible solutions, we have time to try stuff out that we know will most likely fail, and we can wait until we have something decent before we show it to our colleagues_

^THIS. One hundred times over. How is putting someone on the spot to build something and build it perfect a good test of their capabilities and skills? That's not even how it works in the real world.

<comment><USER10> >For what I lack in low-level understanding, I more than make up for it on a higher level. Ask me to build something as a whole, don't ask me to solve mathematics questions and other unrealistic junk questions.

Without the math, how do you know that your solutions are any good? How do you know that the algorithm you sketched out on the whiteboard will work on the 1,000,000 records that we have in production in addition to the 5 record toy example that you worked out?

I mean, sure, I agree that brainteasers are in appropriate. Knowing why manhole covers are round or how M&Ms get their candy shell tells me nothing about your programming ability. But basic math and algorithms? They're a lot more important than you think. Knowing Big-O notation, various kinds of basic algorithms and a good assortment of data structures lets me know that you can evaluate a solution and find potential flaws and bugs.

 _How is putting someone on the spot to build something and build it perfect a good test of their capabilities and skills?_

There's a difference between perfect and working. I've never had an interviewer ask me for perfect code. Not at Amazon. Not at Google. Not at Facebook. I have, however, been asked for working code. The code doesn't need to be 100% bug free, but it should be syntactically correct and should solve the problem in a reasonable fashion (e.g. without using inordinate time or space).

Frankly, I like technical interviews a lot more than the alternative, which increasingly boils down to, "Make me a webapp and we'll evaluate your code." I'm sorry, but if I wanted to make a webapp for you on my own time, I also want to get paid for it. Even now, when I'm single and living alone, I have a hard time motivating myself to do homework problems. I can't imagine having to do something like that when I'm married and have children.

<comment><USER11> >> Without the math, how do you know that your solutions are any good?

He probably does it the same way you do, idea, code, build, test, analyze.

<comment><USER9> Yep, that's exactly how I do it. I've seen people use whiteboards and pens and paper to solve problems, but nothing solves a problem like tactfully tackling it head on and persisting until you solve it. Having said that, some people work better writing down their problems on a whiteboard and others physically solving them.

In my day-to-day I try and avoid writing as much code as possible. If someone else has solved the problem, I'll read through their code and understand it, then implement. Developers at the end of the day are hackers. I think as long as you know how and what to Google, then you're more than capable. The difference between a good developer and a bad developer isn't knowing all the answers it's knowing where to find the answers when you need them whether that be documentation, a Google search or even a physical book.

Because lets be honest here. In the day-to-day life of a developer what percentage of developers actually solve their problems manually using their brains as opposed to finding the solution on Stackoverflow, forum or blog post? I'd be willing to bet a large percentage do. When I get stuck on something I hit Google, in an interview if they were to take into account your problem solving skills in the form of a Google search, then that would be more than fine. But I am willing to bet most interviews don't allow you to search for answers.

<comment><USER12> _nothing solves a problem like tactfully tackling it head on and persisting until you solve it_

The problem with this approach is it very often leads to you getting stuck on a local optima. For many problems that is good enough, but there's a good chance you might miss an entirely different approach that will lead to more optimal solution.

</comment></comment></comment></comment></comment><comment><USER13> Saw Pamela speak at an HTML5 Meetup at Yelp a couple of months ago. She was smart, funny, engaging and genuine - exactly like she sounds in this article. Love her honesty and how she wears her heart on her sleeve.

<comment><USER14> Ha - glad you liked that talk!

Curiously enough, this interview happened 6 hours before that talk. And it made me wonder, "why am I giving a talk tonight?? how am I qualified?" Thankfully, I recovered my confidence by the time that talk came around, and you guys were such a cool audience. :-)

</comment></comment><comment><USER15> I really feel for the author. I had a similar problem, except on the other side of the table - evaluating whether candidates' solutions while interviewing them over the phone was excruciating.

I built [https://coderpad.io](https://coderpad.io) to make the whole programmer-interview phone screen process easier. It's like Stypi on steroids, because it comes with a live REPL. You can play around with, say, JS, right there in the window. I've found it much more accurately simulates coding alone: the experimentation, quick validation, and verifiability that editors alone don't have is sooooo important.

<comment><USER16> What a cool app ! I'll use it next time ! Bookmarked ! Is this by any chance open sourced ? I'd like to contribute if you need a hand.

</comment></comment><comment><USER17> Unfortunately, there are way too many unqualified people out there applying for jobs and ruining it for the rest of us. As a hiring for manager for years, I've seen a huge number of people try to fake their way through interviews. They can talk vaguely and grandiosely about all the technical problems they solved at their past jobs or in school. But the breakdown always happens when you ask them to solve a problem for you.

Sure, they may be undiscovered geniuses who are too nervous to think straight. But where there's smoke, there's fire, and in this case behind the smoke are ten other people lined up to interview for the same job. All things being equal in terms of general personability and hygiene, the one who displays technical competence gets the job. Just imagine if the odds weren't so skewed in favor of job hunters. When the economy slows, when your jobs are really subject to outsourcing to a lowest bidder overseas for a fraction of the price, these sympathy hires will be a thing of the past.

</comment><comment><USER18>
      A few months ago, I decided that I really wanted to
      join Khan Academy. I would longingly browse their
      jobs page in my idle hours, read their intern blog
      posts from top-to-bottom, and fork their repos on
      Friday nights. It became a bit of an obsession.
      (Shh, don't tell them how creepy I am.)

I realize that she's joking here with the creepy bit, but I have to ask. Does anyone honestly think this kind of behavior is creepy?

To answer my own question, as someone who interviews people quite often, I'd love to hear that a candidate did this sort of thing. Honestly, if you're worried that you're going to be weak in your interview for a company which you really want to work for, do _this_.

Oh, and also - if interviews make you nervous, please tell your interviewer. For some people it's really obvious that they're nervous, but others do an amazing job hiding it. If there's any chance at all that you think your interviewers aren't aware of your nerves, just tell them.

First off, we're used to it. I'd guess somewhere between 60 to 80% of my interviewees are visibly nervous. Further, quite often the people interviewing you experience the same sort of nervousness when they're on your side of the table. If they're good at what they're doing, they'll totally empathize, and clearing the air helps a lot.

Unless you're interviewing for a sales type position where it's essentially your job to be interviewed, nobody in their right mind should view nervousness as a sign of weakness. Personally, about 9 out of 10 times this happens I err on the side of "this person really wants this job" rather than "wow, this person must be nervous because they don't know their shit."

<comment><USER19> > To answer my own question, as someone who interviews people quite often, I'd > love to hear that a candidate did this sort of thing. Honestly, if you're > worried that you're going to be weak in your interview for a company which > you really want to work for, do _this_.

Guilty as charged. There are a handful of companies that have provoked this type of reaction from me. I have yet to actually get an interview from any of them, though.

I'm actually surprised how much Pamela sounds like me when it comes to interviewing. Almost exactly like me. I just have crippling anxiety on top of that which I only recently got taken care of.

</comment></comment><comment><USER20> One approach I've tried recently is getting a digital ocean box and giving the prospective candidate access to the box 24 hrs prior, just so they can install whatever tools they like if they so choose, and then giving the candidate a simple problem to build on the box for 30 minutes.

Then we mute the phones for 30 minutes, so that people can work in peace, but we're around if they want to ask us any questions.

And at the end of the 30 minutes we discuss how far they got, and what they would do differently, etc..

We've only done this twice, but I think it was fairly useful both times. Haven't done it enough to know whether or not this is a good approach.

</comment><comment><USER21> I had the same thing happen to me while interviewing for the position I hold currently.

I had gotten through 6 interviews without a hitch. They were all culture related, personality-based, "how will you fit with our team" type. Young, scrappy kind of team, who didn't believe in big corporation-type interviews.

Well, the interview in question came. I'm a rockstar when it comes to interviews. I'm personable, confident, funny, and I carry myself really well in conversation. But what was different?

The guy I interviewed with previously held a position with Microsoft.

And he did things the Microsoft way.

I'm nothing but a loose guy. I don't have the college education to back me. I hadn't worked on any famed projects. I didn't commit to open-source projects, have a network to vouch for me. I had a few side projects, but they were nothing more than me just building things. I owned a few companies in my mid- late teens that sold for a good amount of money, but nothing I'd write home about. I'm a utility player that can wear many hats: front-end, back-end, sysadmin, marketing, advertising, copywriting, legal stuff, financials, client management, databases... I don't do any one thing particularly well (except for maybe back-end) but I do all of them pretty damn good.

And when I heard this guy was from MSFT I thought "well this is going to suck." Why? Because I thought that he may not care that I'm as scrappy as I am.

The position I was applying for wasn't anything specific. It was just that utility player. I wasn't expected to write gobs of code, I wasn't expected to manage systems. I was just expected to do what was asked of me, and take ownership of it.

So the interview began. He asked me some really, really low-level questions. Questions that you'd be asked on an exam if you're a CSCI major at MIT. I had no idea how to answer them, so I tried to explain them high-level and ignore the fact he wanted low-level answers.

That got me nowhere except him thinking down on me.

When it came down to me writing code, I just blanked. He wanted me to write a class for a shopping cart and he wanted to see how I'd apply a coupon code, how I'd manage the items in the cart, how I'd sort and group them together, etc. It lasted all of five minutes when I just disconnected from the internet, took the battery out of my phone, and sat there.

I suffer from crippling anxiety, and this was no exception. I've learned how to manage it better since, though.

About twenty minutes after my meltdown I emailed the CEO of the company. I was in tears, because I wanted the job so badly, and I explained that to him. I said that the guy was an asshole, really belittling, and didn't reflect the values of those who I had spoke with prior.

I still got the job, and I'm still with them today. It's the butt of a lot of the jokes we have with our team of five. "Josh, is this someone you'd consider hanging up on?" or "Well it's okay, because Josh once hung up on someone that was interviewing him. Thus, this isn't that bad in comparison!"

Damn right I take it like a champ.

<comment><USER22> "About twenty minutes after my meltdown I emailed the CEO of the company. I was in tears, because I wanted the job so badly, and I explained that to him. I said that the guy was an asshole, really belittling, and didn't reflect the values of those who I had spoke with prior" \- To me it's perfectly clear who was the real asshole there. Bitching about technical problems to the CEO, haha..what a loser. You didn't have the caliber to handle, you should have not blamed anyone else but yourself.

<comment><USER23> The fact is that he is still with that company, so he obviously was a good fit. So it is the interviewer who didn't have a caliber to do his job - determine if the person was a good fit.

</comment></comment></comment><comment><USER16> I recently had an interview with Google London, Oh boy did a screw it up, it's like I'm reading my experience, my mind simply went blank ! The interviewer was like the nicest person I've been interviewed by (he's pretty famous and I recognized his voice btw). The task was hilariously easy (I've done the same thing like 2 days ago), but when I was asked to work on it on the phone I bombed ! Basically I was thinking of everything else BUT the problem at hand. The guy kept being nice telling me that this happens all the time (you know people freezing). At the end I wasn't lucky enough to proceed to the next level and frankly I felt that I deserved to fail and I should not be a programmer and what not. Very depressing - I took at as a BIG personal failure and missing an opportunity of a lifetime. I think the thing that makes it worst is the fact that I honestly knew this, after the interview was over I looked at the problem and couldn't believe that I wasn't able to do it. Complete mental block. I think I've recovered since, and I'm trying to improve. Just want to say (because I've heard complaints from other people) - Google were very nice, and worked very quick with me, I've submitted my CV and got a call the same day (maybe just lucky), then I basically chose the date of my interview and they were spot on. Also they gave me good feedback.

</comment><comment><USER24> "If you ever suffer from Impostor syndrome, you should probably prepare even more, because the standard interview situation will make you feel like an Imposter in the worst way."

It may also help to think of that Dunning-Kruger study [1], according to that it would be normal for the competent to be full of doubt while the less experienced would be full of confidence.

[http://en.wikipedia.org/wiki/Dunning–Kruger_effect](http://en.wikipedia.org/wiki/Dunning–Kruger_effect)

</comment><comment><USER25> To share my experience, the kinds of "make you cry" interviews which test a lot of CS knowledge seem relegated to the Bay Area companies which I interviewed with. All my interviews with companies in Texas (where I live) would interview more to ask about your experiences with a technology, challenges you'd faced when working with a similar stack, and maybe ask how you solved some tricky performance problem. They tended to focus more on the real world experiences than the academic knowledge. Once in a while someone would throw a framework- specific curveball your way to make sure you knew what your resume said you knew.

This isn't a knock on the companies in the Bay Area, because clearly what they are doing works for them, but it's just a drastically different style that feels foreign to me.

When those of you in the Bay Area interview every few years for new jobs, do you just brush off all your CS textbooks, study/review for a month, and then start the process?

<comment><USER8> I happened to have a conversation with someone about this recently.

Software developer: the career where you study to get the job, toss much of that away when you actually do the job, then study for the interview for the next job, where you toss much of that away when you actually do the job...

It's a rhetorical question, but I can't understand studying for a job. You either do it on the job or you don't. Studying, however, puts a ton of stuff in short term memory where it gives the appearance of brilliance.

<comment><USER25> See that's where I want to dig deeper with those that really believe in this style of interviewing. Clearly it must have some value other than the weed-out factor.

Are there engineers who actually keep the algorithms/data structure stuff in their head and find small ways to apply it while they work on a standard web or mobile app? That's the only way I could see the knowledge having any value, but I've never worked this way nor have I observed anyone who works this way.

</comment></comment></comment><comment><USER26> Pretty funny to see this, because you've interviewed me before (not super technical, though!). Even more so, I think I got the _same_ question when I interviewed for KA ;) Small world.

Great post, it's really refreshing to see someone with your hacking chops experiencing the same anxieties as a little college student like me.

<comment><USER14> I seem to remember that while I was interviewing you (for Coursera), I was browsing your Github repos and checking out your cool libraries. I didn't feel a need to test your technical chops when I could see them in front of me. I'd rather get to know other sides when I can. :-)

</comment></comment><comment><USER27> I'd also recommend - if you're an interviewee normally, try to join an interview at your current job (if possible). I was quite anxious about being interviewed some time ago. Being on the other side of the table once changed everything however. The amount of preparation, ideas, planning, time needed to interview someone is just crazy if you want to do it properly. And you're still left with: what if I didn't ask the right questions, what impression I left on them, are they going to be a good fit or was their behaviour just an act for today, etc.

Now I know that the people of the other side are either just as anxious to do everything right as I am, or they just don't care much. One way or another, I'm just not able to get nervous about an interview anymore. The best ones turn into pleasant chats about tech anyway.

</comment><comment><USER28> Rather relevantly, this article [1] was posted a few days ago.

"In improvisational acting there is this great rule that I've used in my life: 'Act As If'. Act as if this is completely normal. Of course I'm supposed to be interviewing Barack Obama. Of course I'm supposed to be playing guitar with Bruce Springsteen and of course there's a big part of me inside that's saying: 'What are you talking about?'"

It's been in the front of my head since I read it and, while I can't say I've passed any major coding interviews, it's certainly helped quell the screaming voice inside me that is the source of my constant anxiety.

[1]: [https://medium.com/design- startups/3600f4672b3e](https://medium.com/design-startups/3600f4672b3e)

</comment><comment><USER29> You know, there's a lot of these interview articles. Where whiteboarding doesn't work. Or whiteboarding works but filters out a vast majority of applicants. Give homework problems instead. No, applicants can easily cheat or resort to copy pasting code when given time away from the interviewer. The future is GitHub repos to see candidates' prior work. No, open-source code is not verifiable and easily falsifiable.

What about determining if an applicant has solid fundamentals, not overthinking it, and having him or her learn on the job? Whatever happened to providing training? Is there really no room for apprentices or novices in modern tech companies?

</comment><comment><USER30> This post hit a nerve! This is exactly what got me working on [http://www.phoneinterviewme.com/](http://www.phoneinterviewme.com/) to help fellow developers prepare better for their phone interviews.

Here is how it works. You get a call at a time you pick on your phone line. You are asked some automated questions related to the interview you expect. Once you are done, you can go back and listen to your session to see how you did. I was hoping this would help developers practice and get over the fear during an actual interview. Would this help you be better prepared?

</comment><comment><USER31> I recently had a couple of skype interviews with a well-known startup. First one went fine and I got good feedback but during the second one I was asked to share my screen & work on an IDE of my choice. That being something new, I didn't feel comfortable coding and though I did answer, the interviewer felt I was a bit (iffy) - I had written a conditional check & then changed it later. Interviews can get pretty hectic and it is way easier to say no to someone you don't even look at.

</comment><comment><USER32> For me, what helps a lot with tech interview stress is to already have a job. It turns the tables so that I don't really need them, they need me. The change in attitude is powerful and gives confidence.

</comment><comment><USER23> Hm, I've never heard that Google was giving take-home assignments, and even with the job relevant tasks.

<comment><USER14> That may have only been for Developer Relations and only years ago. Not sure if they're doing them anymore.</comment></comment>


Ask HN: Why am I not permitted to crawl HN? - <AUTHOR>

I was trying to crawling all articles on HN to do some data analysis stuff just for fun. But it seems like my IP is banned after I've crawled a few hundreds pages(at a very low rate of a few seconds per page).
I believe it would be a good thing if HN allow people to get its data just for some fun side-projects, or even better make it publicly available. It would encourage the hacker culture to just do some fun and innovative things.
What do you guys think? <comment><USER2> Firstly, read the robots.txt page (<https://news.ycombinator.com/robots.txt>), it states a crawl-delay of _30 seconds_ so don't crawl faster than that. Secondly, obey the robots.txt page. Don't crawl pages listed in their Disallow rules.

<comment><USER3> TIL robots.txt has a crawl-delay directive. Thank you.

</comment></comment><comment><USER4> <https://news.ycombinator.com/item?id=4694308>

pg says that <http://hnsearch.com> is the place to get data.

</comment><comment><USER5> I think you should understand things from the POV of YC. Letting people crawl the site at will would force PG to scale the site to a bigger size. For what? So you can get your free data?

</comment><comment><USER6> Here's a guide on how you are able to get HN data fast without being banned: <http://jcla1.com/blog/2013/05/13/crawling-hackernews/> Disclaimer: It's my own blog.</comment>


Ask HN: Sample of code ? - <AUTHOR>

Some job ads mention to provide a sample of code. I find it extremely hard to provide a sample of code that would represent how I work. (I'm a web developper). When trying to find an example, I was always unable to dig out something without giving 130 pages worth of code...<p>How would you do that ? What do you show when asked ? What is working ? <comment><USER2> Code is not always requested just for the purpose of representing the applicant. Sometimes interviewers (like me) just want to have code to hand which you are guaranteed to be familiar with; It's nicer to reference code you've actually written to ask specific questions about, say, stack vs heap usage or OO design.

</comment><comment><USER3> "Here's my website, go look at some of the open source code I've published" tends to work well. The more code you throw at people the better -- that way it's clear that you're not hiding a large volume of garbage while showing them a few good lines of code.

</comment><comment><USER4> This is where contributing to open source really comes in handy. For one of my earlier jobs I was unable to show any code from previous employers but had a project on SourceForge. From what I heard, it helped land me the job.

</comment><comment><USER5> Perhaps you can just say "here's something I've built, completely by me."--I don't seen how a few lines of code is going to say much, writing neat code is like comp sci. 101.</comment>


How a Google side project evolved into a $4B company - <AUTHOR> https://techcrunch.com/2019/03/29/how-a-google-side-project-evolved-into-a-4b-company/ <comment><USER2> Last years book "Never Lost Again" is a good account of the Keyhole/Google Earth/Google Maps story. ([https://www.amazon.com/-/dp/0062673041/](https://www.amazon.com/-/dp/0062673041/))

</comment><comment><USER3> TechCrunch has never been a good source of tech news - even from its Michael Arrington's days. But now it's even worse.

</comment><comment><USER4> First time coming across techcrunch's "extra crunch" paywall - It's a shame they give you half the article before mentioning it.

<comment><USER5> I guess my AdBlocker blocked whatever they were trying to use to show the paywall, so the story just abruptly ended in the middle.

<comment> toby- Same. I use uBlock Origin, and the article just fades out in the centre...

Seeing as the other comments mention this website hijacking the back button and other nasties, I don't think I'm going to whitelist this site in uBlock to test, even temporarily.

</comment></comment></comment><comment><USER6> Interesting side-note for anyone seeing a paywall, if you set Safari to only ever use reader mode on techcrunch URLs it appears to bypass that completely.

</comment><comment><USER7> Got a few paragraphs in before finding out it's behind a paywall that's only accessible from a few countries.

</comment><comment><USER8> Paywall alert. The article does not mention till very late that it's paywalled.

</comment><comment><USER9> What a horrible site, it tries to hijack the back button, full screen cookie warning and uBlock has over a dozen items blocked.

<comment><USER10> It's so bad that I have stopped reading TechCrunch articles. The options for GDPR consent are excruciatingly painful to choose and takes a large time to even get to the appropriate point.

<comment><USER11> [https://outline.com/KhBGXC](https://outline.com/KhBGXC)

<comment><USER12> This does not have the full story, only the free preview text.

</comment></comment></comment></comment><comment><USER13> Techcrunch links should be banned imo..

<comment><USER14> Why?

<comment><USER15> Well for one they hijack browser behavior. Their site is a train wreck of "me too" JavaScript development.</comment></comment></comment>


IBM 360 Model 20 Rescue and Restoration - <AUTHOR> https://ibms360.co.uk/?p=64 <comment><USER2> Discussion from a few days ago: [https://news.ycombinator.com/item?id=19956878](https://news.ycombinator.com/item?id=19956878)</comment>


The time I accidentally transported a brick of heroin from LA to Seattle - <AUTHOR> https://threadreaderapp.com/thread/1130704462950076416.html <comment><USER2> Wow, it's just like being stuck listening to some drunk idiot ramble his way through made up stories about his hella epic road trip!

And then I'm like and then the dude is like and then I'm like and then he's like and I'm like

And they're totally making this totally real story into a movie [https://twitter.com/IamShaneMorris/status/113108889397617459...](https://twitter.com/IamShaneMorris/status/1131088893976174592)

<comment><USER3> He basically, totally, like, admitted to interstate drug trafficking.

What's the statue of limitations on that? I'll bet he changes his story in a hurry to 'I made it all up'.

<comment><USER4> There's probably a _mens rea_ (intent) requirement, which arguably wouldn't be satisfied if he didn't know (or have reason to know) that the heroin was in the van until he was in Oregon (where he sold the heroin). And there a good chance that the statute for state level crimes would have run already. Hopefully he talked to a lawyer before writing this up!

</comment></comment></comment><comment><USER3> Is this an exercise to see how many times the word 'like' can be slipped into an article?

</comment><comment><USER5> >accidentally

<comment><USER6> >I won't go into all the details, but I managed to sell it all to one person. It was lower risk. Plus, I'm not a drug dealer.

"Oops, I accidentally sold $40,000 worth of heroin. But I'm not a drug dealer. I'm a good guy!"

<comment><USER7> Probably he sold it for a couple hundred or a grand to his local pot dealer. Many people I know know at least one person who deals with pot, it is relatively common, and some dealers also deal in harder stuff than pot.

</comment></comment></comment><comment><USER8> After seeing his picture it becomes clear where he hid the brick of heroin.

</comment><comment><USER9> Cool story bruh. Especially the part where you basically let a known criminal go without notifying law enforcement that later lead to said criminal raping and killing a 13yo girl.

I can't get over how casually he dropped that fact as if it had nothing to do with him.</comment>


The potential of deep-sea mud as a source of rare-earth elements (2018) - <AUTHOR> https://www.nature.com/articles/s41598-018-23948-5 <comment><USER2> I wonder what would be the impact of any mining operations on deep sea wildlife. The article doesn't seem to discuss this.

<comment><USER3> The fact that the authors don't (when they surely must be aware) makes you wonder if they're on the take somehow.

Or have been pressured into silence.

<comment><USER4> If you click on the authors' names, you'll get enough info to roughly determine their areas of expertise. Based on a few names I clicked, it sounds as though they're focused more on brainstorming potential solutions for energy and resource shortages than evaluating the environmental impacts of those solutions. They'll probably leave the latter part to their peers who are more qualified to make such assessments.

There's no argument that environment impact needs to be evaluated--that's just not what these particular people are qualified to assess. It's unlikely that the entirety of academia will avoid discussing the potential consequences of these ideas. Those who are qualified to do so will.

</comment></comment></comment><comment><USER5> nah, let's go hunt for rare-earth elements left over from the creation of the solar system out where we aren't in danger of stressing an already stressed ecosystem.

Let's pay the tremendous up-front costs of lifting mining operations out and reap the long (caveat: very long) term benefits of doing so.

edit: In case that came across as sarcasm, I am in dead earnest. Whatever the relative costs of so-called asteroid mining versus deep sea mining, the ecological cost tips the balance waaay in the favor of asteroid mining. It's just that we'd have to have a longer-term mindset than we currently do.

<comment><USER6> Just for the sake of discussion, I'll say that sending anything into space also creates a lot of pollution on Earth (just think about all the energy necessary to build and power our rockets). Mining asteroids would still have an ecological impact - higher, lower, I don't know. But something to keep in mind.

<comment><USER5> This is very true, but my thinking is that cost is almost all front-loaded - once we get equipment up there to accomplish the mining, the launches in support would not be terribly frequent, I think, right?

<comment><USER6> That's possible, depending on how much fuel will the operation consume when in space - and where it will come from. At the moment, I think we would need to send the fuel to move all cargo from Earth. Being able to create it directly in space would change everything, of course.

</comment></comment></comment></comment><comment><USER7> I'm no expert, but is lifting stuff from the deep sea not exorbitantly expensive? The word 'costs' does only appear twice in the article, and there it talks only about potential reducing costs by separating the mud with a hydrocyclone (1) on the sea floor...

(1) [https://en.wikipedia.org/wiki/Hydrocyclone](https://en.wikipedia.org/wiki/Hydrocyclone)

<comment><USER8> Mining is also quite expensive. Conceptually, the process for lifting from the deep ocean is quite a bit simpler: attach the load to an airtight bag, and release a little bit of air into the bag. The load will float to the surface. There would still be a process involved in getting compressed air to the deep, but it might be simpler than boring holes in the earth.

Of course, it's still likely that the costs involved mean this idea wouldn't work in today's market conditions. That doesn't mean that conditions would never change...

<comment><USER9> Quite a bit of mining involves picking stuff up off the ground. The worldwide mining industry is surprisingly small due to it's high efficiency.

Across all materials from coal, diamonds, salt, copper, etc it all adds up to just ~600billion per year in revenue and profit margins that jump all over the pace from year to year.

PS: Rare earth minerals are also generally discarded. It's the effort to remove them from ore that's the issue not finding them.

</comment></comment></comment><comment><USER10> Pretty cool, but worth noting that most rare-earths aren't actually that rare and supply shortages tend to be because of the long delay in ramping up mine production. We aren't close to running out of any metals/minerals the last I heard. I'd be interested in seeing the economics of mining this mud compared to more traditional methods.

<comment><USER11> I'd be more interested to see how economy reacts if a massively used resource going to be depleted.

<comment><USER12> We've been getting warned about reaching peak oil / diminishing oil production, but so far that hasn't happened yet as far as I know (that moment has been postponed again because of the highly destructive fracking process)

</comment></comment></comment><comment><USER13> Peak-a-Boo [https://cassandralegacy.blogspot.com/2018/05/rare-earth- depl...](https://cassandralegacy.blogspot.com/2018/05/rare-earth-depletion- non-solution-for.html)

</comment><comment><USER14> This has a slight air of the manganese nodule seabed mining that was propagated as cover for the Glomar Explorer expedition...

<comment><USER15> Ha, agree. This is an amazing story if you haven't read about it: [https://en.m.wikipedia.org/wiki/Project_Azorian](https://en.m.wikipedia.org/wiki/Project_Azorian)

The kind of thing that kind of makes you second guess the "whacky" conspiracy crackpots.

</comment></comment><comment><USER16> Yes, let's anger Poseidon. That's a good idea.</comment>


Wacky interview questions - <AUTHOR> http://www.geekwire.com/2013/cows-canada-24-wacky-interview-questions-amazon-google/#utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+geekwire+%28GeekWire%29&utm_content=Google+Reader <comment><USER2> These aren't just wacky, they are stupid. "How many ping-pong balls can fit in a VW bus" is just about the worst question I've ever gotten. Little or no relation to software development.

Here's what we do. Interested in feedback, please!

Via the phone:

* A few background questions (why are you looking for a job, what sounds interesting about what we are doing) (20-30 minutes)

* A bunch of topgrading questions <http://www.smarttopgrading.com/> (maybe an hour)

In person:

* A few programming challenges (of increasing difficulty) that involve stuff the candiate is not expected to know (some algorithmic, most problem-solving type thing), and has to solve it via Google and Stack Overflow or whatnot, to make sure they can work outside of their comfort zone (I've had a lot of people freeze up at "Write a program to get Time from outside of the system", for example) (couple of hours til lunchtime)

* Then pair programming for the rest of the day to make sure we can all get along with this person (after lunch, and next day if possible)

If reasonable, we put a new hire on a 1 month contract before we make a final offer (we give a tentative salary offer at day one so they know approximately what it'll be but cannot judge equity grants until we have more time with them).

<comment><USER3> > "How many ping-pong balls can fit in a VW bus" is just about the worst > question I've ever gotten.

The point of questions like this is "Does this guy have any common sense?" Some of my least favorite hires were people who were whip-sharp at the details of their chosen programming language, but then when hired, would go off and do crazy and impractical stuff with it.

Whether or not the question accomplishes a good evaluation of someone's common sense is up for debate, but unless you're hiring drones, you do have to ask some questions that get a broader picture of the way the person thinks.

(BTW, your "pair programming for the rest of the day" is a great way of getting that. But pair programming doesn't/wouldn't work at any place I've ever been, for a variety of reasons.)

<comment><USER4> > The point of questions like this is "Does this guy have any common sense?"

 __GROOOOOAAAAN __

Maybe twenty years ago, and maybe if you were the individual to think up the question.

Honestly I'm so goddamned bored with these unoriginal blither-blather questions I consider them a strike against the interviewer and the company.

<comment><USER3> I actually have never asked an estimation question, but I understand the motivation for asking this kind of question.

I'm curious--what do you ask in interviews to get at a candidate's common sense? It's not very easy to do.

Or do you think you don't need to assess common sense at all? Maybe it's not, but like I said, a lot of the hires I later regretted came down to something like that.

<comment><USER4> > Or do you think you don't need to assess common sense at all?

 _shrug_ If we're talking developers... The ability to drive to the location on time, answer questions without going blank are good indicators of common sense for me. Extracurricular activities, anything from volunteering at an animal shelter, to making civil war models to home brewing beer, are huge in my book because they are a good indicator of a grounded individual. That mixed with some pair-programming should give more than enough information. YMMV.

</comment></comment></comment></comment></comment><comment><USER5> _"What's your favorite song? Perform it for us now."_

I'd have to go with "Take this job and shove it". There's nothing worse than places that mandate you be "fun" and "offbeat". If I _am_ fun/offbeat, all you as an interviewer have to do is make me comfortable enough to show it. If you can't do that, why do I want to work for you?

<comment><USER6> It could be part of the job description, not every interview is for a developer.

<comment><USER7> It was for a company which does "Advertising & Marketing Services."

</comment></comment></comment><comment><USER8> I don't really ask these kinds of questions, but I do kind of like them.. the giant puzzle/estimation types. Can someone who asks these regularly give some feedback on how well you think they work? I'm curious how much you end up learning from them.

That said, there are some doozies in this list. For example: _"On a scale of one to ten, rate me as an interviewer"._

Um, okay but only if the next question is to rate you as an asshole.

<comment><USER9> I once interviewed at a place that had an interesting spin. They gave me three fermi questions, which I had 5 minutes total to estimate:

1\. Mass of the earth in kg 2\. US GDP 3\. Number of carriages on the London Underground

I then had to give a 95% confidence interval for each one (i.e. an interval that I was 95% sure the true answer lay in) and then asked, for each estimate, which bet I wanted to take:

1\. Bet that the answer is inside the interval at odds of 10 to 1 on. 2\. Bet that the answer is outside the interval at odds of 30 to 1.

There's a lot of work that has to be done there, and potential for a very interesting discussion (this was for a trading/research role, rather than a software developer role).

<comment><USER7> Which would be more impressive: that I long ago memorized that the Earth's mass is about ~5.98E24 kg or that I could estimate it knowing Kepler's third law (T-squared = C * R-cubed) and orbital information about the Moon(28d@250,000miles), Earth (365d@1AU), and Mercury (firstname.lastname@example.com), where 1AU=93million miles. Or that I could cross-check it by knowing the circumference of 25,000 miles to get the approximate volume, and knowing that the density is around 5tons/cubic meter? Or I could use the orbital numbers to estimate G then knowing that Earth's surface gravity is 9.81m/s/s then I can also get M_earth.

All of those involve memorized numbers, and most require physics knowledge. But I have a feeling that the more complicated ones would impress them more, and make them more likely to hire me. If that's the case, then my strategy is not to give the answer which I know, but to exaggerate the difficulty by hiding my actual knowledge.

GDP? It's about the size of the debt, which is something like 7 trillion, so I would have estimated $10 trillion. (Actually, the debt is $12, and the GDP is $15.) I might have double-checked my answer because I think the budget is about $4 trillion, and 20% of GDP giving $20 trillion. (Actually 3.54 trillion and 22.6% GDP).

How is this memorized knowledge useful? Especially since I don't know how the GDP is actually calculated? Nor the difference between GNP and GDP. So this mostly tests to see if I've paid attention to the economic news. It's almost like asking me if I know the hottest temperature ever recorded in Death Valley.

And as for the London Underground - too many variables for me to even estimate. Turns out to be 4134, and that what I thought was part of the Underground was actually rail services. If forced, I think would have said: 20 rail lines? (Actually, 11.) At rush hour, 10 cars separated by 5 minutes distance, for a total of about 90 minutes per line? Which gives 3600 cars. I probably would have rounded up to 4,000 for spares, and then been amazed at how close I was. (Ahh, I forgot the factor of two because trains are going in both directions. And I think the inter-train spacing is less than 5 minutes on some of the lines.)

But this only works because I've been to London and made those observations. Without that experience, I would be off by an order of magnitude.

So there you go - this proves that I have a degree in physics, that I follow the news, and that I've visited London. It helps with the job you applied to because ... ?

(And if you say it's because I can reason about these sorts of problems, then, see "have a degree in physics" and add "and also math.")

<comment><USER9> Almost all of the interesting stuff comes _after_ you've made your estimates (although the process of getting to the estimates is not completely uninformative).

If the candidate performs well on this question, then they have shown:

1\. They have the ability to reason about problems in a potentially new domain.

2\. They have the ability to pare down a problem to what is important and what can be neglected.

3\. They can make good order-of-magnitude estimates (very important for an equities trader).

4\. They are aware of the typical size of their errors, or can estimate them.

5\. The are aware of the typical _sources_ of error.

6\. They understand the notion of a confidence interval and can apply it to real-world situations.

7\. They can reason about bets with different characteristics (e.g. different expected value, different skew characteristics) and choose a good portfolio of bets.

I think that knowing how GDP is calculated is useful information for someone working in finance. Especially someone who is going to have to trade through economic announcements. Would you hire a trader who _didn't_ follow economic news?

PS re "shows you've visited London" - the interview was _in_ London. I assume if it had been in New York, they would have asked about the New York metro.

<comment><USER7> I passed the first test on rote memorization. The second was nearly the same. Only the third would have given information about my ability to estimate, which isn't enough to give real information about those 7 bullet points. I remain doubtful about the utility of these tests.

There is nothing, for example, which probes my experience with statistics.

Here's a more in-depth test. We run an medical experiment on lab rats. The protocol says that we will experiment on 20 rats, and that a mortality rate above 30% is too high so we must stop the experiment. After 5 rats, 2 have died. Should we stop the experiment now? Why or why not?

One could look at that and say that a 2/5=40%>30% so of course it should be stopped - it's higher than the allowed rate.

A better response is to point out that if 10% is acceptable, then there's a 0.9^3 * 0.1^2 * C(5,3) = 7% chance that this is an expected statistical fluctuation, and that the experimental protocols should have given some guideline on how certain one needs to be in knowing if the mortality rate was too high.

An even better response would be to point out that this means the first three rats lived, and it was only rats 4 and 5 which died, as otherwise the experiment would have stopped earlier under this protocol. In that case the possible experimental states are: 1) first rat died, so the experiment stopped = p. 2) first lived, second died, stop = p. 3) first lived, second lived, third died, stop = p. 4) first, second, third lived, fourth died, fifth lived = (1-p). and 5) first, second, third lived, fourth and fifth died = p giving (assuming I recall how to do this correctly) p+p+p+(1-p)+p = 1.0 or an estimated mortality rate of p=0.3.

In other words, this experiment is allowed to keep on going under the given protocol.

But this sort of modeling awareness is not present in the three tests you mentioned, despite being directly relevant, I assume, to what a trader does.

<comment><USER9> Yes, this kind of statistical modelling is certainly very relevant. I don't want to give the impression that this was the only question I was asked, or that it covers everything you need to know about a candidate. The entire question and discussion took about 15 minutes. I was asked questions of a similar kind to the one you propose in the other 11.75 hours of interviews.

</comment></comment></comment></comment></comment></comment><comment><USER10> I can see where most of these are coming from. Estimation, consulting/sales, personality, management & leadership. The penguin in the sombrero is harder to pin down. Are they trying to see how you analyse novel situations? As in, "Well, it's wearing a sombrero but comes from the antarctic, so it's likely been on holiday. Since this office isn't in Mexico or the antarctic it's probably on a travelling holiday, which means its young and doesn't have any money. Since it's a construction company, best case is it wants a job as a labourer. Worst case, it wants to use the phone to call its parents and ask for a bail out." I know, call me Sherlock. I expect I've missed the point though. I really would like to know what other people have to say about this question.

<comment><USER11> > The penguin in the sombrero is harder to pin down.

My response would be, "If a penguin in a sombrero walks through the door and starts talking, the most plausible reason for why he's here is that you've spiked my coffee with LSD."

</comment></comment><comment><USER12> _"Have you ever stolen a pen from work?"_

The correct response to this question is to say "Could I please hold your pen?", and wink slyly.

<comment><USER11> This reminds me, I lost my pen and it's time to grab a new one.

I consider it stealing as much as I consider using the toilet paper they provide for me stealing.

</comment></comment><comment><USER13> "If you had turned you cell phone to silent, and it rang really loudly despite it being on silent, what would you tell me?"

Go see an ENT specialist.

</comment><comment><USER14> "Calculate the angle of two clock pointers when time is 11:50."

I know the correct answer is supposed to be 0, but the hour hand moves closer to hour+1 as minutes approach 60. I guess I would ask for a compass.

Another fave is: "How many quarters would you need to reach the height of the Empire State building?"

My answer would be: "What's the price of admission?"

<comment><USER9> The minute hand is at 300 degrees and the hour hand is at 354 degrees, so the correct answer is 54 degrees (subject to me not having messed up the arithmetic).

<comment><USER15> Interesting, I come out to 55 degrees this way:

30 degrees between hours. 10 is at 300 degrees, 11 is 330 degrees. 50 minutes into the hour is 5/6 of 30 or 25. 330+25 == 355.

<comment><USER9> You're totally right, of course. I originally wrote 55 degrees (using exactly your argument) then looked at an actual clock and edited my post. Overthinking...

</comment></comment></comment></comment><comment><USER16> Has anyone been asked any of these? I'm curious because I've been asked #18 before.

<comment><USER17> I am pretty sure (and given this is HN I'm sure a googler will be along soon to confirm/deny this) that Google have a policy of no longer asking those kind of brain-teasers for their software engineering roles. They may still do so for PMs, etc.

Certainly when I had my Google on-site for an engineering role I was spared the infamous questions that crop up in articles like this from time to time.

<comment><USER18> Boy, I hope so. I've got my on-site on Monday!

<comment><USER17> Hope it goes well for you! Even if, like me, you don't end up with an offer I think they're fantastic experience.

</comment></comment></comment></comment><comment><USER19> > How many diapers does America go through in one month?

"One too many, if you make me work on J2EE."

</comment><comment><USER13> "How would you rate your memory?"

Sorry what was that again? I forgot what you asked

</comment><comment><USER20> M$: 1.Define diaper. As in adult, children, paper, cloth, etc. 2.So it doesnt fall down the hole it is covering.

Amazon: Depends on how much PHP I have to write.

Google: Define cow. Does it only apply to the common animal or does it also apply to the slang used to refer to overweight people?

Zillow: Define success.

Expedia: Which language version for the T9 keypad? In what language do the words have to be found?

"If you were to get rid of one state in the US, which would it be and why?

Define "rid".

"How many cows are in Canada?"

Define cow. Does it only apply to the common animal or does it also apply to the slang used to refer to overweight people?

"How many quarters would you need to reach the height of the Empire State building?"

Define the specific quarter used for the exercise. Also, tell me the temperature at which the exercise will be done.

"A penguin walks through that door right now wearing a sombrero. What does he say and why is he here?

What type of penguin, and sombrero?

"What songs best describes your work ethic?"

What genres are allowed?

"Jeff Bezos walks into your office and says you can have a million dollars to launch your best entrepreneurial idea. What is it?"

Define best.

"What do you think about when you are alone in your car?"

Is the car ON? Am I driving somewhere? If so, Where?

"How would you rate your memory?"

Which type of memory (short/mid/long-term?)?

"Name 3 previous Nobel Prize Winners."

Can it be for the same Nobel Prize?

"Can you say: 'Peter Pepper Picked a Pickled Pepper' and cross-sell a washing machine at the same time?"

When do you want the Washing Machine delivered?

"If we came to your house for dinner, what would you prepare for us?"

Are you allergic to any type of food?

"How would people communicate in a perfect world?"

Define perfect world.

"How do you make a tuna sandwich?"

Which type of tuna sandwhich?

"My wife and I are going on vacation, where would you recommend?"

Are you going together?

"You are a head chef at a restaurant and your team has been selected to be on Iron Chef. How do you prepare your team for the competition and how do you leverage the competition for your restaurant?

When is the competition?

"Estimate how many windows are in New York."

Are we refering to regular windows or computing devices running the operating system Windows? Plus, define Window. Is it an opening in a wall? Does it need to have a glass plane?

"What's your favorite song? Perform it for us now." Define favorite (as in top 10 ranking, overall, etc.). Define perform (sing, sing+dance, dance, mime, etc.).

"Calculate the angle of two clock pointers when time is 11:50."

AM or PM?

"Have you ever stolen a pen from work?"

Define stolen.

"Pick two celebrities to be your parents."

Define celebrities.

"What kitchen utensil would you be?"

Define utensil (mechanical, electric, electronic, etc). Define kitchen (commercial, American, European, etc.).

"If you had turned you cell phone to silent, and it rang really loudly despite it being on silent, what would you tell me?"

Which cellphone (brand, type, OS, etc)?

"On a scale from one to ten, rate me as an interviewer."

Does the scale go from best to worst or otherwise?

"If you could be anyone else, who would it be?"

Define be.

"How would you direct someone else on how to cook an omelet?"

Are they disabled in any way?

<comment><USER21> >"Estimate how many windows are in New York."

>Are we refering to regular windows or computing devices running the operating system Windows? Plus, define Window. Is it an opening in a wall? Does it need to have a glass plane?

>"How would you direct someone else on how to cook an omelet?"

>Are they disabled in any way?

>"If we came to your house for dinner, what would you prepare for us?"

>Are you allergic to any type of food?

>"My wife and I are going on vacation, where would you recommend?"

>Are you going together?

I actually quite liked these answers, and I would think positively of a candidate who asked them (assuming I would ask the questions in the first place, which is unlikely).

While "Define this that and the other ad nauseum" is probably overly pedantic, the above do illustrate an ability and propensity both for analysis as well as even perhaps empathy - both, IMO, meaningful skills when developing a product.

<comment><USER20> Its all in good humor, but it shows that I've been involved in product development/marketing for a _while_. I'm particularly proud of the "my wife and I are going on vacation" answer, because I was actually asked that one in real life by a friend. I replied the same way. His response was to laugh histerically. :)</comment></comment></comment>


Simple, Fast and Safe Manual Memory Management [pdf] - <AUTHOR> https://www.microsoft.com/en-us/research/wp-content/uploads/2017/03/kedia2017mem.pdf <comment><USER2> That's very clever.

It has most of the problems of garbage collectors that need to know object layout. "(void *)" will break this.

They don't mention I/O. If you have an I/O operation in progress, its buffer areas need to be locked. But the object-moving operation is lazy, so that's not too bad. You have to avoid getting into a situation where object-moving gets started, clashes with a pending I/O operation, and has to block. But this is Microsoft working on their own runtime, so they can fix I/O if needed.

</comment><comment><USER3> > We guarantee type and memory safety by introducing a new exception > (DanglingReferenceException) with the following semantics: a dereference to > a deleted object will either succeed _as if that very object was not yet > deleted_ , or result in a DanglingReferenceException.

I would worry about what might happen in a variable-sized object reuse/freelist type scheme combined with this allocator. A dangling reference might not contain garbage that allows an attacker to control program flow, while still containing data that is exploitable in other ways.

So this is not an entirely safe way to do things. Arguably it would be worth the speedup. But many of the techniques for making this approach safe . . .

> such exceptions can be detected with the combination of rigorous testing and > support in the allocator for a debug mode that enforces stronger semantics > (i.e. exceptions on every dereference to a deleted object) at a higher cost

. . . can also be used to test C++. For example, we use [https://github.com/google/sanitizers](https://github.com/google/sanitizers) a lot at the office to detect these sorts of errors.

Still, an interesting and clever result. Nicely done!

</comment><comment><USER4> Albeit more complex, the main advantage of rust, cyclone like solutions is that their guaranties are checked at compile time.

For a critical application I vastly prefer to get these annoying compilation errors rather than the illusion of productivity now and then getting runtime exceptions in a shipped product.

Be happy to fail as soon as possible.

<comment><USER5> The truth of the matter is, so long as you're dealing with non-deterministic system states or unsafe regions of code, you will always be prone to failing at runtime. Incorrect programmer assumptions, out of memory errors (which are becoming more common with memory-constrained containers), parsing implemented using a ok-or-panic idiom, attempting to read a file you have no permissions to access, having to read from volatile memory regions, cosmic rays flipping memory bits... all can cause even Rust programs to fail at runtime.

Runtime failure is a reality of every program, best to account for it.

<comment><USER6> > all can cause even Rust programs to fail at runtime

For sure, a safe Rust program can fail in a dozen different ways. My favorite is just creating an unsigned 0 and trying to subtract 1 from it -- in debug mode that'll panic and probably crash the whole program. But unless you touch the `unsafe` keyword, it should be impossible to fail in a way that causes _undefined behavior_. That's the big difference.

Edit: You're right, I missed the point :| :| :|

<comment><USER5> The whole article is about preventing undefined behavior WRT memory allocation and deallocation, so that's kind of beside the point.

</comment></comment></comment></comment><comment><USER7> One reaction, with the caveat that I may have misunderstood some or all of this:

One of the great advantages of manual memory management is that it does not require a runtime that can identify all live references. A pointer may be cast in an int, NaN-boxed, etc. - no problem.

In this scheme the "promoting live objects" phase works by copying objects to a new allocation. Crucially, this avoids the ABA problem by always walking forwards in memory. Second, it does not attempt to eagerly update all references - instead it permits references to become dangling. So let's say we have a dangling NaN-boxed pointer.

Now later, our NaN-boxed dangler is unpacked and dereferenced. This causes a SIGSEGV since the page is no longer readable. The signal handler notices it and attempts to fix it up.

IMO this is where things go off the rails:

> If the object was promoted, the handler scans all registers and the current > stack frame, and patches all stale references to promoted objects.

We were so close, but now the runtime needs to be able to distinguish references to promoted objects and values that happen to share their address. We almost got away without stack maps.

> Therefore, we modify the compiler to emit meta-data describing the location > of heap references in registers and on the stack for every load and store > instruction (instead of just gc safe points)

Ok I give up. Now we're just building a garbage collector.

This does not help our NaN-boxing example. There's no way to easily inform the NaN-boxed value that it needs to update; we could hack it by comparing the register's value after the dereference, but that solution is hard to love.

IMO more interesting would be to modify the compiler to require all dereferences to be updatable, and propagate that back through to the original reference. In C++ speak we could imagine this:

        void *dereference(void *&ptr) {...}

and force the clients to deal with the fallout of back-propagating the new value. It's a lot of work, but the carrot is "pointers cannot dangle and you don't need a GC and you don't need Rust-style borrow checking" which sounds pretty rad.

Anyways seems interesting but could be bolder?

<comment><USER8> Do we know yet any ways to get "pointers cannot dangle and you don't need a GC and you don't need Rust-style borrow checking" other than region-based memory management (MLton, Cyclone)?

<comment><USER9> Ownership / affine types?

It's hard to say, because some folks will jump up and down and say "reference counting is GC!", and then some folks could just as justifiably say "regions are GC!"

<comment><USER8> Maybe linear types actually, affine is not enough?

<comment><USER9> I suspect affine is fine, but I'm not an authority. The distinction (as I understand it) is only that linear types require that you consume all instances, whereas affine allow you to leak if you want. Leaking doesn't seem to lead to dangling pointers, but I've been wrong before.</comment></comment></comment></comment></comment>


Ask HN: How do you evaluate your ideas for making money? - <AUTHOR> How do you evaluate ideas and get traction?<p>How do you make sure whatever you are developing will be used by at least 10k users? <comment><USER2> I dont, i just scope my ideas down to something people call MVP and throw it out there. It then evaluates itself.

If thats not possible, make a fancy landing page and let users subscribe to your mailing list.

Or make surveys and contact your actual target audience.

</comment><comment><USER3> I'm really glad you asked this. I've seen the cost, time and effort when professional market research firms or consulting firms do this. But their typical clients are larger companies thinking about launching a new product or making an acquisition, and even after they hire a market research firm or fancy consulting firm there are still products thats flop big time.

So I've always been curious how startups do this.

It would be interesting to see a breakdown of various product/market evaluation techniques and what the success ratios are.

I can tell you how I would do it but it would first depend on what the product or market or idea is. Evaluating B2C or B2B, software vs hardware are very different. As another comment mentioned nonpaying general users vs enterprise customers are totally different.

</comment><comment><USER4> There is a good post about this here [http://blog.ycombinator.com/minimum- viable-product-process/](http://blog.ycombinator.com/minimum-viable-product- process/)

</comment><comment><USER5> Why is 10k users your metric?

10k nonpaying users is worth like $50 in ads.

10k enterprise users could be many millions of billions.

</comment><comment><USER6> Do I implement it?</comment>


Being a startup doesn't give you the right to spam users - <AUTHOR> https://medium.com/this-happened-to-me/96a22e176b1

<comment><USER2> And verify your user's email addresses. My name is not that common but five people around the world have repeatedly entered my email address for various things.</comment>


Using XHP as template engine in Laravel 4 - <AUTHOR> http://blog.kmklabs.com/2015/05/19/xhp-template-engine-pada-laravel-4

<comment><AUTHOR> Enable blade compiler to play nicely with XHP</comment>


Stalwart workers an overlooked resource - <AUTHOR> http://asdjobsink.blogspot.com/2011/08/are-you-stalwart.html

<comment><USER2> Submit, the original, article.</comment>


Mozilla to sell New Tab page ads in Firefox - <AUTHOR> http://cnet.com/news/mozilla-to-sell-new-tab-page-ads-in-firefox/57618750?ds=1

<comment><USER2> The original blog post was on HN front page yesterday and it got voted down to oblivion. Or hit some sort of threshold. Frankly, I find the original blog post to be unbelievably weasily - especially this:

"We believe that if you put the user front and center, you can make every experience for them richer and more meaningful. The Content Services team has embraced this, and today I wanted to share some of our thinking and explain our first steps for putting it into practice."

and then:

"While Mozilla hasn't always seen eye-to-eye with all viewpoints in the digital content community, particularly the IAB, we think they'd agree that users' interests should come first, and we want to help their members deliver compelling content to strengthen the Web ecosystem."

This:

* beats around the bush

* starts with spin

* says that advertisers have the best interest of users in mind - and I assure you, they do not.

I am very, very unimpressed.

<comment><USER3> > it got voted down to oblivion.

It was flagged heavily, which shouldn't be a surprise given the heavy pro- Mozilla bias here. (case in point: this post will be downvoted at least a few times in the next few minutes)

But to be fair, the ads haven't been rolled out yet, and there's a nonzero chance Mozilla will come to their senses and reverse course. And if not, use a browser that actually values your privacy and safety (my current browser is SRWare Iron [https://www.srware.net/en/software_srware_iron.php](https://www.srware.net/en/software_srware_iron.php))

<comment><USER4> See this: [https://web.archive.org/web/20100614055220/http://chromium.h...](https://web.archive.org/web/20100614055220/http://chromium.hybridsource.org/the- iron-scam)

I'm not sure what's changed since then, but it's worth considering.

</comment></comment></comment><comment><USER5> _" Mozilla said that the ads are part of an attempt to connect new browser users to sites that they might find relevant."_

I understand that Mozilla is looking for ways to fund itself. But they should not join those who use the word "relevant" in this disingenuous way.

This phrasing is an obvious attempt to sugarcoat the fact that we are being inundated by so many schemes to grab a piece of our limited cognitive capacity that we wouldn't even be able to notice something relevant if it were actually there.

Mozilla's advantage over other browser makers is that users trust them not to use the kind of deceptive chicanery that we're being subjected to left and right. So they better not ruin that trust by using dishonest language.

</comment><comment><USER6> I'm thinking about proposing something like "I'll run your bloody ads for 1 month. Then you tell me how much you earn off of me and I'll pay you twice that."

I'm all for Mozilla getting income from more sources (instead of search engine revenue), but I just don't like ads. There is a reason I donated in the past.

If I can't disable the ads this way, it's not that hard to install an add-on that does it, edit about:config or just recompile from sources. No problem if you want to play that game. But I'd much rather pay them.

<comment><USER7> The ads in fact are placeholders in the empty dial screen. They will disappear after you visit 6 sites. I'm not 100% sure, but I think that you will not be tracked if they are shown to you.

If Mozilla does not cross this border I'm fine with this very passive advertisement.

<comment><USER5> The point is that Firefox was supposed to be the browser where you can feel safe. The way they are explaining this new monetization scheme makes me feel that I have to get my guard up.

<comment><USER2> Darren Herman is from MDC Partners, a massive advertising company. Then he founded a "media management" company. He's a "marketing innovator".

He writes ambiguous phrases that tend to contradict themselves like "Publisher Transformation with Users at the Center" (what?) and "The new tab page isn't delivering any value for them." (double-what?)

Let's look at some of the wording from this guy [1], it's straight out of some PR/advertising agency. It makes me so incredibly suspicious, and I worry it will be counter to Mozilla's goals.

"Some of these tile placements will be from the Mozilla ecosystem, some will be popular websites in a given geographic location, and some will be sponsored content from hand-picked partners to help support Mozilla's pursuit of our mission."

A given geographic region? Who says that it's popular? Hand-picked partners? Who picks them? What are the requirements for being "hand-picked"?

Let's look at some more language, filled with buzz-words and devalued propositions:

 _We are excited about Directory Tiles because it has inherent value to our users._

 _While Mozilla hasn't always seen eye-to-eye with all viewpoints in the digital content community, particularly the IAB, we think they'd agree that users' interests should come first, and we want to help their members deliver compelling content to strengthen the Web ecosystem._

 _When the user is at the center everyone benefits_

 _We believe that if you put the user front and center, you can make every experience for them richer and more meaningful._

I know many will find me harsh, but when I read these things I also immediately have my guard up. I wonder what is being hidden behind these frankly contradictory and ambiguous statements. There is, to my mind, a falseness to them that is disturbing. This sort of language is what a politician or PR agency would use to deliver unpalatable news. I feel very strongly that it has no place being on an official Mozilla blog.

1\. [https://blog.mozilla.org/advancingcontent/2014/02/11/publish...](https://blog.mozilla.org/advancingcontent/2014/02/11/publisher- transformation-with-users-at-the-center/)

</comment></comment></comment></comment><comment><USER8> > "We wanted to get away from being this window into the web that doesn't > bring value," to users, she said.

Nice bit of doublespeak there. Not showing me ads _is_ valuable to me, you jerks.

<comment><USER9> Non-profits still have to pay salaries. Or would you prefer FF effectively no longer exist and have to use Chrome instead?

Honestly, explicit ads marked as ads in the UI are preferable to hidden advertisement/deals - like defaulting to Google search without communicating to users that money has changed hands for that preferential treatment.

<comment><USER10> Don't they have enough money from Google? They must make at least one dollar a year from each user through search. One would guess...

Or is Google finally cutting into that? Just another way to get rid of competing browsers? Sadly Bing isn't an alternative outside of US (and I'm not even sure about that).

<comment><USER11> Mozilla has publicly stated that they make at least $300 million per year from Google (as of 2011) [1]. Although there are reports that this is closer to $1 billion per year now (including all search-related revenues).

[1] [http://en.wikipedia.org/wiki/Mozilla_Foundation#Financing](http://en.wikipedia.org/wiki/Mozilla_Foundation#Financing)

<comment><USER12> Where are those $1 billion reports from? That's the first I've heard of a number anything like that large. Firefox's market share hasn't tripled recently, and the current deal with Google is the same one that started in 2011, so it sounds unlikely to me.

<comment><USER11> Yep, you're right. I had read something about Google paying Mozilla $1B, but upon trying to re-dig up the info all I'm getting is non-conclusive and/or misleading articles.

$300MM is still a _giant_ number.

</comment></comment></comment></comment></comment></comment><comment><USER13> The link didn't work for me but I found the article here: [http://news.cnet.com/8301-1001_3-57618750-92/mozilla-to- sell...](http://news.cnet.com/8301-1001_3-57618750-92/mozilla-to-sell-new-tab- page-ads-in-firefox/)

<comment><USER14> Didn't work for me either, thanks for a working link!

<comment><USER2> Try the original blog post:

[https://blog.mozilla.org/advancingcontent/2014/02/11/publish...](https://blog.mozilla.org/advancingcontent/2014/02/11/publisher- transformation-with-users-at-the-center/)

</comment></comment></comment><comment><USER15> I don't mind Firefox earning money, but can't see how they will avoid the user tracking problem. At some point they will be under pressure to increase revenues, and the advertisers will want more information on who is viewing their ads.

</comment><comment><USER16> I would be happy to see ads on the new tab page in Firefox if it means supporting Mozilla. They're doing so much stuff to protect freedom on the Internet, and I just don't see the big deal with helping talented people pay their bills.

<comment><USER17> Fuck that, I'd rather pay a small donation. £5/year is going to be more than they get from me for ads (as nobody wants to pay per impression, only click) and I'd double that if necessary.

</comment></comment><comment><USER18> Reading the original article [1] this doesn't look like such a big issue.

For new users that don't have any recently used sites rather than blank tiles they will get some Mozilla suggested sites and some sponsored tiles.

I presume for existing users you'll never even see these and, for new users, as soon as you've actually visited some sites these will disappear.

[1] [https://blog.mozilla.org/advancingcontent/2014/02/11/publish...](https://blog.mozilla.org/advancingcontent/2014/02/11/publisher- transformation-with-users-at-the-center/)

</comment><comment><USER19> So they're going to have certain sponsors' sites on my default New Tab page until I replace them with something else? The horror!!

You people and your slippery slopes.

</comment><comment><USER20> And there was me enjoying the switch I made just last week.

</comment><comment><USER21> so just to double-check: no chance of this making it into iceweasel, right?

</comment><comment><USER17> New tab thumbnails preemptively disabled.

Between this, making Sync _less_ secure and Australis, I start seriously wondering if Mozilla are attempting to drive users away.

<comment><USER22> The more secure sync was apparently too hard to use for non-experts.

Australis is a matter of taste, I personally like it.

They're trying to _not_ drive users away, but you and I are a tiny minority.

<comment><USER17> So why not educate users instead? Especially with the NSA/GCHQ spying still so recent.

Firefox is _already_ a power user's browser - the masses who just want a dumb facebook/youtube/twitter/gmail terminal mostly use chrome and will continue to do so, unaware and unconcerned with customisation and privacy issues (my parents use chrome, and didn't have any addons installed at one point (they now have adblock)). Firefox will never even catch up to where chrome is today in market share, let alone pass it, and I'm fine with that, as it's a browser for power users - customisable, privacy-respecting and more 'traditional' by giving users actual control over their experience and options to customise functionality and looks.

To use beer as an analogy, Chrome is {Budweiser/PBR/Coors/Miller/etc}; Firefox is a craft beer. Yes, it's nicer, but not as accessible, and the majority of people neither know nor care as it's not their market.

</comment></comment></comment><comment><USER23> [https://opensource.conformal.com/wiki/xombrero](https://opensource.conformal.com/wiki/xombrero)

</comment><comment><USER24> I dont care as long as Ad Blocker works well on this!</comment>