skysight-inc/HackerNews huggingface dataset:
[Ex-Googler here] Truth be told this is a trivial question to be asked during an algo interview and as an interviewer I'd consider this a warm-up. Otherwise it's a rather poor question since either you know how to do it (ie, you have an idea about recursion) or you don't - there aren't too many shades of grey or possible follow-up questions that I can ask to probe the depth of your knowledge.

That being said if I asked this as a warm-up and we'd spend the whole interview trying to get that done then of course my verdict would be No Hire. As an interviewer it is not my job to look at your GitHub profile - instead I am assigned an area to check and I try to come up with the best understanding of the candidate in that area. While failing to reverse a binary tree is a total failure in algo/ds you can still be hired since there are several interviewers (if you make it to onsites, that is), each probing a different area.

My biggest problem with Google style interview process is that it's easily passed by folks who already passed it in a different company. After having interviewed hundreds of Google's candidates I moved to another big company with the same interview type and the experience was really surreal. On my algo/ds interview I got asked slight variations of the same questions I was asking myself - and over time I've seen some totally brilliant, unexpected solutions. Must have been a strange experience for the interviewer who got his questions each answered in 3 minutes tops. I also made it a sport to solve each one in a different language because why not. Not sure though about validity of the signal the company got from this interview.
How do you know it was ignored? It's possible it is one of the reasons why he even got this far.

Also how do you know he didn't fail a great number of other things they evaluate?
kafka + apache phoenix
especially funny with another meaning of word "workers "
Also my favorite architectural series Lego kit: http://shop.lego.com/en-US/Fallingwater-21005
I'd guess that's because they have so many condidates to pick from.

Exactly. It's the Big City Dating Problem. There are so many people to pick from, nobody wants to compromise to build a relationship. Just leave at the slightest sign of something not being 100% what you want and on to the next one since there are 20,000 other acceptable people within walking distance.

if you have access to a compiler and internet

It's not exactly that, but you often don't realize how many micro-checks or micro-confirmations you do while programming. In the absence of any "is this okay so far?" feedback, you're left second guessing yourself and reading your solution redundantly to check for any errors your daily automation would catch immediately by default.
Maybe this guy wasn't quite arrogant enough to work at google, I mean he seems pretty arrogant, but I think you really have to be extremely arrogant and up on a moral high horse to work at google.
Revolut: pay abroad with almost zero exchange fee
1. What a huge update.

2. Not related to the update, but was wondering what do people who have worked with UI frameworks in C++ (i'm not one of them) think about Unreal's Slate UI Framework. Seems pretty slick to me (Coming from web dev and win forms) and highly customizable, though rather verbose.
This handbook is 2012. Has anything changed since?
It's another idea that's been proposed. I think we might be waiting for the technology to catch up, or a flashy implementation to excite everyone.

Bill Gates proposed using the wall as a display in a 2009 talk he gave at UW Seattle - he said he saw it as something that was definitely going to happen eventually, it was a question of when. And the idea has been presented fictionally in Fahrenheit 451, if not before.
> While clearly legal, it's strikes me as a terrible precedent to require speakers on technical topics to pass a political litmus test.

It's funny, in some countries you have laws against hate speech - it probably wouldn't be legal to write stuff like "blacks make good slaves because of their genetics" [sic] - but in the US because of the free speech thing society relies on all these extrajudicial lynch mobs. So... terrible precedent or common sense?
But y does not get smaller. Only expected interest on y gets smaller. y is the same (actually a little larger because money today is worth more than money tomorrow) and in the governments pocket. If the government was smart they would put the y in their pocket to use to offset the risk of x.
Every OS that people actually use has boatloads of unpatched security issues.
The New Microsoft?
The "supply problem of engineers" is the great lie of our industry of our time.

I guarantee if dev positions paid as much as medicine or ibanking you'd have more devs. Not necessarily really good devs, but certainly people who pass the Ivy + 1600 SAT sniff test and can memorize the SAT book of Google interview questions.
Except that google 'banned' the use of windows internally a few years ago unless you had a really, really good reason for it.

Not sure what's the status of that ban (nor I care), but will skew the numbers enough to invalidate your point.
> People have previously mentioned hallway discussions at Google routinely devolve into bragging about SAT scores and GPAs.

I've been at Google for 3.5 years (in the NY office) and have never heard this. I don't think I've ever even seen anyone wear a college t-shirt/sweater.
As far as my specific interviewers are concerned, I liked 7 of the 8 as individuals, which is great. What I didn't like was the company felt like a monoculture. Same schools, same majors, same pre-education background. Everybody looks the same, dresses the same, etc.

The process, on the other hand. Ugh. I have zero respect for Google as a company after that.

It starts with the standard phone screen/day-long onsite/hazing ritual. Then come phone calls with teams, and teams saying "yeah, we want you", and me saying "sure, sounds good". The recruiter basically said "time for the higher-ups to rubber stamp this, and here's the $$ to expect". Someone up the chain said "well, we're not so sure, let's haul him back here for another round of onsite interviews". Which I did, it went through the same process, and the response was "well, maybe not you for this role, but lets set you up with more teams".

All of this finally goes through, and I get an offer. Then there's a negotiation that goes something like:

Me: I'd like 4 weeks to think about it while a couple of other applications come back (keeping in mind they've dragged this on about 2 months longer than it needed to be).

