How not to hire a software engineer - <AUTHOR> http://tonsky.me/blog/hiring/ <comment><USER2> I look to see if I can trust them to not do dumb things. That's really it.

What's the ego, arrogance, competence, willingness to ask questions, interrogate things, redefine problems to be less work (or none at all).

Do you see what's not there? Programming language competency. Database knowledge. Things like that.

I've been hired as a Ruby programmer, I didn't know Ruby. I was hired for mainframes in the 90s - I had never seen a mainframe. I was told about 20 years ago to write a program in perl, my boss gave me a perl book with the assignment because I didn't know perl and I did it.

This is not a bad way to go about work. Every codebase is new. Every job has a steep learning curve. Every requirement is a conversation which may only be internal, but has to always happen. Every programmer you work with is someone whose preferences, strengths, styles, and weaknesses you need to have intuition on. People good at those things are what make good programmers.

That's why general competency, ability to learn, not to create a mess and not to waste time on stupid things are the only things I care about. That's really it.

Preexisting technical skills aren't as important as how dynamically you can apply new ones.

<comment><USER3> I interview quite a lot, and one of the things I try to do in an interview is work through a problem that I _almost_ certainly understand more deeply than any of the candidates (both because it's my niche and because I've worked through the exact problem with hundreds of candidates before). There's a certain minimum bar that I expect any educated and intelligent individual to achieve if they're a good match for the job, but then I take it really far beyond what I actually expect them to know, to the point where a lot of the details are unknown, and the details matter a lot in determining what kinds of solutions will be successful. Do they start BS'ing me? Do they confidently walk into really nasty parts of the problem without recognizing the pitfalls? Or do they tell me they're a little stuck? Do they ask which trade-offs to make? Do they ask if they can do some Googling for prior research on the problem? Do they explain what they would try and what pitfalls they would watch our for, or how they would validate their idea? Do they ask if they can make some simplifying assumptions for practical purposes? There's a lot of right and wrong answers but really I want to see their attitude and communication.

My first couple of hires before I did this were a brilliant computer scientist and a guy with a business degree and some coding background. I was surprised to see the guy with the business degree excel because we weren't doing many CS-hard problems, and an ability to manage time, talk about the problem, and navigate the project life cycle were far more important than classic algorithm knowledge. He needed to know how to code and debug, for sure, but like most software jobs, his soft skills were a force multiplier.

I'm pretty sure this has been done with me - I was given a problem and told to come up with something like an O(n log n) solution, and I honestly couldn't do it. I tried a few different approaches but I could think of really bad pathological cases for all of them. The interviewer gave me a few suggestions which I explored and I kept exploring them and then admitted I didn't see a way forward. I thought I was bombing and then he told me I did really well. I looked up the problem and found out he had done Ph.D. research in that area, and there was no general O(n log n) solution - only solutions that could do that in most practical cases.

<comment><USER2> If I smell any bs then I immediately change tactics and make sure I put them deep over their head. For example, "what are the strengths and weaknesses of classifying grammars via the Chomsky hierarchy?"

There's 3 ways to answer these kinds of questions and it exposes you as either a genius (or in this case a linguist), a non-genius (real geniuses are as common as 7.5 ft tall people) or a bullshitter trying to look like a genius.*

I've never met an actual genius in an interview so let me address the other two. That third group is a nonstarter. I've known the person for 10 minutes and they're already trying to deceive me. How the hell am I going to build a product with them?

Kim Scott, some SV big wig wrote an entire book on this called Radical Candor. Essentially it's "don't bullshit people (and know where your taking the relationship when you use that rule)"

I strongly believe companies work best with the smallest bullshit quotient possible. They may sell more or be more profitable with certain flavors of bullshit, but things are easier and more stuff gets done without it.

At the end I would have rather actually made something than duped people with sham products sold on dreams

\---

* I actually can't answer that question but I could probably identify the neighborhood of a real answer (...something something limitations of the von nuemann model restricting the constructions of parsing systems something something...). The point isn't to answer it, although that would be quite impressive; it's to see how far someone digs into their own BS.

<comment><USER4> For Chomsky, I would hazard finite state automata, BNF systems, and Turing machines. I might then mumble about number of tapes and time to recognize, and then stop.

<comment><USER5> Type 0, Type 1, Type 2 and Type 3 (aka: Type K grammars).

Type 0 is an unrestricted grammar.

Type 1 is a context sensitive grammar.

Type 2 is a context free grammar.

Type 3 is a regular grammar.

For our (CS) purposes we typically use Type 2 and 3.

</comment></comment></comment></comment></comment><comment><USER6> All the things most programmers do these days are pretty mundane and the only thing you need to ascertain is if they are familiar with the technologies that are being used. "Can you show you know sufficient SQL? Did you write applications before using Rails/Django what have you? Distributed this, Web that - OK, jobs is yours." After all that the productivity of the programmer is solely based on the work environment and how motivated you can keep a developer who is becoming depressingly convinced that his calling in life is to write web handlers and optimize queries to a bloated database schema and watch the guy whose been on the job too long walk around like he's some fusion of John Carmack and Elon Musk.

Why these interview processes act as if candidates are going to be designing graphics engines from scratch for graphics hardware extracted fr om a downed alien spacecraftis beyond me. We just really be testing their ability to sort through a bunch of legacy OOP designed by people who are so board with the project domain that made of bunch of bad abstractions and used every new OOD technique in the books when a handful few procedural functions would have sufficed.

<comment><USER7> > All the things most programmers do these days are pretty mundane and the > only thing you need to ascertain is if they are familiar with the > technologies that are being used.

this is exactly the company/boss i would not want to work for. It is exactly the opposite. You should not care if the person if familiar with the tech you use. Who cares if you do php or c#? Does it REALLY make any difference when it comes to taking the business logic and adapting it into MVC/API?

<comment><USER8> Yes.

Because if they don't have a deepish understand of the language and framework IME they tend to write crap code.

If someone is being hired to write C# /.NET all day every day I don't want to have to spend time teaching them C# or .NET

Especially not how to write good C# / .NET.

<comment><USER9> Wasn't part of the point of C#'s syntax was that it was easy for C++ and Java programmers to learn? Would any real C# advocate really tell me it would take months of manager supervised learning to pickup?

I've been writing code for a long time in many languages and I do my best to write "good" code. The principles that make code "good" in one language appear to apply equally to other languages...

<comment><USER6> I would argue that what makes code "good" is completely subjective which is why I don't spend too much time thinking about it.

The only criteria I have for good code these days is "Does it work", "Can I understand it". Everything else is a good IDE's command away for being willed into reality. So I really don't spend too much time on the "good" code debate like I did as a teen reading "Clean Code" and GOF books. I actually wish I could have that time back, I would have read, in their place, books on type theory and OS design, Posix, in other words things that actually help me build stuff and get things done and that I subsequently had to read later. Undo the damage done by the "good code" people that have me thinking about stuff that nobody cares about. Take a month off, read a book on game design in opengl, and write a cool robot simulation or something and remember how much more gratifying that is than writing a small do-nothing program just to try out some useless design pattern that doesn't scale beyond micro-examples.

There is so much varying lit out there on how to write good code that I am surprised that I am surprised if even 2 programmers can truly agree on what good code is. So Again, I'll say that "good" when it comes to code should be equivalent to "easy to understand" and "does the flow of text match the flow of program execution" in other words "is it easy to understand given I am familiar with the problem domain".

<comment><USER10> "The only criteria I have for good code these days is "Does it work", "Can I understand it"."

Which of course, are not trivial to achieve by any means.

Maybe also add "Can my coworkers understand it?" Which might be a very different metric.

"I would have read, in their place, books on type theory and OS design, Posix, in other words things that actually help me build stuff and get things done and that I subsequently had to read later."

If you want to get very far with any of those, you will need to write "good code", as you have defined it. So maybe a better way to understand good code would be to read the code of large projects implementing the things you want to learn about?

<comment><USER6> I don't know. Procedural code in Golang is pretty trivial - you basic constructs are regular in the selection, iteration, and sequence sense with a sprinkle of interfaces and some CSP constructs for concurrent design. That covers like 99% of what you need to write good code. I'd say pattern matching is pretty helpful Ala ML, Haskell, Rust. Beyond that all the GOF and Solid and all that jazz seems to do way more harm than good IMHO.

> If you want to get very far with any of those, you will need to write "good > code"

If you have ever looked at the code of the most successful programs the code is anything but "good". Have you glanced at the Linux Kernel code lately? But again, "good" is very subjective. The Linux Kernel works well enough to server the purpose of millions of users and enough people understand it. Its good code!

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> I don't ask brain-teasers during an interview, but time and time again the value of a simple coding assignment has proven its worth. It is simply amazing to me how many candidates seem to lack the basic ability to code a couple of nested for loops, and weeding those candidates out early streamlines the whole interview process.

I will typically do this on a phone screen, having informed the candidate beforehand that they need to be near a computer with an internet connection during the call. Typically this will be after business hours, so they're at home where they're comfortable, and on their own machine, whatever it is.

I use a site called rextester to administer the test. I've been using it for years, and it's fantastic.

