skysight-inc/HackerNews huggingface dataset:
A couple points I noticed toying with it --

Using the back button seems to keep trying to resubmit the form and break the page for me.

Also, you could remove the last result when an item is deleted from the page. It was displaying a record I had deleted because it was also the last submitted.

Really like the concept. I've always been a fan of doing core lifts like this and generally just keep it all in a notepad I jot on after I leave the gym.
Devil's avocado: if they're truly CS fundamentals, then they should be baked into you good and deep during the course of your college education. It shouldn't be painful at all.
Why not just take a chunk of code the candidate has written that was interesting and talk about it?

The main problem with interviews [imo] is it grabs stuff the interviewer is familiar with and throws it at the person in the more stressful position of being the interviewee. Its also [often] a very non-standard way of communicating. I don't know about you but all of my communication is via text or graphic, not whiteboard.

And, honestly, do you care more about the fact they can invert a binary tree from memory? Or that they can learn to in the next hour and implement it?

My guess is for 90% of jobs, its the second.
I think the best way is to give them access to a code base, give them 48 hours and have them submit a pull request for a feature. That way you can see that they can learn the codebase and implement the feature in their own time. During the interview, you can discuss their code and the reasoning behind the implementation details.
just playing devil's advocate, but how do we know the reason for the no-hire was the reason the OP thinks it was?
We're trying a different approach at Sourcegraph. In addition to looking at a candidate's prior work in open source if available, we ask them to complete tasks that approximate the job as closely as possible (i.e., coding on a computer): https://sourcegraph.com/blog/programming-interview

Would love to hear people's thoughts and feedback!
Do those who support Curtis appearing at the talk refrain from posting out of fear of career repercussion?

No and yes. I have been pretty vocal about it on Twitter:

https://twitter.com/joelgrus/status/606474432509394944
https://twitter.com/joelgrus/status/606673594198794240

but I've also been sitting on a 75%-written blog post that I'm hesitant to actually post.

Not because of career repercussions (I have never had an employer who really gave a shit what I write about in my spare time) but because of conference repercussions.

I am promoting a book, and to that end I am scheduled to speak at various conferences and meetups. And I worry that the mob would somehow try to get me uninvited. It's not like there's an actual policy that Yarvin violated that I can be confident I'm on the right side of.

So I am torn between my natural inclination to say exactly what I think, and the more practical takeaway of "don't write or have written anything that might anger the mob".
Engineers and employees in general really need to understand their rights better. I will write up something comprehensive later.

Some bullet points in the main time:

1. Being a bully and verbally abusive is not illegal.

2. Racist jokes are not illegal unless they are impacting your work. This is the gray area of the law. Visit your local EEOC office.

Poke around here on your own: http://www.eeoc.gov/laws/types/harassment.cfm

3. Flirting is not harassment.

4. Working in a shitty environment sucks. Just tough it out till you get a new job.
I did solve both puzzles, but I was told by the second company that they were quite surprised.
Levenshtein automata seem to pop up on here every once in a while. They are quite interesting from a theory perspective, but (like many things devised by the theory community) incredibly complex in practice. Lucene 4.0 uses them for fuzzy queries, you can read the full story of how they struggled to get them working somewhere in the Lucene blog.