Google: You get 2.

Me: I'm at a conference week #2, but I'll do what i can to get a decision to you Friday.

<Fast forward to monday of week #2>

Google: Have you made up your mind yet?

Me: I'd like to look at my options, and I'll get back to you COB Friday

Google: It's really important that we hear beginning of day Friday

<Fast forward to wednesday>

Google: Have you made up your mind yet?

Me: No. One of the options I was looking at is now off the table.

Google: So WTF are you waiting for.

Me: The other options

<Fast forward to Thursday>

<Phone rings while I'm at the conference>

Me: You can't pay me enough to deal with this.

Maybe no individual involved is a prima-donna, but the ego showed by the company as a whole through the recruitment process is stunning. It felt like I was dealing with the star quarterback who never considered that when they asked someone on a date, they might get turned down.
I agree. I feel the overpowering urge, when asked this sort of basic interview question, to shout back "WHY?". What does inverting a binary tree have to do with software engineering, at all?

Google (and other interviewers) might as well be asking me to name the last 1000 digits of PI. The Kafkaesquen ability to recite how to do the task correctly reflects nothing about the candidate, except the strength of their memory.

It boggles the mind that the field of computer science does not have any standard way to detect the competency of a person. It is extremely discongruous for a company with as many smart people as Google to have such an absurd hiring policy.
> it was the way you learned your first language.