[https://rextester.com/runcode](https://rextester.com/runcode)

As the tester, you go to the site, choose the language, and click 'live cooperation' at the bottom. Then you email or tell the candiate the link to follow, and both of you click on it to go to the shared coding editor. You can now see the candidate type and talk about how they're solving the problem, editing yourself to give hints/clarity if need be. To save time, you can have some code handy to paste in and pre-seed the problem if you choose (like a list of data to sort, etc.)

This tool has proven immensely useful in my interview process, and beats the hell out of whiteboard coding in person, IMHO.

[edit - spelling]

<comment><USER12> I think you're testing for someone who can think on the spot with a person watching every keystroke which would be rare in an actual work environment. For a lot of programmers, they spend most of their time in their own head thinking through a problem, trying things, removing things, etc. To accomplish what I think you are trying to select for would be a take-home assignment. The interviewee can work through problems in a more natural way without someone watching intently on every keystroke.

<comment><USER13> I think that asking really simple fizz buzz style questions in this context is probably fine. The whole point I think is to screen out candidates who can't do these sorts of assignments in ~5-20 minutes or whatever. With a take home assignment you'll get people who spend two hours or on your 15 minute problem which is the kind of person who I think OP is trying to filter out.

I think even if you're not the kind of person who can think on the spot with someone watching you well, you should be able to knock out fizz buzz style question in that setting quickly.

</comment></comment></comment><comment><USER14> Lately I have done a few at home code challenges for companies. They usually take several hours. They are perfectly functional and use minimal code but, the only feedback I receive is: "we're not moving forward". They won't discuss anything with me. The only impression I get is that your company is terrible and I will never respond to your recruiters again.

<comment><USER15> For me, honest and accurate feedback is the one thing that is missing.

When I get rejected, the response is usually "You are not a good match to our company culture". What I would appreciate would be "Your lack of experience in managing remote teams is a gap for us."

I feel that quality to the pool of candidates will increase once this feedback loop problem is fixed.

<comment><USER16> I'm not sure this is true but I've heard people who work in 'hiring' say so: from the company's point of view there is almost no upside to providing insightful and useful feedback, and there's always a chance that feedback will be used to sue for discrimination, or ridicule the company online, etc. Best to be generic and forgotten about by the candidate as soon as possible

<comment><USER17> Mostly this. I was a hiring manager at a big company where HR made it very clear we cannot give specific feedback to applicants. We also could not give references for the same reason; fear of being sued. But after a while you learn to speak in code for those cases where you really feel you need to provide meaningful information.

The last time I was asked for a reference I was contacted by a hiring manager who said they were about to make an offer and just needed a couple references. It was a previous employee who had been a particularly low performer. My response was "Company policy prevents me from providing any references. However, (pregnant pause) you should always be very careful and selective in your hiring process." The hiring manager asking for the reference was baffled. She must have been new and had not yet learned the code. Later I bumped into her at some industry event and she thanked me profusely because my non- reference prompted her to do more digging and she learned just how bad that candidate was.

Moral of the story: learn the code (strikes me as kinda funny on HN where the usual advice is learn _to_ code)

<comment><USER18> wtf. what you are describing is something that i would say is suable. and should be.

you basically said dont hire that person to someone. because of your bad experience with that ex-colleague ?. you are denying that person a chance. how come ?

what are you going to do next time someone calls for reference ? the same ?

immature, questionable, discriminating practices...

<comment><USER19> Strange. Where I live it's common practice to ask former employers about a persons performance. I you have no prior work experience they would want to call your math theacher or army drill instructor.

In the US it's illegal? It's discrimation yes but isn't that the whole point of a recruitment process?

<comment><USER20> It's illegal in the US for the company or anyone representing the company to say anything more than that they worked for the company, and what they worked on.

They can't tell the person that the employee was fired, or anything like that.

But as noted - there are ways used to get around such things (that is, the laws of our country). Those laws exist because people were wrongly discriminated against by using such "references".

But if you have a reference to someone you worked with, and they are no longer employed by that company - then I'm pretty sure they can answer anything they wanted too (unless there's some kind of NDA they are still under after leaving the company). Because they don't represent the employer any longer, and are a personal reference - things become more casual.

<comment><USER21> That's not illegal. HR/legal just usually prohibits it because negative feedback could potentially be used in a discrimination lawsuit.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER22> A perspective from the interviewer's side. Since I run a small startup, when hiring, my first thing to determine was that whether I would be able to work with the candidate. Hence, I would come up with a puzzle, a maths problem, or even a guesstimate, just to see the thought process and that whether there is any "gelling". Things to evaluate are, original thinking, how well the candidate puts his perspective forward, how well he takes suggestions, how quickly he reaches the crux of the problem etc. If there is a face to face interview, the general assumption is that the candidate is talented, more important is that whether he can work with others in the company. If I am hiring someone who will work alone, without anyone's inputs, I might change the process (something like an integration or SSIS workflow) but have not needed to encounter that as of yet.

I usually go through the resume, and have interviewed enough coders to understand that they would know about what is written on the resume. Hence, knowing the background is good enough for evaluation, but feels repetitive during the interview. (Also, if you have had 4-5 years of experience, and 2-3 jobs, you can only stay for long if you had good skillset)

<comment><USER23> I usually give my disclaimer: "These aren't real world problems. Some questions involve code that we wouldn't write in the real world. We only have 45 minutes. The goal is to have a conversation about code."

And then I point out that "it's not practical to spend 2-3 days on-boarding you for a job interview. Thus, these questions are contrived. The best way to succeed is to have a conversation about code, and sometimes you need to play a little bit of the 'tell me what I want to hear' game".

And then, for one question, I need to point out that, "I once had a candidate say, 'I like JSON better then XML. XML's outdated.' This question is to discuss concepts that are easy to discuss with C#'s XML APIs, because chances are, you've used them." (And if the candidate tells me that they don't have a lot of XML experience, it's okay.

</comment></comment><comment><USER24> Interestingly in the last 6 months I've been on both sides of this: being hired and hiring others. It was really cool because it allowed me to understand what is actually good and useful in the hiring process from both ends.

While hiring (only 2 people, one junior and one senior, both fully remote) I just had a ~45-60min chat about technical and non-technical things (e.g. what do you think about functional programming/rails/deployment/ops/whatever, what does <something> mean to you, how do you feel about <some workplace practice>) and then gave them a small paid project to work on our actual codebase - something like implementing a small, self contained feature or writing some tests for a particular piece of code. I found this to be a really good way to find out if I'll like working with someone and if they are a good fit on a technical level.

<comment><USER25> I second this. I freelance as a part time CTO and this has been my favorite appproach to hiring devs. A paid project goes a long way to establishing a good work relationship and gives both sides most of what they need to decide if it's a good fit longer term. I also always offer my clients to start with a small contained project to see if we're a fit. This ends up saving a lot of time: the risk is low for the employer, and the developer gets paid their market rate and has a chance to show that they are worth it. It's then really easy to decide if we should continue working together or not.

<comment><USER18> >freelance as parttime CTO

job title inflation bingo !!! ;)

</comment></comment></comment><comment><USER26> On the plus side: I wholeheartedly agree with all those points.

On the contra side: Nothing of this really felt like it helped me. I found interviewing people absolutely horrible and almost never had a good feeling. People who seemed like they may have been a good fit didn't get offers for one reason or another, some people seemed awesome in the interview and then weren't. Overall I've been happy with the decisions I personally made (not all that the team/higher-ups then made) but even with the best of intentions.. it's hard. But it was a small company so maybe it was already a problem of not looking very interesting to some.

It still amazes me that some people seem to be utterly disinterested in what your company does or how they will work in a team, asking basically zero questions besides "how much money?" and "which language?".

<comment><USER27> At my last employer, I sat in on an interview for a co-op with my boss. After asking the interviewee some questions the conversation went basically like this:

Boss: Do you have any questions for me?

Co-op: No

Boss: Would you like to know about the company? What we do?

Co-op: No

I couldn't help myself from laughing. I know he's just a student, but he's still a 20 something adult. No interest at all, just looking to check another box on his list of credentials. At least fake it!

<comment><USER28> I just don't really get this attitude. What exactly you want me to ask assuming I know salary and position? General information about company is usually right there on the website. I am really not sure what exactly the hiring manager is supposed to be asked at that moment, especially by someone young who does not have enough experience to distinguish between lying hiring manager and the one that tells the truth.

I could see meaningful questions about vacation policy and overtimes and such, but that comes with experience and a.) youngsters wants pretend how they don't care bout weekends in work b.) companies lie about that sort of thing.

I know that this attitude exist so I will ask something, it is not about that. But, the exercise is mostly empty for someone who is inexperienced and does not fully know yet what are situations where he fit vs where he does not fit.

<comment><USER10> "What exactly you want me to ask assuming I know salary and position?"

"Who are your most important customers?"

"What is your monthly recurring revenue?"

"What is your best selling product?"

"What's one thing you like about working here?"

"What's one thing you don't like about working here?"

This isn't very difficult. Just requires a slight interest in the industry you plan to work in.

<comment><USER28> None of them is useful for anything. They are just questions that you ask to fulfill the "must ask question" requirement. Generally, product is on company main page. Asking that one likely shows you did not seen it.