If you want to implement fuzzy string matching, I would look at something like http://arxiv.org/abs/1008.1191 . The experiments look impressively fast.
If the tweet is accurate in its implication that he didn't get hired because he couldn't invert a binary tree (honestly, I don't even know what that means) on a whiteboard, then I'd say the tweet is totally justified.

On the other hand, if it was a complex and reasoned decision that he's summarizing badly, then yeah, good call on their part.

Context is king here, and we have little.
If you rate engineers on their ability to memorize something they could have looked up on Google in 5 seconds, what are you really actually testing?

If you're not at Google's scale, a take-home test that involves them producing a working solution to a problem in their own time, that you then expect them to be able to discuss, reason about, justify, and so on is a much better tool; even at Google's scale, where you might be worried people who copy answers off the net, have them bring the laptop they used in, and then get them to expand upon their solution.

All that said, I'd be surprised if that was the only factor at play. The Twitter comment itself seems to indicate a - uh - cultural fit issue. Additionally, and with no actual knowledge of the insides of HomeBrew, that a piece of software is widely used isn't evidence that the author is an excellent (or even good) developer.
Interviews break most people's intellectual context. Talky/show-me interviews are designed around interviewing MBA "how well can you present yourself" roles, but it completely fails to evaluate a technical person.

Doing a blind and "surprise me with a clever (or traditional) algorithm" whiteboard interview is a teaching skill, not a coding competency. You have to illustrate, explain, make your self vulnerable while understanding the problem, and work in front of someone while being judged confrontationally. It's not sane. (and glob help you if you don't wrap your entire brain around the problem in the first 5 seconds, then you're clearly subpar and are worth less than dirt even with your 15 years of experience shipping products to millions of users.)

Google is happy to have 1,000 nerd projects and only one thing that makes money. As long as they continue to interview smart people on technicalities instead of well-roundness and ability to actually contribute or move the company forward, they have no need to fix their insultingly irrelevant interview process.
Labeling my comment as vitriol is a pretty insubstantial exaggeration. For all either one of us knows, the author has not given any thought to how their knee-jerk blog post will affect them years from now, when they've tired of playing with their pokemons and need to figure out how to pay their bills again. With any luck, my comment will induce a moment of self-reflection and allow them to consider whether their short lived catharsis from publicly humblebragging about quitting a high-paying, 100% remote job with stock options will negatively affect them in the future.
#Developers – A global developers community, on Slack
How do you practice answering whiteboard questions?
answer: it wasn't, cause it's never just 1 reason.
Could you please explain the difference between datomic (http://www.datomic.com/) and "The Pachyderm File System"?
Fallingwater: A Building That Bonds with Nature and Dances with Time
I for one support Curtis on this issue, but tend not to post here on the subject except under an alternate username. I do this because I do in fact fear the "social justice" crowd and their ability to mess with people and their careers when they don't follow the party line.

If I were to hazard a guess, I think I'm not alone in this and I think you're not in a minority (or at least a small one). The recent HN stories seem to get a good number of "silent upvotes" before anyone steps into the fray to add a comment.
Without commenting on whether this is a good interviewing strategy, surely the point is to sacrifice some potential good hires in favor of definite good hires. In other words, you might be able to write pretty good code even if you can't solve problems on a whiteboard, but, given a choice, why wouldn't we just choose the people who can do that, too?

I think the stated philosophy of interviews like this one is that a false positive is worse than a false negative. Every single one of the responses to that tweet either misses that point or sounds like little more than defensiveness in the wake of a bruised ego.

You might disagree with that interviewing strategy, but you're not addressing it directly.
Robocar roundup: Google accidents, Baidu cars, startups and more
Disclaimer: Not an expert, just someone who has some "Real World" (dayjob) Haskell experience.

Like Go using say warp[0] and async[1] likely with similar performance numbers but with less code, more static typing guarantees, and simpler[2] code. Like Go though, you'd deploy with a static binary. This is just a wild guess though, I would need to know specifics of the Go application they've created.

0: http://hackage.haskell.org/package/warp
1: http://hackage.haskell.org/package/async
2: I find redundant code like Go requires[3] to be more complex. Haskell code can be complex, but simple, straight-forward, not trying to be complex Haskell is very simple and concise.
3: Well, you can use interfaces and lose type safety. Or you can use reflection and make things dog slow.
To all of those saying ranting on twitter is the wrong move I couldn't disagree more. Twitter is often the ONLY tool that the average person can use to communicate and/or call out large companies on their actions. This is BS and should be made known. Homebrew is an amazing tool and I'd be falling over myself getting the offer papers in this guy's hands if he came to me looking for a job. The fact that google turned him away only further cements my opinion that google would be a terrible place to work.
I've been using https://github.com/tylerb/graceful for a few years now. At the time Go (1.3 IIRC) added to ability to actually access the internal connection state for connections created via net/http, it was the only library to actually do the right thing.
So, strstd.com has been around for a while. The standards themselves seem to be the same, and I generally assume that those come from http://www.exrx.net/Testing/WeightLifting/StrengthStandards...., although I guess that may not be the case.
> Playing with the syntax of a language forces you to have to maintain it yourself and creates a burden on anyone else who has to read your code.

You're doing it wrong. eDSLs are designed to simplify the code and make it easier to read it and maintain it. If it is not your case, then you did not design your eDSLs properly.

> Our minds can only handle so much abstraction at once,

Our minds can operate with a very limited set of entities at once. Abstractions are absolutely essential for reducing complexity. Of course you must stay on a same level of abstraction, and you cannot really do it without metaprogramming. You can design a nice, clean DSL which only deals with the problem domain level of abstraction, does not expose anything irrelevant from your host language.

Without this all your abstractions are leaky, and you'll see the host language peculiarities through your problem domain, making it harder to grasp all at once.
Especially as a fresh grad. Reviewing for a week or two if you've gone to a good school/actually did your work instead of 'consulting google' is definitely enough...
Playmobil Fun Club
It's a vampire, seems slightly more legitimate.
By re-learning computer science concepts you haven't had to use in real life without Googling in a decade.
And Google engineers aren't the shit either. Their Java libraries are large and unwieldy. They would learn something by taking an example from the apache libraries - clean and straightforward, focused and small. I hate working with Google code.
Which would have added $0 in revenue to the company.
I think the real issue is that most programming jobs aren't computer science jobs, so CS fundamentals are almost totally irrelevant.
Look at glassdoor.com or careercup.com for questions from a certain company. Practice using paper and pencil.

Have a friend do a mock interview with you.
In contrast, I devoured the full UR archives over the course of a couple weeks. In this context, his verbosity is a feature, not a bug, because it's people like me Moldbug was trying to reach.
The general, reductionist way I've seen it put and like, is that the "blue team" has been so successful in the culture war that they are now reduced to policing the battlefield and shooting the survivors. Which Yarvin obviously was, seeing as how there's little to no chance Urbit will ever get a chance in this current totally politicized environment.
Some important context to recognize in this incident is that it was a handful of explicitly (leftist) political personalities that rose any stink to begin with. Clark more or less names them all in his piece. Most of the ones who pushed to censor Urbit from Strange Loop even admitted that they personally were not attending the conference. Most conference attendants would not have had the first clue that a member of the Urbit team maintained a conservative political blog from 2007 to 2013 or so under the pseudonym Mencius Moldbug. The ones that did probably would not care too much about it as most of them are not preoccupied with aggressive radical politics. They'd attend the talk, or not, and go on with their lives.

It's a heckler's vote. Now, the conversation is about Yarvin and his politics. But if these 3-4 radical and deeply political agitators had not made this an issue to begin with, everyone attending the conference would have just known they were attending a presentation on Urbit (if they even chose to check out that session).

In other words, if this is established as a precedent, then a passionate enough fringe group can create the "destruction" they claim to be against to justify covert ideological policing. That this is occurring at a strictly technology event with a reputation for openness to innovative, experimental ideas is particularly chilling.

"Nice conference you got there, shame if this speaker I don't like created a controversy for you"-type manipulation does not seem as bad or obvious when the targeted beliefs are foreign to your own. Stepping back and anticipating the implications reveals a troubling future, and one that is occurring in many industries at once.
I'm surprised by apparent predominance of support here on HN for Strangeloop's position.

Do you not recall the self-immolation of the Mozilla Community during the Brendan Eich CEO fiasco? Big overlap in the two communities.
I guess it depends on where you're interviewing and what their expectations are of you. Since you've just graduated they may expect you to be very junior and just want to make sure you have a good CS foundation. They should ask problem solving questions but it wouldn't be weird if they just focused on what they think you know.
So are Apple Watches and iPads. Please stop it with this nonsensical nationalism/racism.
FWIW, 'grace' provides graceful restarting (and graceful shutdown) while 'graceful' looks to simply provide graceful shutdown.
I did as they said at the bottom and gave them my e-mail and other personal details so I could download the eBook that they were giving free preview copies of - "Building Microservices". Unfortunately, they sent link to PDF only so it's not usable to me. Just a heads up to others so you save yourself the time of discovering that. (I'll just wait for when the book is finished and then I'll buy it so I get ePub. I like O'Reilly and have bought many books there before.)
What is the source of these numbers? I did not see any age associated with it. I compared my lifts and I was way below the untrained numbers you put up.
These types of interviews work really well for the "I got 1600 on my SATs and went to {insert high profile school here} crowd" There are books out there just to prep you for Google interviews I see these as very similar to SAT test prep books. I'm not so sure Google is really interested in hiring the best engineers but rather a specific type of engineer.
If you're just doing 2D, it's really bloated and clunky. The UI stuff isn't great either.

I imagine this will gradually improve, but for now it's really not an appropriate engine for that class of games. Anything from LÖVE to Unity works much better.
> I find it very hard to remember something that went from business to the home market successfully.

The Personal Computer.

Remember that mainframe you have at work that can crunch right thru spreadsheet numbers? Now you can have that same convenience at home. And this one can play Frogger too.
I graduated this spring and I don't know how to do that. Now, I am not a boy genius but I doubt it is a CS fundamental.
Am I the only one who finds massive friction trying to learn the heavy GUI editors of both Unity and UE? I've been a hobbiest game programmer for 15 years, I studied computer graphics in college, I could probably write a software rasterizer in my sleep. I've been using Blender for quite some time, even in some semi-professional work. I've lead numerous projects from start to finish in all kinds of industries, including a few in raw, physical simulation. I've even built my own video game controllers.

But whenever I start one of these programs and start trying to go through their tutorials, they want you to go through some convoluted set of menus and toolbox windows to basically do nothing but edit a scene graph. And they have their own terminology for everything. And then I go cross-eyed.

And it's not even "terminal vs. GUI" talking, I actually like Visual Studio. I just want to model in Blender, export models to game-friendly formats, write code, and import them in the game, like every other project I've ever done, like a normal game project.

But even UE's "Expert-mode, C++ template" involves heavy, heavy use of their GUI, which might be relatively stable today, but it's still a hog on resources and terrible buggy compared to even Visual Studio, which itself is no lithe figure. I tried exiting out of the editor and loading the solution directly from Visual Studio and running a build just seems to... open the UE editor again!

I'm not a beginner, I don't want beginner's tutorials, and I especially hate video tutorials. I want something I can read that isn't just "click this menu, now open this tool window". What the hell ever happened to writing code?
This reminds me of something I never understood fully: Penrose's tensor notation.
I took CS 101 classes almost a decade ago, and since then, I have never once needed to write a binary search tree outside of an interview.

I think "CS Fundamentals" are really just "abstract concepts used to teach programming", and calling them fundamentals is disingenuous.
You're getting bitten by preference falsification, as proposed by Timur Kuran.

http://en.wikipedia.org/wiki/Preference_falsification
More disingenuous than somehow confusing policies of vendors with fundamental CPU architectural paradigms?
Will this really work long-term, or is it a short-term disruption? I know that in the NFL (American Football), fans are always integrated, but may become very violent. This is particularly true when there are rivalries of teams in close geographic distance allowing large numbers of fans from both teams to be in attendance. For example, games between the Philadelphia Eagles and NY Giants may be particularly dangerous.
What does it mean to invert a binary tree? I'm not familiar with this operation on binary trees. Does it mean to swap parents with child nodes? Or to swap siblings?
1950 is generally accepted by both AGW skeptics and proponents as a time before which human influence on climate was not discernable. That is, the warming trend before 1950 was natural, not human-caused.

AGW skeptics assert this places a burden of proof on AGW proponents to show that warming since 1950 is beyond what could naturally occur.
As goes the recruitment, so goes the employment.

If you wanted to work for an organization where everyone likes to show off their skills to one another in the interviews, you'd have gotten the job, and you'd be one of them.

The best interviews I find are like a first day of work (but unpaid). Your experience and skills are established by resume and portfolio. The interview shows whether you can work with the team and wrap your head around the org's problems. If you're having to show off- well, that's how your work will be, too.

Google's interviews convinced me, years ago, that there's no way I'd ever want to work there. And that feeling hasn't changed one bit. Much like FB, it's an org whose coding needs are really pretty trivial and the real work was done and finished a long time ago (but there's plenty of need for debugging, egos especially). If you want to work there and surf the gravy train, cool for you.
a little bit more info