Duolingo is almost exclusively focused on translation, which is absolutely not how most of us learned our first languages.
Recognition Award for IT4BI
(I'm at Microsoft, FWIW, every engineering team here does hiring their own way)

My team does whiteboard questions, but we try to keep them practical.

Typically they are the types of problems that we'd expect new engineers to have to look into on their first day. Oftentimes the questions are less "come up and an answer" and more "let's explore this problem domain and see what we can uncover."

As an example, the interviewer will write up on the board a data structure that is too big and has redundant fields in it, and start a discussion about how to optimize that structure. The optimizations go more and more in-depth as the candidate gains experience thinking within the problem space.

Another problem, the interviewer will give an example of a synchronous operation and work with the candidate to break it up into a set of asynchronous calls.

My team tries to avoid "puzzle questions with 1 correct answer".

I do ask simple data structure questions just to test basic programming skills. On occasion someone does make it through who cannot even write a FOR loop.

My standard go to question is "Please do an in order print of this already sorted binary tree."

It is 5 lines of code, and ~80% of candidates who haven't seen a tree in a decade can still figure it out.

IMH the goal isn't to try and trick people, it is to try and see if people can hold a conversation about a technical topic and make valuable contributions to a discussion.
Ah, they are very unlikely to get the top 100, but very likely to get e.g. 100 of the top 200? Now I think I understand the trade off they are going for (e.g. Getting 100 of the top 200 is more efficient and they are "good enough")
This article makes a much better read:

http://www.wsj.com/articles/behind-the-rise-and-fall-of-blac...

A link to get around the paywall:
https://www.google.com/search?q=The+Inside+Story+of+How+the+...
Frag: A Quake3 engine in Haskell
I used to do interviews at Google, and most likely, the interview process just failed in this case. Typically a candidate will do 5 technical interviews, where the Google engineers can ask basically anything they want to (eg. invert a binary tree in this case) and score the candidate. If the candidate trips up on one of these interviews, that can be enough to reject them. The process will sometimes randomly reject qualified people.

Additionally, I think people have a mis-perception of the skills required to work at Google:

> writing incredibly complex, highly performant algorithms for say search indexing, machine learning, ai, etc...

...

> Google was looking for a Computer Scientist here, not just another developer

This is not really the case. The large majority of positions are for basically "just another developer" to maintain an internal Java tool, or some web UI, or whatever. They are complex in that they have many dependencies and often lots of legacy code, but not all to different from Microsoft, Apple, Facebook, or any company with a large code base. In my several years at Google, 0-5% of my time was spent coming up with complex algorithms.
But you do when you're 1-3 feet away.

How about we make a system that only utilizes (for example) 8x8 "chunks" of pixels. We can put distance sensors on the display; if anything gets close enough, it can "downshift" to 1x1 pixels.
There's also a million companies using .NET. I bet roughly 92% of them are extremely bureaucratic, boring places to work for as well...

Go is used in fewer places, but those places seem to be very interesting/exciting/dynamic places to work for. My kind of places.

YMMV and all that...
Slightly off-topic but I always found it infuriating to call binary trees "binary" when some vertices have a degree = 3. :P
> By saying metaprogramming is an anti-pattern, we're saying that us lowly programmers ought not to put on our language designer hat and let the professionals take care of it.

I don't agree.

For example, most of us here would probably classify manual memory management as an anti-pattern. We're capable of doing it; we do it when we must. But we recognize that, most of the time, it's a bad idea.

Perhaps vinceguidry is saying something similar about metaprogramming.
Hackerr,
EQF
The u.s. seems to be increasingly modeling itself after banana republics and corrupt third-world countries, so it's no surprise that someone shorted the project with bad steel and pocketed the difference.
Mercedes-Benz Launches Rival to Tesla's Home-Energy Storage
This only applies to websites. Modern apps don't just look great they feel great as well.
My point is that when reading an article in a publication like the New York Times, one should not need to follow links to academic papers or be familiar, a priori, with the subject matter. Providing a high-level overview without requiring the reading of additional sources is precisely what a properly written article in a newspaper like this is supposed do. This article fails at that quite badly.
At what point during one's career should one simply be hired at face value and be exempt from interviewing? After 10 years? 20? 30?

"I see your resume says you've been writing software for 30 years, and wrote this really well known tool. Wellllll....That's good enough for me. You're hired!"
> I can do this with the hosts file but that requires that I jailbreak my device. Most are not going to want to do that.

Alternatively, VPN to a home router and filter all traffic there, for TV, desktops, laptops, mobile.
I have a pretty sizable mortgage, and it doesn't feel any different to me than renting, other than I am responsible when things break or stop working. The monthly payments are similar if not less than renting.

There are huge upsides, such as that my payment is locked in (I have a fixed rate mortgage), so no egregious rent increases, and we can do anything we want to the house (remodeling, landscaping etc.) to make it our own.

The only way you can get hosed is if housing prices drop and simultaneously you are forced to move, which doesn't seem too likely for me. Many people got crushed in the housing crash, but generally that was because they took on loans that they couldn't afford, with an adjustable rate loan, or they were planning to flip the house and got caught holding the bag when prices plummeted. Those who bought for the right reasons (a place to live rather than an investment) have no downside to their house being worth less than when they bought it.

I guess you could say I am at peace with my debt, in that I don't lie awake at night worrying about all this money I owe, since I'll never have to pay it all back at once anyway.
Isn't this a case of the loans being mispriced? If the students attending for profit schools like Corinthian Colleges are getting lower interest rates because Kellogg MBAs are subsidizing their student loan interest rates, doesn't that mean more students will end up enrolling in those for profit schools? That encourages poorer students to make bad investments and forces them to go deeper into debt.

If the loans were more fairly priced and much higher interest rates were charged for the for profit colleges, wouldn't fewer people make those bad investments?
> It's not like they get you in a room and ask you to draw a linked list or a binary tree.

And yet the OP was turned down for not being able to invert a binary tree (based on limited information, etc etc.)? What do you feel that is, if not a "whiteboard this algorithm" question?

As for many of the other companies who try and emulate Google - this is exactly what they do.
Thought experiment: is there any extremity of leftist (or progressive if you prefer) thinking (say, on a personal blog) that could conceivably get one disinvited to speak on a technical topic at a conference of this sort?
In my experience pretty much everyone is excellent, apart from the lower level non-engineering managers. These tend to be grads from top schools who have zero previous work experience. I encountered at least three or four in my time at Google who were just out to prove themselves and get promotions and regularly threw their teams under the bus.
You're also exempt from the Obamacare penalty for not having health insurance if you're out of the country for 330+ days per year. For 2015, it's 2% of your income, and next year it will be higher.

The penalty is 0.1666% per month you didn't have qualifying health insurance for any 3+ month period(s) you didn't have it, e.g., if you didn't have insurance in the months of February-April, you'd be assessed a fine of 0.5% of your income.
Student loan interest rates were fixed at a relatively high level for a while:
http://www.finaid.org/loans/historicalrates.phtml

One of the people cited in the article had their rate go from 6.55% to 2.69%. For a social program designed to send kids to college the rates should never have been fixed so high for so many years.

The author faults CBO accounting for comparing student loans with low-risk treasury bonds, but these loans pay out much higher interest rates than treasuries. And there are special restrictions relating to how the debt cannot be discharged.
Step Inside London’s Cavernous New Train Tunnels
Matasano brand officially retired by NCC Group
Slavery as a concept has nothing to do with American racism or American history. Slavery existed long before America was a dirty thought in a pilgrim's hatted head, and it still exists today, and it will likely exist so long as humans are recognizably human.

To outright decide that all mentions of a word have such a narrow context is something I cannot accept as valid. It's thoughtcrime.
fukamachi seems to work on a lot of nifty stuff
If society has no battlegrounds for beliefs, democracy is permanently is screwed, because you need some kind of battleground for beliefs to refine beliefs in concordance with reality in the first place.

Many of us US gun owners say "Soap box, ballot box, bullet box", but of course long term denial of the first invalidates the second. We're watching all this in horror because we really don't want to be forced to the third.

Especially since one way or another, such former democracies fail hard when faced with inconvenient truths the ruling class has been denying and "The Gods of the Copybook Headings with terror and slaughter return!" Doesn't have to be political, could be e.g. transmissible bird flu coupled with our current SJW public health authorities, as the Texas Ebola cases demonstrated.
The games - Microcorruption and the Crypto Challenges - aren't going anywhere.
https://www.youtube.com/watch?v=0P-18S7E1nE&list=PLM9jdoijSd...
This is a fantastic development for users. That being said, hopefully you can permit me being a grouch:

Apple hasn't done this entirely out of the goodness of their own hearts. After all, this isn't going to filter ads in native apps, is it? If you're a site that relies on ad revenue you've just been given another reason to live in app-land, not web-land.

Imagine you're a publisher. With one OS release Apple has provided the ability to block ads on the web and Apple News, a charming new platform for you to publish your articles, complete with iAd integration. Which one are you going to prioritise?

Not that this is an either-or thing: just like Google vacuums up your personal data and gives you Google Now in return, Apple will push publishers towards iOS apps while also giving you a great web experience.
Apple have a monopoly on app distribution within iOS and are favoring Apple-owned Safari to exclude all competitors.

Apple can either:

• give up their iOS app distribution monopoly (allow other app stores)
• give up their iOS browser monopoly (allow other performant browser apps)
iOS 9 brings Apple's great Continuity feature over cellular networks
Maybe this presentation may help you:

http://talks.golang.org/2014/names.slide#1
It's probably a pathological case centered around the mountain view office: https://news.ycombinator.com/item?id=5534904 / https://news.ycombinator.com/item?id=3473308
I work for a lawyer, recently we added a text-only phone number on our website. Potential customers have been using it.
Also in deployment is http://bitbucket.aerobatic.com/
> And yet the OP was turned down for not being able to invert a binary tree

Your source is a series of salty tweets.
Another really nice contribution. Well phrased.

In the McVeigh case the FBI pronounced (and media reverberated) that the OK City bombings were a Muslim terrorist attack until it was shown, in fact, to be definitively not the case.

The language used to describe McVeigh's crimes and intentions was then continually watered down.
> I feel like, if all they are is "just functions" then why don't we all just keep calling functions like we've been doing?

The major problem with function calls in most languages (ie. not Haskell) is the call-by-value evaluation order.

For example, we could try writing an `unless` function (an "if" which only has an "else" branch):

(defun unless (condition branch)
(if condition
nil
branch))

;; Delete "foo.txt", unless we've been told to keep it
(unless keep
(delete-file "foo.txt"))

Clearly this won't work for call-by-value: the call to `delete-file` will be executed before our `if` gets a chance to decide anything.

There are a few ways around this:

- Call-by-name/need: This is what Haskell does, but it turns execution order inside-out. This re-orders the code's side-effects, which is why Haskell has to enforce the correct ordering using datatypes like IO.

- Ban such uses. Just use "if". If that's not good enough, propose a language extension and wait for it to appear in compilers.

- Use thunks. To delay something, wrap it in a function. To force it, call the function. This works, but splits our values into two worlds, causing a combinatorial explosion of decisions to be made (should condition be a thunk? Should we return a thunk?):

(defun unless (condition branch)
(if condition
nil
(branch)))

;; Works
(unless keep
(lambda () (delete-file "foo.txt")))

- Implement a macro system. This acts on the syntax, before it's been evaluated into a value. This is splitting "callable things" into two worlds, functions and macros, rather than all values. This actually isn't an issue most of the time; since functions' APIs vary so much already (arity, return values, types, etc.)

(defmacro unless (condition branch)
`(if ,condition
nil
,branch))

;; Works
(unless keep
(delete-file "foo.txt"))

- Do everything with syntax rewriting! That's what languages like Pure and Maude do. In effect, everything's a macro. It takes discipline to ensure execution follows a straightforward path though (which usually boils down to "write everything as if they were functions")
If anything, my criticism would be in the other direction. The sections are too narrowly grouped in terms of theory.

I have a non-fluent understanding of what "subjunctive perfect" means in my home language, but I guess I deal with it OK.

As such, I don't find it valuable when I see that section on Duolingo and think "OK, it's subjunctive perfect time!"
No arguments from me that cyptography is often explained confusingly which leads to misunderstandings.
http://lwn.net/Articles/646339/

privacy.trackingprotection.enabled

Works on Firefox on desktop and Android.

Speeds up browsing 40% on particularly obnoxious sites.

(AdBlockPlus also works in Firefox Android.)
It depends on what you call left. I bet someone that seriously proposed violence against some institutions or industries would get disinvited. Animal rights extremists or eco-terrorist organizations might fit that bill too.
There were numerous problems specific to this. http://www.sacbee.com/news/investigations/bay-bridge/article...
How are he rant on a full stomach with a roof over his head.
How to be Elon Musk: 10 secrets of the craziest billionaire