Moreover, they are unlikely to tell you monthly recurring revenue. That is just odd question. Our company would not definitely.

Hiring manager will not tell you what he does not like about working there - for the same reason why you are not truthful about why you left previous place. Seriously. I would not ask the like dislike question for similar reason - it strikes me as odd and possibly would mark me as someone with low social skills. But the risk there is not too high.

<comment><USER29> If you read the company's web site, and are a curious and interested person, then you should pretty quickly stumble upon things you would like to know which aren't written there. So if you come up empty, either you are not interested in that company at all, or your curiosity is so easily satisfied that a plain web site can answer all your questions. Both is not a great sign for a prospective employee.

Even suppose you apply to a straightforward company with an extremely detailed web site, so that all your questions have been answered already, then this is still a test if you can meet social expectations. You are indeed expected to have questions, and if you don't even follow this simple convention because you think you know everything already, then your social skills are probably underdeveloped.

Finally, even you already know much about the company (e.g., about the most important product), asking about things you know already and comparing this with what you are told in the application talk will give you additional valuable information. Are they excited about their product? Are they exaggerating? Are they bored when answering? Do they know the basic information on their own web site? If you don't use the opportunity to extract as much information as you can, it's simply not smart.

<comment><USER28> It just sounds like complete rationalization. That is not how humans work nor how companies work. That is not how interest in things work especially not in work or position.

Yes, it is test of whether you know that social thing. So, if the company is treating it as the test of that, then it is fine. Instead, the parent was almost offended over that "No interest at all, just looking to check another box on his list of credentials. At least fake it!".

> Are they excited about their product? Are they exaggerating? Are they bored > when answering? Do they know the basic information on their own web site?

Christ, you are talking with hiring manager at that point. I would not mind him not knowing company web site. Most employees don't actually go there all that often. That person might not even work on that product. Unless we are talking about very small company, people do their small parts of the larger whole.

You are hiring tech person and while cooperation, ability to express oneself clearly and without pointless insults, ability to listen and such are important, ability to guess excitement from someone they don't know much less so. It is not sales position.

<comment><USER30> I generally agree with your view, an experienced candidate will be able to figure out a lot of the work environment during the interviews before meeting with the hiring manager. Although I generally have a few softball questions that I ask as either filler or to see how much thought they have given to how their development teams work.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER31> Agree with everything the OP said but I'd add: when hiring for senior engineers, this process is even more absurd because the real skill of senior engineers is not how much horizontal knowledge they've acquired (knowing web frameworks, Linux guts, databases, distributed systems, etc) or vertical knowledge (being a domain expert in X) but their soft skills -- how good are they at convincing other people of something in a meeting?

A real example: a product person once asked a team I was on for a feature that'd be difficult and time-consuming to program, probably taking the better part of a year. My teammates said no. Not, "We want to ship this software soon and we don't think that's an acceptable tradeoff," they just said no. Product became furious (not knowing how hard it'd be, since the engineers hadn't explained it) and it hurt those developers.

Knowing how to invert a b-tree doesn't help you solve situations like those, which are far more common than 99% of fake problems presented in programming interviews.

When I interview a candidate I ask them to tell me about projects they worked on and poke and prod about real-world stuff they actually did, not converting a singly linked list into a circular linked list.

Ideally people would be offered the choice of an in-person or take-home to satisfy both those who feel like they shouldn't have to spend their free time on homework and those who don't like being forced to instantly come up with solutions to fake problems.

I blame Google for introducing this scourge, hopefully it lifts before the next time I do a job search.