https://twitter.com/mxcl/status/608698037100244992
https://twitter.com/mxcl/status/608687283869503488
agreed. I've tried several language learning products and found memrise helped me retain a lot more than any other
Get a couple books on algorithms, memorize like its CS 101 basically.
> Languages like Java, JavaScript, or the .NET framework could never have prospered on platforms that didn’t allow them to create new native code as they ran.

We can take this a step further and say that if IBM locked down its PC back in the 80s, we wouldn't have Linux!
That experience doesn't mean that's just what they're saying. It could mean in those cases the person a) didn't solve them problem, and b) didn't demonstrate an approach to solving they problem they were looking for.
Getting around Travis is relatively simple (IMO), but Coveralls with Common Lisp surprised me.
Another instance where silicon valley favors the young... he probably would've nailed this question if he'd been only a couple of years removed from school.

He also would've nailed it had he been given 10 minutes to do some research to refresh.

Silicon valley (and the numerous companies that mock the interview style) are testing for the wrong thing when they hire, then complaining about not being able to find good engineers.
A DSL is something you have to design and maintain. The simplifications do not come free. Things leak through DSLs all the time, it's not a magic bullet. I've made and ripped out a bunch of DSLs, now it's a tool I only reach for if there's a clear need for it.
I would never do a take home test for an interview. I did that once and it was such a waste of time.
Are the subscription plans based on daily queries, or a monthly total represented by how many per day?

For example, my company has a password policy that reminds users every 6th Monday (we find that passwords changed on a Friday often require an IT reset the following week because they forget, so we try to encourage updates earlier in the week). If we tried your service, would we be penalized for a high volume on single days?
I wonder if an electrical circuit has happened between the salt water and the various sections of the bridge...
I wonder how much of it is legacy.

Google said early on they want to hire the best and brightest and that was the most important. We got the mantra that passing over a good person is better than hiring a bad one. And they were right. But they're a huge company now. They, and other gigantic tech companies are always complaining they can't find 'good people'.

But how do you make this philosophy scale? Do you say, "This person is smart but lacking some skills so we'll invest in them"?

I have no idea. :(
GitHub: Improved Permissions
"How much do you want to work here?" is probably a better predictor of your performance on the job than your experience is. I don't see the problem with that: IMHO, the fresh grad who really really wants to be there should be hired over the experienced veteran who's just putting in time. I'd like to think that an experienced veteran who really really wants to be there would also get the job, though, over both of the other candidates.