My favorite example of this is Google turning down Max Howell for a job: [https://twitter.com/mxcl/status/608682016205344768](https://twitter.com/mxcl/status/608682016205344768)

</comment><comment><USER32> I like giving coding "tests" but I prefer to let the candidate pick an issue from an open source project ahead of time. I want to be on as close to the same footing as the interviewee.

I like to see them work in as comfortable and nerve free environment as possible.

And in the event that the person doesn't get hired, they have a commit on their GitHub and maybe added some value to a project.

<comment><USER12> > they have a commit on their GitHub

Maybe I'm applying to the wrong places but virtually no one cares about my Github. It's really sad to see so many potential employers ignore one of the best pieces of information for a candidate. For reference, my github is filled with maintained projects and OSS with people using them, submitting issues, prs, etc. It's like the employer's process is set in stone and since a lot of people don't have active githubs, it cannot be used as a comparison.

I think the places that do look at github profiles are great, but then I fear they end up looking for massive OSS projects for it to bear any weight.

</comment></comment><comment><USER33> I really liked what my last interviewer did. He did not think of an abstract quiz to test some abstract skills. He took a Problem they where fighting with for some time and we just had a conversation about it.

When can you start?.. Tomorrow.. See you then.

Find someone you can work with on the actual problems you face: work with them during the interview. Just struck me as genius.

I was nervous about my CV not looking too good, he didn't even bother to look at it.

<comment><USER20> It does sound like a good way to interview a candidate.

But I can see from the company's side it being a bit of a potential legal challenge issue. Depending on what the problem is and how deep it goes into the codebase or whatever, you might get into proprietary process information that someone outside the company shouldn't have access to, possible IP access violations, etc.

If it can be done in such a way to avoid those pitfalls, then it might be ok. But I bet it's a tricky challenge, and may be why it isn't done often?

</comment></comment><comment><USER34> I suppose I'll be the first to say that yellow as a background color is a horrible design choice. And it's not even using the background color CSS option alone, it's got some weird tiled single pixel yellow image on top of it! What??

<comment><USER35> Firefox > Reader View

Save your eyes.

</comment></comment><comment><USER36> I think the crux of the problem is... Everyone knows what to expect in a SAT exam, and still if one complains that they didn't bother preparing for it 'cause they do not have enough time... That excuse is not getting them an admission to top institutions, which admittedly have no short supply of folks willing to prepare and go through the grind.

It is sad that interviews in tech have been reduced to a process that resembles SAT-esque entrance exams. And now, there's an entire industry around prepping candidates for the interviews.

That said, I like the approach tptacek wrote about: Give the candidate a book or two, and when they are ready, interview them on it instead of interviewing on algorithms and data structures regardless of the position/industry [0].

I'm not so sure about Stripe's process as well [1], because one might have been effective because of the team and setup they are comfortable with in a given setting that isn't replicatable in an interview setting. No amount of 'bring your own laptop' to the interviews is going to make it work for the interviewee. You need to test the interviewee on the basis of their strengths. Not arbitrary measure of strength. Gosh, this is a hard problem.

There was an article on techcrunch about interviewing in tech and how it breeds ageism [2]. The premise was that it is simply not possible that most folks with X yrs of experience at a software shop are all secretly terrible that they can't get past your interview process.

Either you are part of an exclusive network to get on a rocket ship of a startup [3], or slog it out like everyone else: I remember how tough it was to get a job at Facebook in 2009 or Google in 2005 with ACM ICPC finalists and TopCoders as your interviewers.

[0] [https://sockpuppet.org/blog/2015/03/06/the-hiring- post/](https://sockpuppet.org/blog/2015/03/06/the-hiring-post/)

[1] [https://www.quora.com/Stripe-company/What-is-the- engineering...](https://www.quora.com/Stripe-company/What-is-the-engineering- interview-process-like-at-Stripe?share=1)

[2] [https://news.ycombinator.com/item?id=9166501](https://news.ycombinator.com/item?id=9166501) (on secretly terrible engineers).

[3] [https://a16z.com/about/](https://a16z.com/about/)

<comment><USER37> >It is sad that interviews in tech have been reduced to a process that resembles SAT-esque entrance exams. And now, there's an entire industry around prepping candidates for the interviews.

I'm not sure why that is bad. The more standardized the interview process is, the more consistently people can prepare for interviews and know what to expect. The interview process doesn't have to represent actual work, as long as preparing for and performing well on the interview requires the same skills used to learn and work with a new software feature / language / problem.

>The premise was that it is simply not possible that most folks with X yrs of experience at a software shop are all secretly terrible that they can't get past your interview process.

That's an obviously false premise.

<comment><USER36> > I'm not sure why that is bad. The more standardized the interview process > is, the more consistently people can prepare for interviews and know what to > expect.

Yep, agree. You tend to then hire folks who are good at interviewing and not at getting the job done. I think there is no right answer but multiple right answers. Provide three or four different interview loops and let the candidate choose which one they want to opt for: for instance, one loop is the standard algorithms/data-structure, the other loop is a take-home problem, the third could be tptacek-style, the fourth could be stripe-style, and so on...

> That's an obviously false premise.

Sorry, I didn't get. The article argues that obviously that many folks with that much amt of work experience can't all be secretly terrible that we continue to find it hard to hire and so the current interview process needs an overhaul.

</comment></comment></comment><comment><USER38> #1 thing for me - don't ask me to be a salesperson. In relation to this post - [https://news.ycombinator.com/item?id=19534772](https://news.ycombinator.com/item?id=19534772) I was recently at an interview and the interviewer was a technical guy who had recently been promoted and he had a checklist of 10-15 things he wanted to achieve in the next half year, all really good reasonable things and then he said 'Now I just want you to tell me why you are the best person to do this'.

I finally had to give up and say hey lots of people can do what you want, I can do it and I can give you a list of people who can do it, I don't understand this "best" thing you want from me?

<comment><USER39> I actively say things similar to what you said. For example, if I'm ever asked why I want the job or why I'd be a good match at the company, I will always say I don't know. I'll always say I'm not trying to be facetious or dodge the question, but with limited information from a job listing, maybe a few phone calls, and a day of small 1-hour interviews (that are mostly made up of coding questions with no time for me to ask questions), then it's just not possible to give a sincere answer that has any more depth than a rehearsed answer based on LinkedIn advice listicles or something.

<comment><USER38> It is very difficult for me not to say I want the job because I sell my skills for money, if you are willing to pay the price I want then I am willing to provide the product you need.

<comment><USER40> "because money can be exchanged for goods and or services."

Interviewer didn't like that answer too much, heh.

</comment></comment></comment></comment><comment><USER41> Best way to hire programmers is to hire them without getting them to code.

Before anyone burns me at the stake...It's not really the "best" but it can work. I was a coding interview advocate for a long time. I changed it from solving puzzles, to solving real problems taken from the domain they were interviewing for. In the early years I was a bit surprised by who struggled with coding, but I noticed a trend after a while, I could mostly tell how well someone was going to do from the preliminary discussions about software / design / experience / tradeoffs / etc. So I actually learn a lot more about the developer from that discussion and have tried to get better at that to explore more things. I like to focus on the nitty gritty of real problems, hand ow to approach architecting a piece of software from all angles. I do still use coding where I think it might help, with grads, I mostly do coding as its a good icebreaker into general conversation, and intermediates where their experience is still limited, I like to set problems that test peoples ability to keep their code tidy and modular, to see if they have developed any coding discipline, but sometimes from the initial conversation I will already know. But most often I already have a good idea.

<comment><USER42> While a lot of what you say is true, that hiring pattern leaves you exposed to the bullshit artists.

I always want to see some kind of code from someone for whom coding ability matters at all. Doesn't need to be extensive, tricky, or even written live in front of us, but when the job is more than talking, I want to see more than just talking to evaluate.

<comment><USER41> I've seen the bullshit artists. When I was early on in interviewing people ( I've been coding just less than 40 years and hiring people ~20 years ), they did surprise me when it came to coding, though I never came close to hiring one. But it turns out, I just wasn't asking the right kinds of questions to pickup on bullshit, or I would let things slide without question where they seem to have glossed over things. But like I say, code isn't out of the question, if I end up with doubts, usually because I can't get super concrete details out of someone, then code is a good way to go.

<comment><USER43> I've been responsible for hiring 10 or so engineers in my career and everyone of them turned out to be a good hire from the company's perspective. I was always able to smell the BS pretty quickly during interviews and it's always surprised me that this seems to be such a difficult thing for some interviewers to recognize. The BS is exposed when asking for more and more detail about prior work and projects. What was the last project you worked on? What was your role specifically? Were you responsible for selecting any portions of the tech stack? If so, how did you make those decisions? What were the determining factors? And on and on. As an interviewer, if I could not get a good read on one's abilities in this way I'd question my qualifications to be conducting the interview.

<comment><USER42> The BS artists might be 1 in 250 to 1 in 1000 candidates, so give it time and you'll run into a skilled one sooner or later.

I have made several bad hires over 25 years and probably 100 direct hires and 500 total hires where I was on the panel. It happens. Most would have been difficult to ferret out in an interview, because an interview is an inherently spotty/lossy process.

The worst hire I ever made had, in retrospect, been given the (business case) question ahead of time and had pre-written notes in his notepad. He theatrically took careful notes while I was stating the business case problem, asked if it was OK if he did some computations and composed his thoughts in his notebook before presenting the case at the whiteboard. He did just that and stood to deliver literally the most polished presentation on the case that I have ever experienced. 5/5 definitely hire.

Shows up to the job and couldn't get water out of a boot if told the instructions were printed on the bottom. Flames out in a few months and moves on to his next gig. It was only after playing things back that I realized the only way he could have pulled that off was to have pre-seeded his notebook with the solution to the business case.

</comment></comment></comment></comment></comment><comment><USER44> If I had to interview someone for a programming job, I think I'd try using LeetCode problems, but _NOT_ as coding challenges. I'd pick a few problems that the candidate and I both find somewhat interesting, and then for each do three things.

First, we'd both read the problem, and talk about our understanding of what it is asking for.

Second, we'd talk about algorithms to solve it, probably at a whiteboard. No need for actual code, or even pseudocode. Anything that gets the ideas across would be fine. Somewhere in here we'd also talk about what cases are tricky and what we would need to do to make sure any test input we were to write would cover them. I'd try to let the candidate drive this, but would provide sufficient hints and nudges to get to a solution and not count needing that against them--this is really just setup for the third part, which is the most important part.

Finally, and most importantly, we'd go to the LeetCode discussion area for that problem and look at solutions people have posted and review them together. Many of the solutions will have mistakes, ranging from minor to major, and trying to spot those together and talking about how to fix them would, I think, give good insights into both the candidate's technical abilities and how they work with others.

<comment><USER45> I have seen my fair share of candidates who can talk just like you suggested, but literally cannot put even simple solutions into code. Like, can't write a for loop or an if-condition but could walk through a problem like you describe and can even talk about tech trends.

<comment><USER46> Personally I get intense panic seeing a person's face looking at me while I try to avoid off by one errors.

It's all in the experience but that might be the other side to the situation you are describing.

I am practicing a lot to be more comfortable but I still feel bad for those people who interviewed me and ended up disappointed.

</comment></comment></comment><comment><USER47> I'm currently working on revamping the way we do the first interview, which is nothing more than a filter.

We currently ask mainly, let's face it, poor theoretical questions.

I want to ask more experience based questions.

so instead of:

Explain what a database index is

Ask:

Can you give us an example of a time you used a database index? What were you trying to achieve? Could there have been a different solution to reach the same outcome?

If the candidate doesn't have experience with databases that's fine we just ignore this question, at least that's what I would like to do, whether I can sell this is another story.

To be sure if the candidate has no database experience, no cloud experience and no backend development experience then it's probably not going to work out but we can try to be flexible about candidate's experience.

It's easy enough to learn what SOLID means but a lot harder to know when it's a bad idea to use it or when it might be a good idea to compromise.

<comment><USER48> I've been asked these kind of questions before....for a compiler job. I mean, you can clearly see on my CV that I don't do backend, cloud, or database, the hiring manager is not interested in me for those things, yet their interview process is so inflexible that these are the only questions that can be asked during the interview (....and not one compiler question either).

<comment><USER47> The key is flexibility. As you say, there is little point in asking somebody who is going to be working with compilers the best way of doing something with React or Angular.

A guy I used to work with would walk through the technical skills section on candidate's CV asking for knowledge level out of 10 and then ask questions accordingly but that is trickier to do on an online platform (at least as far as I'm aware)

<comment> pickle-wizard I recently had a job interview where I was asked about skills on my resume. Except on every question the scale would change.

For example. On a scale on 1 to 7 how do you rate your self on Linux Then, On a scale of 1 to 9 how do you rate your self on AWS.

It was maddening and I could couldn't give an honest answer as I kept getting confused. That is one of the many reasons I declined a second interview with that company.

<comment><USER47> Why change the scale? that would've confused me too

I guess the interviewer thought the scale change would make you think harder about your skill level ...

</comment></comment></comment></comment></comment><comment><USER49> Everyone is forgetting why big companies do interviewing the way they do. It's the same reason the entrance criteria to elite universities are they way they are.

Last I read, Google has something like a thousand applicants for each position, each level of filtering reduces the amount by an order of magnitude for a position they may or may not fill so it becomes statistically harder than being accepted to Harvard.

Likewise, people practice for these interviews harder than they do for college entrance exams and work on saying the exact things the interviewers want to hear. In essence, the filter is on this particular kind of "grinding" work ethic.

</comment><comment><USER50> As somebody hiring more regularly now, I can sympathize. I'm usually operating on the notion that interviews are demonstrably not a very good way to select people. They are pretty random. I tend to embrace this and focus on the big picture: which is do I want to hire them.

So I have only two big topics in my head.

1) Verify that this person is competent by getting to talk about anything remotely relevant. The job here is listening; not asking. If buzzwords come up, ask follow up questions. If someone is a bull-shitter, it will show in minutes. I have some generic questions that I can put in to keep the conversation going but usually, I just focus on stuff on their CV that interests me. Tell me more. Anything. What do you want in a job? Why?

2) Establishing whether I like the person enough for further collaboration. Yes, this is super subjective. But the way this business works is that anyone passing #1 you basically should hire unless you have a good reason not to. Not liking them would be a red flag.

Most of the rest of the interview is selling them on the job and figuring out whether that even remotely aligns with their expectations. This is a sales pitch. As an interviewer, your job is getting the candidate enthusiastic about working with you. If they are good, they'll have other offers lined up. In other words, it is you the interviewer that needs to be nervous about whether they will say yes; not the other way around.

This is the most important step in the interview and this is where you either get somebody enthusiastic about working for you or disengaged. If that's the case, don't hire but if they show eagerness, interest, etc. you basically try to hire them.

It's not like we have a long list of candidates typically. So, decide quickly and act with a sense of urgency.

When I'm interviewed, I think of it as a privilege for the wannabe employer. You successfully got introduced to me by somebody I trust. We talked and I liked you somehow. Now we are talking shop. Your job is to make me want to work for you. Sell it to me. Make an effort. Don't waste my time with bullshit. I'll talk to your HR after you convince me I'm not wasting my time; not before.

</comment><comment><USER51> So these kinds of posts keep showing up.

How are interviews for not-software-engineers conducted? ie. how do you interview for a business analyst role, or a sales and marketing role? I have to assume that those roles suffer from the same sorts of issues a SE job does -- that someone can talk a good game but not be able to perform in the role.

<comment><USER23> Doctors have to go through a rather grueling licensing process. The job interview is mostly about determining mutual interest.

Doctors also need to go through periodic re-credentialing.

To put it bluntly, when a doctor has credentials, you at least know that they're competent; and more competent than 2-4 1-hour quizzes.

<comment><USER52> Speaking as a licensed attorney, passing the bar does not mean that you're competent.

<comment><USER10> Then how would you go about identifying a competent attorney?

<comment><USER52> References and talking to them.

</comment></comment></comment></comment></comment><comment><USER53> Years ago, I was interviewing, and they asked me a fairly typical "Design Twitter" question.

I always hate these kinds of questions because it took Twitter 10 years to get to where it is, and I'm certain they didn't design all of it in 15 minutes on a whiteboard.

Anyway, I'm drawing little boxes and arrows, and when the subject of a DB comes up, I ask "do you want availability or consistency", because I figured that CAP theorem was part of the "gotchas" on this. The interviewer said "I want both", to which I replied, kind of sheepishly, that you cannot have both. We go back and forth, and eventually I pull up the CAP theorem wiki page on my phone and he had to concede the point.

This is rare; usually when I know more than the interviewer, they double down on their wrong ideas. I have several stories like that.

<comment><USER54> Did that interviewer hire you after admitting that you were right in pointing out his mistake?

<comment><USER53> The company made me an offer, which I didn't accept, though for different reasons, mostly with me having skepticism on the sustainability of the company.

Joke's on me, I think; looks like the company is doing better than before, the stock package they had might have made me about $400k.

</comment></comment></comment><comment><USER55> I think the point is that big corporations don't believe in the value and depth of talent. They're not trying to find the world's top software engineers; they just want to find enough good engineers to fill their quota. What that means is that they don't care about depth. They don't care if the candidate is a genius in their domain; they just want to hire people who can reliably solve coding problems; that's it.

It's quantitative, not qualitative; it's not about how well the candidate can solve problems - The 'if' is much more important to them than the 'how'. Unfortunately, not many people have the ability to objectively measure the quality of a technical solution, that's why they don't bother at all with the 'how'.

</comment><comment><USER56> Honestly these days I'm thinking that the best interview is going to be about people's attitudes and opinions. e.g. I usually ask things like what's your favourite source control system, branch technique etc? Why?

There's no right answer here, other than to show thought and understanding of the engineering problems this is seeking to address.

Obviously there should be some domain/framework/language specific things in here too. But the object is to gauge competence and experience level, and thoughtfulness vs doctrine.

The 'practical' should take place on the job, give them a week and if they aren't up to the task(s) at hand, say goodbye and move on.

</comment><comment><USER57> I've helped hire 3 software engineers to both work with me and mentor me and they were all failures.

First two hires quit after only a few weeks.

Third hire was temporarily successful. He eventually revealed himself to be both a jerk and not very technically skilled, so I spoke to higher-ups to get him removed.

My hiring strategy was designed to be simple and respectful. A simple, 20 minute assignment completed between phone screening and on-site. And 2 on-site interviews. Despite the 3 failures, I still feel like it's a good strategy. But evidence says otherwise!

<comment><USER58> You didn't even mention what those 3 interview questions are like which is the whole point of this discussion. You made the conclusion with 3 data points. I could just as easily make a conclusion about the common denominator of all this which would t be fair to you.

<comment><USER57> I'm unsure why you think my anecdotes of failures hiring software engineers is not relevant to a discussion on how to not hire software engineers. I think you misread my comment, because drawing a conclusion on my hiring process from 3 data points is exactly what I'm _not_ doing.

</comment></comment></comment><comment><USER59> Get them to ask a question on stackoverflow without it being closed or put on hold or marked as a duplicate.

<comment><USER60> While that is probably useful in its own way I doubt it would show whether someone can write decent code or not.

<comment><USER59> If they can pass this test they can solve any problem

</comment></comment></comment><comment><USER61> > How to check if a linked list has a loop? Does one N-dimensional box fit > into another N-dimensional box? Can you swap two variables without a third > one? How to find the shortest distance between two moving ships? Find all > permutations of N elements doing only N-1 swaps?

> Those puzzles are fun to talk about and solutions to them can be very > insightful. I used to enjoy lots of them reading Mathematical Recreations > and Essays as a kid. Don't take me wrong, they are fun.

> However, no matter how fun they are, they are merely anecdotes. The property > of a puzzle is that you either know the answer to it or you don't.

I disagree with how the author lumps these questions together. Questions like "Find all permutations of N elements doing only N-1 swaps" are actual brain- teasers and typically require a flash of insight and creativity beyond what most people can do within a 45 minute interview. Questions like "Does one N-dimensional box fit into another N-dimensional box" are algorithmically challenging and can be approached from first principles and solved within an interview. One question does not carry signal, the other does not, and by categorizing them together the author suggests that neither are useful.

</comment><comment><USER62> Now I really want to know how I save myself before the candle burns through the rope.

<comment><USER63> Spit on the candle. Grab the rope in your teeth and just hang on until rescue comes. Lure another animal over with mating calls to distract / feed the lion. Swing back and forth by wiggling your feet and neck at the appropriate rate to swing yourself up onto the branch.

*note that it sorta doesn't matter because cats are notoriously good at climbing trees and likely wouldn't wait for you to fall.

</comment></comment><comment><USER64> > The property of a puzzle is that you either know the answer to it or you > don't. It doesn't tell you anything else. It has nothing to do with future > performance, being smart, capable or anything else whatsoever. Knowing a > particular answer does not mean you have an apparatus to solve real problems > in a generic and predictable way. The only thing it tells you is that the > person has been in a situation when someone shared a solution with him. > Nothing more, nothing less. Just stop already.

Oh come on. It's true that people seeing the problem before is a major confounding factor, but it sounds like the author is saying that _nobody ever_ solves the puzzle in the interview and it's a pure coin flip. That is obviously not true.

The puzzle type questions probably aren't a great fit for startups, but they're not meant to be. Big tech can afford the vast numbers of false negatives that they produce. In return, they're able to effectively conduct IQ tests of candidates without running afoul of the law.

</comment><comment><USER65> As a recent candidate I've set my LinkedIn profile to actively searching and have a highly in demand skill set in the SRE space with a decent amount of experience in a booming city, so not technically full blown software engineer but similar enough. Having gone through maybe 5 or 6 interviews in last couple weeks of those interviews, _one_ company, just _one_ has had what I would consider a reasonable interview process:

1) Take home assignment with extremely clear instructions directly related to the job.

2) Discusses the results of the take home assignment over video conference call, and/or in person, and actually asks specific details about it.

That is all I ask. Most of the other interviews either are all conversational in nature, white boarding, or don't actually evaluate the take home when you are done with it. My conclusion is nobody knows how to hire and maybe I should switch to becoming a starving musician full time instead.

</comment><comment><USER23> Honestly, this article sounds like a rant.

Hiring is hard. A lot of interviewers aren't good at it. Every technique that gets promoted has flaws.

We could be like doctors and have a grueling licensing process, and then interviews that are mostly about finding mutual interest. But, I don't think most of us like the idea of a licensing process.

</comment><comment><USER66> What i've noticed recently with interviewing candidates is some lack the ability to work outside the way they work normally, especially in practical tests.

Things like, "I usually work from home, so its too difficult to concentrate in this meeting room", "I use Windows, so writing code on a Mac is really hard" and the most common for some reason for why the technical exercise isn't working "Intellij usually saves the file for me"

Practical interviews are difficult to get right on both sides, but from the side of the candidate, I feel there has to be some ability to handle those situations, under pressure, with confidence.

<comment><USER67> Unless the IDE you use everyday is the whiteboard, these are all fine and valid criticisms of your hiring tests. If you want to see real-world results, give candidates real-world conditions (including their preferred OS/IDE/workspace environment).

> _under pressure_

is this a common occurrence in your company? people expected to code well under direct supervision and a strict short time limit?

<comment><USER46> Hackerrank interviews done with video chat literally have a person's face watching their screen which updates as you type. I had an hour to write a few functions and the person interviewing had the ability to run the tests

<comment><USER68> I hate hackerrank. The experience writing the code is terrible. You have to scroll up and down the page to remember what they want you to do. It's _barely_ a text editor and slows down how fast you can actually write the code they want under the timelimit.

</comment></comment></comment></comment><comment><USER69> We ask a programming question that's harder than fizz buzz but not terribly difficult. There's an opportunity to get the gist, but miss some edge cases which leads to good conversations. When I go in to discuss the solution, I ask how it went and we end up with three scenarios:

1) candidate is modest (it was pretty tricky but I think I got it) and they did a good job

2) candidate is modest (it was tough I think I screwed X up..) and they made some major mistakes

3) candidate says it was easy and totally blew it.

I've yet to have a candidate who said it was a breeze actually ace it.

</comment><comment><USER70> Thank you for writing this. I really hope common sense prevails soon. I have no idea how we got to the point where the "test" for a job has nothing to do with the job. I think senior engineers and tech leads need to actively work to kill this culture. I personally will never interview someone for my team by using some random questions from the internet that have nothing to do with what the candidate will work on. Again, great post

</comment><comment><USER71> So, how do you save yourself before candle burns the rope?

<comment><USER67> sing Happy Birthday to the lion

<comment><USER72> You're hired!

</comment></comment></comment><comment><USER73> Here's an idea for how to actually do a technical test (if you do want to do one).

1\. You bring the candidate in to your office. You have their future desk already available with computer and development environment already functional. Pick a somewhat standard environment configuration.

2\. Have an exercise already prepared. Best option is not a "build this from scratch" but have something that already works and needs some additional feature. Something small that could be done in, at most, an hour. Another option is two or three smaller tasks that together would take as long.

3\. You give the candidate _incomplete information_. You describe the task clearly and in a mostly complete way, but leave out a number of details.

4\. Very clearly explain these things. One: You won't be on them; this is not pair programming and they should feel at ease and free to do however they want. But you _will_ be sitting in the next desk and you will be doing something unimportant so they can -and should- ask you anything and all they want. They can also use S.O. or whatever search service they want but you'd prefer that they asked you first. Two: You won't be looking at their code unless they want to show you. Three: they have _around_ one hour, but time doesn't matter that much. If giving out more than a single task, indicate that they won't be judged by how many they manage to finish.

5\. During that time, you focus on the questions they ask you. What they ask, how they ask them, which problems they face, what things they do or don't understand. This _is_ the key. This is what will tell you about how they think, what things they know and which ones they don't. Keep an eye on them, if they seem too quiet you can interrupt them with simple "how's it going?" or "something wrong?", but don't push it too much so that you don't stress them. You may even suggest a 5 minute break for a coffee/water half-way through if you feel they might need it.

6\. The whole idea is to get them to do some task but more importantly to get them to _talk_ about it. When they are done, or when enough time has gone by, _don 't_ go over their code. Instead, ask them how it went, what they managed to do, if they got stuck. If they got it running, they can run it. If they want, they can show you the code or part of it. but you don't need to focus on that. Focus on their talk.

7\. Finally, do offer them the _option_ of showing the code. But then, get them to show it and explain it. Don't just go over it yourself.

8\. The task(s) should be adequate and reasonable for the role, of course. But try to lean on the easier side more than on the harder one. And remember: do leave _some_ information out. The task should be clearly understood but not finely detailed so that they will need to ask and maybe even make some decisions. (You can make them have to decide something by giving them more than one option as answer to some question.)

<comment><USER74> In all my years of interviewing (~25), I've only had this happen once - I got sat in front of an internet connected laptop, given a perfectly sensible task, and left alone for half an hour.

Most of the time it's "solve this already thoroughly solved problem in your own time but with {one hand in a blender, whilst you're on fire, without using any variables}" or some such bullshit.

<comment><USER75> About the same - I had one 'interview' where I had to write a client and server in C++ that would allow clients to register network MAC addresses with the server along with some associated data and then retrieve it at a later time.

Took me a couple of hours, interviewer said my code wasn't particularly "object oriented" but I got the job.

The irony of this was it was for a Director of Engineering job where I didn't do any coding! :-)

</comment></comment></comment><comment><USER76> I agree and disagree with a lot of points.

Most importantly, writing programs on whiteboards. I hate this, but it's an insightful way to measure the individuals thinking processing, decision-making skills, and communications skills.

Expect them to fail and see how they handle the situation and themselves.

</comment><comment><USER77> To me, a good software engineer is the one who could figure out the issues. In most of case, it's not about the solution. It's about identifying the issue is the hardest part of the job.

</comment><comment><USER78> Maybe of topic, but: I find it interesting that the author lists user experience in his "what I would like to talk about" list yet uses super bright yellow as _background_.

<comment><USER79> Read it on mobile, found it surprisingly nice. On a large monitor I can see it being a bit annoying.

</comment></comment><comment><USER80> At my company we don't bother with specific problems. When we ask a candidate: "If you were asked to build x program how would you go about it", the answer we are looking for is along these lines: "I would go online and find someone who has already done the problem and replicate/alter it to fit my needs". The majority of the questions we ask are like: "Where do you see yourself in 5 years.", "What does our company do?", "Present us with a time when you had to overcome a challenge and failed.". If your going to work with someone then its best you know that they are capable of learning. After all, a degree isn't about proving you know something, it's about proving you have the ability to learn and fight for that knowledge when necessary. It proves you have drive and direction in your life; important qualities in a candidate.

<comment><USER81> I just started using an ToDo app called "Remember The Milk", and it works for me so far. The next time I get an interview question that asks me to make a ToDo app, I'll be tempted to respond with "I already have one that I like. Why don't you try it, and if you don't like it, tell me why." I doubt that would go over well, but maybe it would. Who knows!

<comment><USER80> It depends on how the question is phrased. If they hand you a white board and say: "Show us the code" then you are going to have to build something. However, if they ask you something like: "If we asked you to build a ToDo app that solves x problem, how would you do it?" Then it's reasonable to assume they are open to more solutions than you jumping up and grabbing a marker. Being able to distinguish those differences is also important.</comment></comment></comment>


Mozy - increased prices and no more unlimited plan - <AUTHOR> http://news.techworld.com/storage/3258988/mozy-increasing-prices-cutting-cloud-storage-options/?olo=rss

<comment><USER2> I've long believed these unlimited backup services rely on a Ponzi-like scheme to make money. Home internet connection uplinks are often the bottleneck preventing users from using excessive storage. As time goes on and bandwidth increases the profit margins on existing users goes down unless hardware costs decrease in equal or greater proportion. In order for the companies to remain profitable their growth has to keep up with the pace of storage use by existing users or hardware costs have to decrease in equal proportion. It was only a matter of time before some of these companies got bit by this model.

That said, the new pricing has huge margins built in. In researching the storage business for some ideas I had I found that the costs are significantly lower than most consumers realize. With 2TB drives under $100 now it would take months of a user maxing a 1MBit uplink to kill profits.

<comment><AUTHOR> Interesting analysis! I've never considered that the inflow of customers could be what kept costs/customer down. I just thought their budget was depending on slow uplinks in the US and that they started getting too many non-US customers with faster uplinks.

</comment></comment><comment><AUTHOR> It will be interesting to see if other backup services will follow.

I've always wondered how they managed to keep prices so low. Considering the price of S3 (asuming their costs are similar to Amazon's) then only the storage costs of 100Gb is $14/month (excluding bandwidth). Even if they store it very efficiently (erasure coding, compression, de-duplication etc) it would be very hard to reach break even at $5/month.</comment>


Ask HN: What would you do with a technology that passes the Turing Test? - <AUTHOR> What would you do if you created technology that passes the most popular interpretation of the Turing Test?
Imagine that you have a technology capable of having a "normal" conversation with you (via text/chat) that is indistinguishable from a regular human. Let's call it "Chatty". Chatty understands "common sense" in the way most humans do (i.e. that if you get hit by a bus  the consequences are much more serious than if you are bitten by a regular mosquito), has some cultural background that lots of you can relate to (i.e. someone who lived in North America for 10 years, maybe has't seen Cheers but knows about the Simpsons and the Game of Thrones) and a very good command of English.
Chatty learns and remembers all of its previous interactions with you and is capable of convincingly faking emotional responses.
This is not AGI by any means, but it does push state of AI forward, far surpassing anything that has been done before in many subareas of the field.
How would you use this technology? Would you try to commercialize it and if yes then how? Would you open source it? Would you apply to YC with it? Would you try to sell it to any of the big players (Siri would become just awesome if it used Chatty) and if yes how much do you think it would be worth to them? <comment><USER2> Incidentally, and in no way related to the discussion, "Chatty" in Nottinghamshire (UK) speak means "unclean or dirty".

Realistic example in a sentence: "Pigpen from Peanuts worra right chatty bastard."

<comment><AUTHOR> Interesting, thanks for the note. Funny enough, neither Chatty nor I would be able to understand that sentence.

</comment></comment><comment><USER3> Can it perform customer service type functions? how about basic office work?

<comment><AUTHOR> Yes it can. So, all of the current applications of chatbots are applicable.</comment></comment>


Rentork – Rent your data and get paid for ads you see online - <AUTHOR> http://rentk.me/mK24H0 <comment><AUTHOR> Hi Everyone, I'm John founder of Rentork, I'm thrilled to talk about our app and how now you can rent your data online and earn money everyday on your favorite websites and apps when you see ads.</comment>


The Making of a YouTube Radical - <AUTHOR> https://www.nytimes.com/interactive/2019/06/08/technology/youtube-radical.html <comment><USER2> > Google Brain's researchers wondered if they could keep YouTube users engaged > for longer by steering them into different parts of YouTube, rather than > feeding their existing interests. And they began testing a new algorithm > that incorporated a different type of A.I., called reinforcement learning.

> The new A.I., known as Reinforce, was a kind of long-term addiction machine. > It was designed to maximize users' engagement over time by predicting which > recommendations would expand their tastes and get them to watch not just one > more video but many more.

It saddens me that so many of our smartest engineers are working on stuff like this.

<comment><USER3> I don't see whats wrong about suggesting videos to users that they like to watch.

<comment><USER4> Same.

There is this pessimist view that Google is evil.

In my life, Google is the single best entity I'm aware of. Incredible amounts of free stuff that makes my life better.

Any addiction to their platform has been due to bliss.

<comment><USER5> Should have named yourself "totallydontworkatgoogle."

</comment></comment></comment></comment><comment><USER6> This article just included Milton Friedman in a collage that seems to imply he was a conspiratorial, racist, misogynist? For those who might not know who he was, here is is Wiki entry. [1] He's a nobel prize winning economist and more or less critical reading to understand the logic behind much of our current economic processes, without casting judgement on the rightness or wrongness of said systems. He died 13 years ago. I am, for once, at a loss for words. That is just so unbelievably idiotic.

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

<comment><USER7> That along with them including Philip DeFranco (even though he's not mentioned in the article) made me lose interest in whatever they were trying to say through the article. I don't want to get on a political debate here on HN but Phil is more left leaning or at least that's the impression almost entirety of his audience gets from watching his videos.

I honestly think that this article is more about trying to take down independent but huge following journalists/creators than it's about shining light on radicalization. This could be because of these independent creators are taking away too much of these huge media company/newspaper's profits.

</comment></comment><comment><USER8> While there are lots of "far right" channels out there, the majority of of the channels shown as screenshots have nothing to do with the "far right" or conspiracy theories.

Looks like their main crime is being conservative.

<comment><USER9> I just scrolled down the screenshot section where it showed the videos he watched in one time period, are you really trying to say Stefan Molyneux, Paul Joseph Watson, thunderf00t and a lady complaining about "cuckservatives" aren't "far right" or conspiracy theorists?

<comment><USER8> I haven't watched Stefan Molyneux or thunderf00t, so can't tell.

I've watched a few Paul Joseph Watson videos. I've also watched Shapiro, Milo, and Peterson, recognized from the screenshots shown. You can agree or disagree with the positions they take (e.g. Milo plays the extravagant provocateur for laughs and money), but where are those "conspiracy theories"?

Of course in these days, everything is labeled a "conspiracy theory" too. I keep the term for things involving the illuminati and aliens.

Regular corporatist interests and politicians conspire all the time -- the more open version is called lobbying.

Heck, politics is all about conspiring (including very covertly spy-shit, Nixon-Watergate like) against other parties and ideologies...

<comment><USER9> Paul Joseph Watson was an employee of Info Wars. Like, the whole thing of that site is conspiracy theories? I can't help but feel you're being disingenuous when you question Info Wars members being conspiracy theorists.

<comment><USER8> And I feel people are being disingenuous when they say Paul Joseph Watson is a conspiracy theorist by association.

I've watched several of his own videos on his YouTube channel. Where are the conspiracy theories?

<comment><USER9> I found these in about 10 minutes. Don't act like being part of a conspiracy theory website makes calling you a conspiracy theorist is some sort of disingenuous leap. Like the point of the website is spreading conspiracy theories.

A lot of the prison planet blog was deleted it seems, I guess due to his and alex jones' fallout, but here are your links.

[https://www.youtube.com/watch?v=ifIAlft47bM](https://www.youtube.com/watch?v=ifIAlft47bM)

[https://www.infowars.com/obama-birth-certificate-raises- as-m...](https://www.infowars.com/obama-birth-certificate-raises-as-many- questions-as-it-answers/)

[https://web.archive.org/web/20180123234120/https://www.priso...](https://web.archive.org/web/20180123234120/https://www.prisonplanet.com/articles/february2007/220207okcrevelations.htm)

[https://web.archive.org/web/20170702085649/https://www.priso...](https://web.archive.org/web/20170702085649/https://www.prisonplanet.com/articles/april2007/160407blackop.htm)

[https://web.archive.org/web/20171226050840/https://www.priso...](https://web.archive.org/web/20171226050840/https://www.prisonplanet.com/articles/july2005/130705teneasysteps.htm)

<comment><USER8> So, the kind of "conspiracy" you meant is speculation there is a cover up of a politician's ill health condition in the first video? That has been done time and again by all kinds of politicians and leaders, from the time of El Cid... If that's a "conspiracy theory", then sure, every journalist alluding to something not documented at the time, is a conspiracy theorist. I expected more aliens, illuminati, and lizard people.

The second is merely reporting, on a well known topic of public discussion. A document was requested, it appeared, and there were people raising questions about certain aspects. Should they not be reported? Where's the conspiracy part?

The others I'll give you are conspiracy theory material (though several of those kind of conspiracies (government conspiring, ordering executions, and so on), that a naive US person thinks "can never happen", have been found -- by courts and later evidence -- true in Europe time and again, just ask in Italy, Spain, France, Greece, etc. E.g:

[https://en.wikipedia.org/wiki/Piazza_Fontana_bombing#Officia...](https://en.wikipedia.org/wiki/Piazza_Fontana_bombing#Official_investigations_and_trials)

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

That said, those are from like 10 years ago or more? I'm familiar with his YouTube stuff and I don't see much conspiracy stuff there.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> The author of this article and the YouTube creators he maligns, are both engaged in what Naval Ravikant describes as a "negative-sum prestige game". The wealth benefits are nearly zero, and the fame is all negative. Stay in the positive-sum wealth game, fellow hackers; build, create, form meaningful life- long relationships.

</comment><comment><USER11> I love the scrolling transition at the beginning of this article. It really feels like an excellent piece of internet art.

<comment><USER12> It's also a very misleading and dishonest journalism, as many of YouTubers displayed in the final stages have nothing to do with the alt-right.

<comment> gjsman-1000 I'm not a fan of all of those YouTubers, but quite a few of the big ones (i.e. Crowder, Shapiro, Peterson) detest racism, and have openly and many times said that they do not support white supremacy and think Nazis are racist morons. Someone asked why neo-Nazis were attending one of their conferences, and the speaker (Peterson) said he had no idea and wanted them to leave for being idiots.

Doesn't change the fact that NYT still calls them "white supremacist supporting." I think the problem here is that they support some policies which white supremacists, as a group, also like supporting. Just because two groups can agree on something doesn't mean those groups are allies. Also, "white supremacist" is a great slam against someone you don't like regardless as to if it is true.

<comment><USER13> "Israelis like to build. Arabs like to bomb crap and live in open sewage. This is not a difficult issue. #settlementsrock" \- Ben Shapiro

<comment> gjsman-1000 [https://twitter.com/benshapiro/status/25712847277](https://twitter.com/benshapiro/status/25712847277)

And he was totally blasted by his own fanbase for it. Everyone might say something, once in a while, too far. Doesn't make it right, but doesn't make him completely wrong on everything.

</comment></comment></comment></comment></comment><comment><USER14> The most interesting thing about the article is the admission by google that it wages an ai-powered war on humanity. Rather than paperclips, the most likely ai apocalypse scenario consists of an ai that modifies and breeds humans (what it considers humans) to do nothing but watch ads.

<comment><USER15> It will first breed and otherwise manipulate humans into believing only what the media tells them.

</comment></comment><comment><USER16> It's going to be hard to discuss the problem here if just mentioning it draws such a vast quantities of spam from the other Caleb Cains of the world.

</comment><comment><USER17> Why in the world is Philip DeFranco in that collage?

<comment><USER18> The same as everybody else, they challenge the mainstream media view.

<comment><USER18> See Tim's video [https://youtu.be/ZtYle7Rqn0Q](https://youtu.be/ZtYle7Rqn0Q)

</comment></comment></comment><comment><USER19> For much of the article, the author portrays the "left-wing" as a bastion of sanity and moral good, a place where those who have been hijacked by the "right-wing" can be rehabilitated. Only at the very end does he pay passing lip-service to the possibility that there might be danger on both sides.

Is his characterization accurate?

<comment><USER20> I am having trouble thinking of a way to answer this without being downvoted for either being "too left" or "too right" in my reply. Maybe I'll just try and take a side route: Ideology is one hell of a drug. I like Gary Bernhardt's talk[0] on the subject. He defines ideology as the stuff we don't know that we know. In any event, there are certainly shallow moralists on both sides.

[0]: [https://www.destroyallsoftware.com/talks/ideology](https://www.destroyallsoftware.com/talks/ideology)

</comment></comment><comment><USER21> So long as advertising revenue rules everything around me, I don't see this problem going away. Whether it's addictive right-wing videos or addictive left-wing videos, websites like YouTube will always prioritize "engagement" and adviews over safe and neutral and boring and reliable. Good times...

</comment><comment> gjsman-1000 Quick Question: You are worried about right-ring rabbit holes, NYT.

If I watched a bunch of NYT, Vox, and other such videos, are you _sure_ I wouldn't be sucked into a Left-wing rabbit hole?

<comment><USER22> I think there is a fundamental difference though. At some point the far right will start to promote really hateful messages such as anti-gay, anti-jew, anti-woman, etc. At the far left end, on the other hand, the hate is stared at the capitalist system and public figures benefiting from it.

<comment><USER23> At the far-left end:

A. Millions murdered based on class: independent farmers [0], intellectuals, defined as anyone wearing glasses [1], entrepreneurs, professionals. Generally anyone perceived as better off than their neighbor was at risk of being labeled 'enemy of the people' by said neighbour and deported overnight into the Gulag [2]. Or executed on the spot.

B. Millions deported based on ethnicity. Entire populations were moved around USSR in the '30s, including Balts, Poles, Romanians, Tatars or Koreans, based simply on their ethnicity, partly as an attempt to forcefully disassociate them from their cultural legacy.

C. Millions murdered due to breakdown of basic economic structures. The great famine of Ukraine in '32/'33, and Mao's great famine of the '59/'63 stand out as marvels of far left ideology implemented by force in the economic sphere.

All in all, an estimated 100 million people lost their lives in the name of far left ideology [6]. It is repugnant to gloss over recent history and pretend there are no hideous monsters to be found.

[0] [https://en.wikipedia.org/wiki/Dekulakization](https://en.wikipedia.org/wiki/Dekulakization)

[1] [https://en.wikipedia.org/wiki/Anti- intellectualism#Democrati...](https://en.wikipedia.org/wiki/Anti- intellectualism#Democratic_Kampuchea)

[2] [https://en.wikipedia.org/wiki/Forced_labor_in_the_Soviet_Uni...](https://en.wikipedia.org/wiki/Forced_labor_in_the_Soviet_Union#The_Soviet_Gulag_System)

[3] [https://en.wikipedia.org/wiki/Population_transfer_in_the_Sov...](https://en.wikipedia.org/wiki/Population_transfer_in_the_Soviet_Union#Ethnic_operations)

[4] [https://en.wikipedia.org/wiki/Holodomor](https://en.wikipedia.org/wiki/Holodomor)

[5] [https://en.wikipedia.org/wiki/Mao%27s_Great_Famine](https://en.wikipedia.org/wiki/Mao%27s_Great_Famine)

[6] [https://en.wikipedia.org/wiki/Mass_killings_under_communist_...](https://en.wikipedia.org/wiki/Mass_killings_under_communist_regimes)

<comment><USER22> This is off topic since I (and parents) was specifically talking about youtube creators. But sure, lets change the subject for a minute and talk about the general ramification of far left and far right policies.

I could go hat for hat and mention all the murders and genocieds far right regimes have conducted, regimes like Franco in Spain, Pinochet in Chile, etc.

But I could also go through all the disasters caused by capitalism like the Bhopal disaster in 1984, or—the elephant in the room—global warming.

My third option would be to list all the social issues caused by unhindered capitalism, issues like the housing crisis, or the worker conditions in the late 19th to early 20th century.

But all this is conflating the fact that I would be blaming bad policies enacted by ignorant, greedy, or even malicious people in the name of a political or economical ideology, which is to say (at least in the case of Franco and Pinochet) I'm confusing capitalism with fascism, something I see quite a lot in the above comment. My point is that none of these (with the notable exception of global warming) are the necessary consequences of far left or far right policies.

Sure you could take me on this and claim that both far right and far left people are capable of performing horrible things, and you would not be wrong. And then again, I must point out that this is off topic, we are specifically talking about youtube creators, of which you can find numerous example of far right creators spreading hate towards a large generalized public while on the far left you at worst find this hate spread towards public figures that represent far-right ideologies.

</comment></comment></comment></comment><comment><USER5> [https://youtu.be/HWc5_4uKOg8](https://youtu.be/HWc5_4uKOg8)

Molyneux's response to the article.

</comment><comment><USER24> Lots of grey text in these comments.

</comment><comment><USER25> It's nothing new, is it? [https://slatestarcodex.com/2014/12/17/the- toxoplasma-of-rage...](https://slatestarcodex.com/2014/12/17/the-toxoplasma- of-rage/) (2014)

How many Tumblr radicals are out there? Both sides are doing it.

</comment><comment><USER26> personally, i can relate. but where are the Facts? :)

</comment><comment> gjsman-1000 This piece of "journalism" is very biased towards the left. I have noticed that the left has increasingly declared traditional right-wing values as "extremist" or "alt-right" to attempt to whittle down what being right-wing means.

An example of this is abortion. No matter how you feel about it, saying that abortion is murder and should be banned is now, in the NYT's opinion, "alt- right" and "extremist" even though about half of America believes so and this has always been a Right-wing value.

Not only this, but this type of article is why the Right calls NYT "fake news." Not necessarily "fake," but the bias is boldly visible. It doesn't help with media credibility - and then the Left wonders why the Right doesn't take newspapers seriously. For the record, I think "Fake news" is overused - but I do understand, reading this, why the Right loves bashing NYT.

<comment><USER27> The right has always hated abortion in recent memory, but I think you've gone too far in saying that most conservatives think abortion is murder. Some of the extreme rightists, usually of the religious variety, think that abortion is murder, but rank and file conservatives will probably not tell you that they a woman who gets an abortion(even illegally) should go to prison for life for first degree murder and conspiracy(with her doctor).

<comment><USER28> The most interesting thing though, is that the Scandinavian Countries (the leftiest in Europe) have the toughest regulations about abortions - the cut- off term AFAIR is only 12 weeks vs 24 in USA.

<comment><USER29> Sweden which is the largest Scandinavian country allows it up to 18 weeks with no questions asked, after that you need to apply.

</comment></comment></comment></comment><comment><USER5> I closed out of the article at the suggestion that the likes of Joe Rogan, Ben Shapiro, and Dave Rubin are "radicalizing" anyone. The New York times is such unbelievable garbage.

</comment><comment><USER30> > When Mr. Cain first saw these videos, he dismissed them as left-wing > propaganda. But he watched more, and he started to wonder if people like Ms. > Wynn had a point. Her videos persuasively used research and citations to > rebut the right-wing talking points he had absorbed.

Good to know apparently none of the right-wing videos used research or citations - only 'talking points'. Or at least it wasn't mentioned.</comment>


100G optical switch from Facebook - <AUTHOR> http://www.businessinsider.com/facebook-is-again-putting-the-computer-network-industry-to-shame-2016-11 <comment><USER2> Hmm... privacy implications? If you drop this into your network, what are the chances it is reporting on you?</comment>


Tell HN: Add any metadata to any domain bookmarklet - <AUTHOR>

This was project that I worked on yesterday.  It's a bookmarklet that allows someone to save any metadata to any domain using html5 localStorage.
github link: http://github.com/davidwparker/anymetadata-bookmarklet-js
Tell me what you think, thanks. <comment><USER2> Upmodded, but would be useful to have a demo, despite how easy your script is to deploy.

<comment><AUTHOR> Here's a demo on my blog: <http://davidwparker.com/2010/04/10/any-metadata- bookmarklet/>

note: I've only tested it on Ubuntu Chrome 5.0.342.7 as I know Chrome supports localStorage.</comment></comment>


Ask HN: API for RabbitMQ? - <AUTHOR>

It doesn't seem like there's anything out there, it's widely used in a lot of places though. <comment><USER2> Perhaps you could clarify what you're asking for.

Have you taken a look at <http://www.rabbitmq.com/clients.html> or <http://www.rabbitmq.com/devtools.html>?

They seem to have native API's available for Java, Erlang, and .Net; I haven't used any of those, but I used Pika (Python-based) and it worked nicely for me.

</comment><comment><USER3> RabbitMQ is accessed mostly by using the AMQP protocol 0.9.1 so if you have a client in your language for that version then you are good to go. Check the links in @blackdawg comment.

There are some plugins which offer other protocols like STOMP or MQTT

</comment><comment><AUTHOR> I'm talking about more of a platform for rabbitmq heroku style. I'm aware of cloud foundry's built in stuff, but what about something stand alone? Sorry for not being clearer.</comment>


Drug cops took a college kid's savings and now 13 police departments want a cut - <AUTHOR> http://www.washingtonpost.com/blogs/wonkblog/wp/2015/06/30/drug-cops-took-a-college-kids-life-savings-and-now-13-police-departments-want-a-cut/

<comment><USER2> >"By attacking the financial infrastructure of drug trafficking organizations world-wide, DEA has disrupted and dismantled major drug trafficking organizations and their supply chains, thereby improving national security and increasing the quality of life for the American public."

"...oh, and our budgets. Yeah, it has definitely improved our budgets as well."</comment>


Pandora betters last.fm in the iPhone music war - <AUTHOR> http://www.thestandard.com/news/2008/07/16/pandora-will-win-iphone-war-heres-why

<comment><USER2> I think Pandora also betters last.fm in the PC "music war". For me at least, Last.fm hasn't really been able to consistently find songs I like, and after a while strayed off into stuff I didn't. Pandora on the other hand, caught most of my preferences within a day or two and actually gives music I like.</comment>