Why does Martin Fowler not understand feature branches? - <AUTHOR> https://jamesmckay.net/2011/07/why-does-martin-fowler-not-understand-feature-branches/ <comment><USER2> [2011]

[https://web.archive.org/web/20180919111616/https://jamesmcka...](https://web.archive.org/web/20180919111616/https://jamesmckay.net/2011/07/why- does-martin-fowler-not-understand-feature-branches/)

<comment><USER3> archive.org is amazing.

</comment></comment><comment><USER4> Usually "why is this on HN?" is pointless whining, but in this case I'll make an exception. Really, why?

This is a 7-year old rant referencing a video that's no longer available (the original URL has gone away), so there's no way for anyone to make sense of this old debate. The original page is on archive.org, but the video was embedded via Flash and doesn't work anymore:

[https://web.archive.org/web/20111231235506/http://www.though...](https://web.archive.org/web/20111231235506/http://www.thoughtworks.com/perspectives/30-06-2011-continuous- delivery)

</comment><comment><USER5> Hi, author here.

As other commenters have noted, this post is seven years old. My position on feature branches has evolved (and softened somewhat as well) in the meantime.

I posted an update about 18 months ago:

[https://jamesmckay.net/2017/01/martin-fowler-and-feature- bra...](https://jamesmckay.net/2017/01/martin-fowler-and-feature-branches- revisited/)

</comment><comment><USER6> > Error establishing a database connection

</comment><comment><USER7> Interesting arguments people had when the world was young.

If I do multiple commits into main a day, will probably get a visit from CTO.

Will test tomorrow.

</comment><comment><USER8> "Error establishing a database connection"

Why does James McKay not understand website configuration?

</comment><comment><USER9> >The reason why people think feature branches are for long-running epics is because that is the way that old school centralised tools have taught them to think. They've made branching and merging hard through poor tooling, algorithm support and architecture, so people do everything in trunk except for epics, then they run into problems and the whole pattern becomes self-reinforcing.

Very well self-assuring that git predecessors were complete idiots. Not even worth to read it further, probably.

</comment><comment><USER10> can anyone provide some context ?

<comment><USER11> Agreed. It's 7 years on so... did it get missed in round 1?</comment></comment>


Google bots follow SQL-injected URLs from third party sites - <AUTHOR> http://blog.sucuri.net/2013/11/google-bots-doing-sql-injection-attacks.html <comment><USER3> So, this is basically using the Google bot as a proxy. I don't see what Google can do about it, or does Google have to do anything at all.

Just secure your website as if the attacker is not going to use the Google bot as a proxy, because well, nobody can guarantee that the attacker will use the Google bot.

Google bot is nothing more than a computer sending HTTP GET request to your server, so if your site is vulnerable to HTTP GET requests why you write like there is something special about Google bot?

<comment><USER4> Well it would be nice if google could check the url it was visiting and if there is any sqli in it to not send the request (though this could potentially slow their crawling...)

<comment><USER5> How is Google supposed to check for what is/isn't "sqli"? The proposal reminds me of Yahoo! Mail's old "medireview" problem, where it filtered emails containing the string "eval":

[http://en.wikipedia.org/wiki/Medireview#Blocked_emails](http://en.wikipedia.org/wiki/Medireview#Blocked_emails)

Even if you look for somewhat complete SQL strings, if I want to host [http://try-sql-in-your-browser.io/?sql=select+foo+from+bar](http://try-sql- in-your-browser.io/?sql=select+foo+from+bar), I'd want Google to index it.

<comment><USER6> For a hilarious variant trying to protect against "attacks" on humans, use your favorite search engine to search for "buttbuttination".

<comment><USER7> Awesome, I had seen a few things in the wild like this, but this ended up in some fun reading. Thanks!

</comment></comment></comment></comment></comment><comment><USER8> This is sort of sad, now I have to go dig through crawler code to see what we (Blekko) do when we crawl a site. We do avoid known 'traps' (which are often inadvertent) that result in loops but this is a bit more nefarious.

On a related note, if you would like to be the person looking through the crawler code and designing a defense for this, and are willing to work in the bay area. Send me an email :-)

<comment><USER9> I don't believe this is a problem a crawler should be solving. The site left open SQL injection vulnerabilities, and they're complaining that someone is attacking them. Whether the attack originates from a crawler or not is beside the point.

<comment><USER10> The article is about an attacker using Google's behaviour as a form of indirection. The attacker can't be traced directly by the vulnerable site if he carried out the attack simply by triggering Google's crawler.

<comment><USER9> I agree that it mentions indirection, but I don't agree that it is the purpose of the article at all. The article finishes with this line:

> We are contacting Google about it, but it is always something important to > keep in the back of your mind. __You can't just whitelist their IP, and > allow through without any type of inspection __.

I wouldn't be surprised if the authors knew of the sqli vector, and whitelists appropriate clients. The problem is the sqli, not WHO can hit it (or who was ultimately responsible).

Edit:

I just went and looked at the company behind this article. I was too quick to judge apparently. Their business is protecting developers from stupid mistakes like sqli at the firewall.

Therefore, the article really IS about indirection. Sorry.

</comment></comment></comment></comment><comment><USER11> I think the real problem here is that the author is assuming the Google Bot somehow gets special treatment. Why are you concerned that the bot is sending SQL injection attacks? The same thing could be done by a regular user. Are you defending against regular users? If so, then you're defending against Google bots too. Now if the problem is that your firewall is blocking Google bots, well then you're going to have to let them through if you want Google traffic. It's unfeasible for Google to fix this on their end. Your application should be secure from SQL injection without the need for a firewall anyway, so it shouldn't be a technical problem having to make an exception for Google bots.

<comment><USER12> The problem is not that the Google Bot gets special treatment, but that attackers get special treatment. It's common to blacklist or slow responses to the IP's of potential attackers. A slow response to a false positive is usually acceptable as long as you have a low rate of false positives, but it can seriously affect your Google ranking if you are slowing their bots...

</comment></comment><comment><USER13> This could also be Google probing for vulnerable software on your website.

They're doing it for various Typo3 versions (I know, because we got some false positives in the past - Google Webmaster tools warned us about it, we saw the requests in logs, our fault for replying with Status 200 for some invalid URLs where we just showed our main page), they might be doing it for other software where the only way to check for vulnerabilities is to try an actual (harmless) SQL inject.

</comment><comment><USER14> But why would the attacker want this, how can it benefit them? I don't understand how a third party could make Googlebot hitting a SQLi benefit themselves. I get the cleverness of hiding behind Googlebot, I just don't see how you can "steer" the attack, so to speak, to your own benefit.

<comment><USER15> There's a long history of being able to search google for sites with vulnerabilities or infections if you know what to look for. With a black hat on, alter a busy forum's code to generate a link spreading the infection via google to every domain that commenters mention; a tiny fraction of those will be infected, those will show up later in a search.

That's a bit weak, and might not pick out decent targets. However, visit the forum as a user, mention some _specific_ sites, and hey presto - <USER2> infects them for you, while you disappear in the crowd.

Seems a bit airport thriller though. More likely the leaked sqli and google's use of it were accidental.

</comment></comment><comment><USER16> Wondering how effective this is for getting a competitor website to block for example the google crawler. Maybe that's the motive.

</comment><comment> vezzy-fnord Reminds me of an anecdote I read on Stack Overflow where a web developer inserted an unprotected database killswitch parameter in his code which ended up being triggered by a Googlebot.

This is a pretty interesting attack vector, though. The old Google bomb being used for more nefarious purposes than spoofing page rankings.

</comment><comment><USER17> Spoofing IP headers (specifically the source address) is possible.

<comment><USER18> This would only work on connectionless protocols, such as UDP. UDP offers no message reliability and relies on the source address to respond. This is how DNS amplification attacks work, as the main protocol of DNS is UDP.

Whereas HTTP goes over TCP which is a connection-oriented protocol. TCP offers message integrity by going back and forth between client and server multiple times to verify the message was retrieved successfully. Without a valid source address the 3-Way TCP Handshake used to establish the connection cannot succeed.

<comment><USER19> thank you, I always wondered but never asked.

<comment><USER20> Coursera had a great Computer Network course.

I think you can still register and download the videos:

[https://class.coursera.org/comnetworks-002/](https://class.coursera.org/comnetworks-002/)

</comment></comment></comment></comment><comment><USER21> I think the cause here is google following the injected urls from third party sites.

<comment><USER22> That's exactly what the article says.</comment></comment>


Amazon Snowmobile - <AUTHOR> https://aws.amazon.com/snowmobile/?hp=tile&so-exp=below <comment><USER2> Amazon continues to amaze me in their ability to challenge the status quo.

100 PB. Simply. Awe. Some.</comment>


Ask HN: What's happened to fuzzy logic? - <AUTHOR> I've come across fuzzy logic mostly in pedagogical context these days. Of course there are still researchers and developers using fuzzy logic to develop algorithms, but has the mainstream future of AI been supplanted by  machine learning, natural language processing, computer vision, robotics, etc.? Or fuzzy logic has become a part of each or some of these subdisciplines of AI? <comment><USER2> It's used somewhat in AI still, especially the communities going under the name "computational intelligence" (CI). In many communities it's been supplanted by various statistical approaches, though. Fuzzy logic starts from logic, and adds in non-binary distinctions. An alternate approach is to start from statistics, and add in structure: things like Markov logic networks, Bayesian graphical models, probabilistic planning, hierarchical reinforcement learning, and a dozen other such approaches. Both sets of approaches have the same high-level goal of bringing together symbolic reasoning with numerical inference, in some form.

The second basket of approaches (statistics+structure) is now more popular overall than fuzzy logic I think, though it depends on what communities you're from; fuzzy logic is much more popular in engineering-flavored disciplines than in math-flavored disciplines.

<comment><AUTHOR> Great summary of the situation -- did not expect. Thanks!

</comment></comment><comment><USER3> One technical problem with fuzzy logic, that is not suffered by statistics, is that there's no universally-accepted way of combining fuzzy logic truth values.

The rules for manipulation of conditional probabilities, which statistics inherited from probability theory, allow building up complicated statistical models (i.e., complex enough to capture real-world applications) from pieces. This is what the comment by _delirium is saying.

There's no such calculus for the truth values in fuzzy logic. The core problem is, what the concept of "truth value" refers to. In conventional Statistics, probabilities can be grounded in relative frequencies, and in principle measured in real experiments. The same can't be said of a fuzzy truth value.

That much said, there are some people working on generalizations of probability theory to situations where relative frequencies don't make sense, and there's an overlap between the more sophisticated of the fuzzy logic theorists and this community. See, for example, <http://www.sipta.org/isipta11/>, or <http://en.wikipedia.org/wiki/Imprecise_probability>

<comment><AUTHOR> Thanks -- didn't realize this thread was still alive. So the showstopper is that there is no equivalent to Bayes theorem for fuzzy logic, you're saying. Great clarification.</comment></comment>


Public-Health Experts Are Not Hypocrites - <AUTHOR> https://www.theatlantic.com/ideas/archive/2020/06/public-health-experts-are-not-hypocrites/612853/ <comment><AUTHOR> Really only posted to help break this high school mythology the general public has with science. There's a long time of conflict before just mass acceptance and adoption. And it's not as tribalist as it seems.</comment>


Walking out of an interview - <AUTHOR> http://workplace.stackexchange.com/questions/3492/is-it-rude-to-leave-an-interview-early-if-you-have-already-made-your-decision <comment><USER3> My answer on this depends on whether we want to be an emotionally supportive group for people who make a badge of honor out of being socially and professionally inept, or whether we want to give advice which will actually move careers forward.

A company which is not a cultural good fit for you, and the employees thereof, can _still be very valuable allies._ I would not act to antagonize them absent substantial provocation. _Not being like you is not a substantial provocation._ Most people in the world will, after all, not be like you, and you'll end up not working for approximately all companies in the industry. That's OK.

You've already got the day blocked off in your calendar. Smile. Firm handshakes. Thank them for taking the time to interview you. Heck, they're giving you free live-fire practice for your next interview, _make the most out of it_. You should never say a word of criticism about the company to anyone but your primary point of contact and you should be darn circumspect with how you word it to him. (I like something along the general lines of "Thanks for your time and allowing me to get to know $FOO_CORP better. We're really in the same boat: I only want to work at employers where I'd do my best work, and you only want to hire people who'd do great things at $FOO_CORP. Having had the opportunity to hear you guys out a bit more, I don't think we're a great mutual fit. _I will keep my ears open for you in case any of my friends would be a good fit for your position._ ")

<comment><USER4> This is spot on. I can't even fathom why somebody would needlessly burn bridges like this. The fact that we live in boom times and enjoy near- unprecedented demand for our skills is no excuse for this type of myopic behavior.

What really surprised me was that the OP's candidate was a referral. It's one thing to risk burning your _own_ bridges, but it's completely inconsiderate to possibly tarnish the reputation of someone who spoke up on your behalf. Speaking for myself, unless this was a close personal friend, I would be very reluctant to ever subsequently recommend this individual again.

Without delving into anecdotes, I've witnessed a scenario quite similar to this one. A candidate who was referred (as a "rockstar") struggled with the technical interview, and subsequently walked out. It goes without saying how he, and to a lesser extent the individual who referred him, were viewed in the aftermath.

TLDR; Please don't do this. It's completely unnecessary and possibly inconsiderate.

<comment><USER5> Did the candidate really risk burning bridges? If he said "fuck you, fuck this, fuck everything, I'm out" then clearly that's just a shitty way to go about it. If he said something closer to "Thank you all for your time. You're doing fascinating work but I don't think that this would be a good fit. I really enjoyed meeting you all and maybe I'll get a chance to work with some of you on a future project." and they decided that was burning a bridge then that is a bridge worth burning.

As an interviewer, I'd have a higher opinion of someone willing to cut an interview short if they realise it's not really going to end well and as a candidate, as long as the company hasn't spent money to fly me out somewhere or something, it's an option I like having on the table for an all-day interview since there's not much point in tiring oneself out if it's not going anywhere.

<comment><USER4> >> _If he said something closer to "Thank you all for your time. You're doing fascinating work but I don't think that this would be a good fit. I really enjoyed meeting you all and maybe I'll get a chance to work with some of you on a future project." and they decided that was burning a bridge then that is a bridge worth burning._

That is certainly not the impression I got from reading the OP :

"At one point when he was asked to move to another conference room he decided he had enough and said that he was done with the interview and wanted to leave."

"When he went to leave the lead jumped into the elevator with him and asked him why he didn't want to continue"

We're forced to interpret a 2nd hand retelling of the events, but everything points to this individual leaving relatively abruptly. Why else would someone feel the need to run after him into the elevator?

<comment><USER5> We have way too little to go on to actually decide which way the candidate went. We have one side of the story second-hand filtered via our own interpretations. Thing of it is, given just what we know I could spend ages listing out credible ways it could have gone given what we have.

Assume that the candidate did give something closer to my latter statement. Perhaps the lead wanted a better explanation of what made the fit so poor. Perhaps the lead actually could not comprehend anyone not wanting to work there. Perhaps the lead didn't believe the explanation given. Any of these could feasibly lead to the same account we're given, as could simply leaving abruptly or literally saying "fuck you, fuck this, fuck everything".

<comment><USER4> Yes, we may not have all the facts. For all we know the entire story is a fabrication.

However, my point is simply that based on the _only available account we have_ , there's nothing to indicate this candidate was particularly diplomatic.

<comment><USER5> And my point is that there's nothing to indicate that this candidate was particularly undiplomatic so it's rather senseless to attack them for burning bridges. This is a situation where, given sensible people, bridges will only be burned with the particularly undiplomatic route.

<comment><USER4> Agree to disagree, I suppose.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> I once declined an offer over email and promptly got a conference call back from them where the CEO was incredibly hostile, the purpose of the call seemed like the CEO just wanted to publicly berate me and tell me that I was making a bad move.

Afterwards I realized that its entirely a subconscious alpha dominance thing. There's this unsaid very primal, tribal power trip that goes along with the interviewee vs employer relationship.

As the interviewer you want to be holding the power card - you sit in a position of power and have other people dance around and do what you say in order for you to be able to judge _them_ and make them prove their worth to you in order to join your tribe.

Its really one of the few times we get to break down our democratic social structure and revert back to this primitive social order in adulthood, so its a pretty important ritual for alpha-types.

When someone comes in and disrupts that natural boundary it becomes offensive as they've unconsciously told you "I don't respect you as a leader" in front of your staff and team. The interviewer then needs to re-affirm their ego and dominance over the tribal unit in a public display.

If you look at all these articles floating around about judging candidates and "top grading" and you look at it from this tribal alpha-dominance perspective it really breaks down some of what we assume is necessary in hiring. I think the whole system is based around some silly ancient ritual that we haven't been able to shake from our culture.

<comment><USER7> This is a very interesing note. It is undubitably a real phenomenon. A counterfactual case, however, might exist. Consider a similar non-hierarchical situation. For example, the relationship between a host and guest (at a private party). Where you were the guest of honor. As the guest of honour, you are not at the dis-advantage of power. In fact, just the opposite. But, the same question can be asked..."If you were the guest of honor at a party and the party sucks, is it OK to leave early?" If so, how would you handle it?

<comment><USER6> That is very interesting, I definitely think you're right about it in the context of the article's scenario. By abruptly leaving the party early the guest of honor is essentially telling the host "I don't respect you".

It may be more a simple social etiquette thing than a hierarchy thing, but the fact that the host has leadership representing their group here probably infuses it with some level of asserting dominance in response to public disrespect.

Basically walking out on an interview is a great way to disrespect the interviewer, and you probably shouldn't do it if you don't want a fight ;)

</comment></comment></comment><comment><USER8> I think a situation like this is better handled one on one--wait for a natural break, pull the interview lead aside and explain politely that you appreciate the time and consideration but think it is just not a good fit culturally. Then the lead can explain it to everyone else and excuse them from the rest of the interview process.

Announcing any kind of surprise or unwelcome news can be problematic in a group situation. When people have an emotional response, they want to express it, and in a group situation the mutual reinforcement can quickly scale up the emotion.

This is why it's generally not a good idea to quit by standing up in a staff meeting and announcing it to everyone at once (unless you're trying to make a scene :-)). It's much smoother to tell your boss first, so that they can help manage the emotion of the team.

<comment><USER9> From what I can tell of the story, he was never left alone with 1 person at any time. He was ushered from room to room, meeting groups of people the whole time.

Personally, I think the culture sounds great. But if he didn't, there's no point in wasting his whole day there. He was polite in telling them that he didn't think he'd fit and there was no need to waste anyone's time.

Had this been a 2-hour interview, instead of a whole day, I'd say stick it out and be friendly. But not a whole day.

<comment><USER8> There's usually a lead for an interviewing process like this, and I don't think it would be that hard to say something like "hey can I have a word for a minute" as you're transitioning between groups.

<comment><USER10> Even if there is, that doesn't mean he'll know who the lead is. I have been in interview where I have gone from person to person with no one in two consecutive sections. As far as I could tell there was no one person to discuss sensitive issues with.

<comment><USER8> Wow, interesting, thanks. What did you think of that process--did you end up hiring on there?

</comment></comment></comment></comment></comment><comment><USER11> I debated doing this once. I was still in college interviewing for an entry level position where the company found my resume on some job site and invited me for an interview.

I arrived at the place and was told to go into a large conference room. In the room were about 30 other people all staring at each other wondering what just happened. We were all given a coding test in Java (Java was no where on my resume and I had zero experience with it). After answering what I could with C we were broken up into teams and started a Jeopardy style game on Java and XML. I can't imagine they gained any insight into any candidate with this game since so many different people were answering questions.

Once the game was finished we were then kept in our teams and given engineering problems to work out as a group and then had to present the solutions to the "judges". Every team was pretty much told their answers sucked, I can only compare the feedback to something out of the TV show "Apprentice."

I left the interview completely dumbfounded as to what just happened. People had flown in from out of state to be there for the interview and were blind sided by this horrendous group interview that felt like it took place solely to stroke the ego of the guy leading the whole charade. I also remember the head guy preaching to us that Java was the future and if we didn't learn it we'd be left behind.

<comment><USER12> I had something like this happen to me, except it was a bait and switch -- they lured you in with some interesting job, but it turned out they were interviewing 75 people for 8 jobs.

At the end, they offered everyone (as in "ok, everyone, you're all a good fit for position EY535353-1") for some horrific job debugging JCL or something to everyone for like $18/hr (this was in 1999), and didn't hire anyone for the good gigs. By that time, the whole crowd was getting unruly, and we basically stormed out.

<comment><USER13> Years ago I went in for some job where they were advertising a salary of something like GBP35k-40k. I met with their tech guy, got passed up to the CEO and everything is going well.

CEO says something like "You'd be a great fit. Just take this coding test and go complete it in that meeting room over there. And BTW, we can only afford to pay you 25k." "I thought it said 35k." "Yes, but we can't afford that and no one will come for interviews if we say 25k."

I took the test and sat in the meeting room by myself for a few minutes, then went back to the CEO and said I wasn't interested. He kinda shrugged and said fair enough, and gave me a coffee cup with their logo on it for my troubles.

I think they ended up going public a few years later. It might have actually worked out OK for me in the end, ironically enough.

<comment><USER14> > BTW, we can only afford to pay you 25k." "I thought it said 35k." "Yes, but > we can't afford that and no one will come for interviews if we say 25k."

How scummy. That should be an immediate dealbreaker. They've been lying to you even before you knew about their job posting. So you gotta ask yourself if that kind of behaviour will get better, or worse, with time.

</comment></comment></comment></comment><comment><USER15> I remember being sent to an interview for a PHP developer, only for it to transpire that the company was actually after a Perl developer. The recruitment agent had sent me along anyway, having helpfully added a couple of lines to my CV.

The strange thing was that after I explained what had happened (after 15 or so minutes of initial interview fun) and said something like "Thanks for taking the time to see me, and sorry it couldn't be more productive," the interviewers were suddenly really keen on me; I was standing halfway through the door, answering questions for a good few minutes until I worked out how to leave, much to the interviewers' reluctance.

Had I more sense at the time (I was 18 or 19 then), I would've sat down the extra ten minutes and tried to work out if we could've done business together one way or another. So whilst there are definitely times to leave early, nowadays I wouldn't be too hasty in doing so.

<comment><USER16> Why limit yourself to PHP? Be upfront with what you don't know, and if they are still interested, see if they seem nice to work for.

Good developers have an easier time producing good things in a language they don't know than bad people in a language they do know.

<comment><USER17> I can't speak for the parent, but having been in that same boat, I'll answer for myself.

 _Why limit yourself to <language_x>?_

It isn't about limiting myself to the language as it is being able to hit the ground running with it. I was mistakenly given an interview where they were looking for a Ruby developer, and had been referred to them. Only problem was that I didn't know Ruby as intimately as I do other languages. The position was fairly high paying, and one assumes an expectation of proficiency that I wouldn't be able to deliver on.

Could I have learned the language? Sure, almost certainly -- but the question is really whether or not I can learn the language faster than they can realize how inefficient I'm being and (rightly) fire me? Even if I'm upfront about it (which I was), I'm still not willing to gamble unemployment on whether or not I'll get up to speed within their expectations when I could easily justify my salary somewhere in a language I'm more familiar with.

Edit: I should also add that since that time, I have spent more time with Ruby and figured out that I don't really like it. Not going to get into a language debate or anything, it's a fine language, but it didn't fit the way I naturally think so, had I taken that job and learned quickly and all that, I'd have found myself programming in a language that I didn't really love, which could have lead to less job satisfaction as well.

</comment></comment></comment><comment><USER18> I left an interview early too, with Google in fact. I told them I obviously did not fit in their culture at least for that very position (SRE) , as we had divergent views, and that I wanted to abort the interview process. No need for them or I to lose time if I was going to refuse anyway.

The guy (technical person) was shocked, as if this was impossible. He also insisted more than 5 times to continue with the process, which, I refused.

Later on, they contacted me, telling me that they marked me as "failed interview process" (ie: do not hire in the future).

That told only one thing, that indeed, I wasn't a fit for that culture - probably at any position then.

<comment><USER19> Google sees itself as the only tech company in the world, that people who wanna work there desperately want so and have nothing else to do in life.

That's the vision I have after looking at their hiring process.

<comment><USER20> Funny thing I even believed in it. After having failed the last interview I looked around and realized that there are many companies that do things that I consider more interesting than what Google does.

</comment></comment></comment><comment><USER21> Professionalism cuts both ways. Any company employee that reacts negatively in ways similar to what is described here (when the interviewee announced he was leaving) would display what I consider to be extremely unprofessional behaviour. The fact that this reaction seemed to have been shared by a number of employees is perhaps a symptom of groupthink. The best feedback ever I got when we were in the process of hiring was from one of my very laid back employee, who is often dismissed as "unimportant" and has a way to put people at ease, and who got some unique insight into what a prospective employee would be like.

I see this type of interview a typical "alpha male hehaviour competition" where existing employees are trying to assert in advance their worth to a potential future colleague (to put it nicely).

</comment><comment><USER22> Assuming the accounting is correct, I think the guy was OK to end the interview politely (without throwing a fit or making grand statements) and leave.

It was also not surprising they were shocked and upset, but that in itself doesn't mean he should have refrained from ending the interview, or that he was unprofessional.

I have thought of walking out myself, I think most have.

For example one interview the manager presented a long monologue about how stupid he felt people from a certain well known outsourcing country were. It wasn't even so much that he was racist, it was that that his stories showed he was closed minded, judgmental and reactionary. I doubt these personality factors were limited to his opinions about national origin. I continued the interview and declined the subsequent offer, citing another better offer. The other offer was for less money but was a project I wanted to work on more, the diatribe wasn't really relevant and only would have been if the offers were similar or his was for more interesting work. I chose not to give him feedback about his rants because I wanted him to keep doing it so other candidates would have the same warning. Him not saying what he really thinks certainly isn't going to change his actual personality.

In other cases I see the interview to the end out of curiosity and to have a good story to tell, but also because you never really know what is going to happen without seeing it all the way through. I may find out more about their business, I may make some contacts talking to people there. Or maybe it is a wash out, but having flown across the country I am going to make it to the end of the day's interviews.

</comment><comment><USER23> I walked out of an interview, furious, probably two decades ago at "major cellphone company". HR advertised for an RF engineer position, which I had the education and experience for. I can totally sympathize with being rude because I'm normally very calm and I was Barely, just barely able to keep under control. So I burned 10% of my annual vacation days to come here, and drove half way across the state for hours to be bait and switched into a 1st level high school dropout call center support job at about a fifth my current pay? I'm thinking are you F-ing kidding me? I just barely kept it civil and made sure they understood perfectly why I was walking out of the interview. I saw in the bathroom mirror on the way out that I was blazing red in the face so I must have been quite the sight. The HR woman who screwed up the job req and ad and phone interview was more embarrassed than I was, and I actually got along excellently with the technician dept team lead, because we were basically at the same level at different companies (I wasn't mad at the individuals, solely at the situation).

What HR meant by RF engineer was by RF they wanted a call center guy to handle dropped call issues and by engineer they wanted to never pay overtime. Um, sorry HR lady, thats not really what I went to school for, nor is it anything like what I was doing at that time for about five times the annual salary, admittedly with a very similar job title.

<comment><USER24> Technical jobs present a unique opportunity for HR to screw up. Once, HR sent us a candidate for a data warehousing job because the guy used to work at a warehouse.

</comment></comment><comment><USER25> What I find interesting here is the contrast in expected behavior for a company and for an interviewee. Most companies won't tell you why they're rejecting you if you interview with them. Most of them won't even send you a rejection email! Yet most people commenting on SE point out that you should explain why you're cutting the interview short and leaving.

<comment><USER26> If you want to compare, then imagine that you're in the middle of the interview and the interviewer suddenly tells you "get lost, here's the elevator".

Saying "thanks but no, thanks" after the interview without telling the reason if perfectly fine for both a company and an interviewee.

<comment><USER27> _If you want to compare, then imagine that you're in the middle of the interview and the interviewer suddenly tells you "get lost, here's the elevator"._

This happens. The reverse isn't unreasonable either.

<comment><USER28> A _lot_ of companies schedule interviews with a natural break in the process partway through -- basically you do phone screens, with people not progressing beyond those, and the in-person interview can be split to morning, lunch, after-lunch; senior people (or larger groups, or people with more constrained schedules, ...) meet with candidates after lunch, and if someone is a no-hire based on the morning, the candidate doesn't know about the afternoon phase and is told he can go home before or after lunch.

Personally I think it's important to sell no-hire candidates on the company, since even no-hires might be hires in the future (for different roles, or if they add skills), or might be referrers of other, better candidates, or might end up working for a vendor or customer, or just might make negative social media postings about you which dissuade other candidates. So doing morning interviews, lunch (which turns into "selling the company's mission to the candidate", ideally by a senior person who isn't overly busy, not a random HR drone), etc. for the no-hires.

<comment><USER27> That's basically how my last company did it, and it worked well. I'd say that your description is how it should be done.

What I was trying to say, probably in too few words, is that many places don't do it that way and I have little sympathy for them. =)

</comment></comment></comment></comment></comment><comment><USER29> There seems to be a double standard in the comments here.

Companies regularly cut short interviews (speaking from personal experience). They've all been polite about it and explain why, usually saying "it's not the right fit". There are some companies that ask between multiple interviews if the candidate is still interested in talking to the next person.

A candidate should be allowed the same ability to "walk out". From the OPs story I got that he cut his interview not during a round but before the next one was to begin (the reason for moving him into another room). Thats the perfect time to do it. The reason the candidate gave is sufficient, he doesn't wish to waste anyone's time. The response of the company in this case is actually arrogant and unprofessional.

<comment><USER30> That is not a double standard, most people here are just making pragmatic judgements rather than moral ones. Should the power relationship between employee and employer or between VC and portfolio company be perfectly symmetrical? Maybe. Is it? Usually not, though of course that depends on current market conditions.

</comment></comment><comment><USER31> It's always okay to politey and professionaly not waste people's time. Don't come across as judgemental, angry, or anything similar or you risk burning bridges you may not even realize you have.

From the brief description, it sounds like the guy was showing a bit too much emotion in leaving. Also - just because an interview process seems harsh doesn't mean the company is harsh - the interview is one thing, the job is often quite another - results tend to speak for themselves regardless of culture (and as long as you aren't a snob or jerk to your co-workers) If a seasoned, experienced professional doesn't get that, maybe they aren't a good fit...

</comment><comment><USER32> The problem here isn't the interviewee; it's the interviewer.

This is exactly why we do phone screenings and brief initial interviews. If something like location, development technique, interior design or dress code isn't going to work out for someone, you should be able to flush some of that out in a 15-minute phone screen, and the rest in a 30-60 minute initial interview.

By the time you're bringing someone in for a full day, the interviewer should be at well over 75% sure the person is a do-hire. Don't waste your team's time or effort on someone you're not going to go with (unless you're stress-testing your interview process...).

As far as walking out: there's _so_ much data here. For the company, they've either got a dysfunctional interview process or some seriously difficult fellow developers. Both those problems need to be addressed.

For the interviewee, there's the information on how the team responds. If there's a problem, and they want to solve it, they need to be more pro-active about it. "Can we break now and continue later?" Also, "Can we get a post- mortem from you?" At the very least, it's a good time to break for coffee or beers around the corner.

</comment><comment><USER33> > He could feel sudden hostility from everybody in the room at the time.

Sounds like he made a good call here. With a professional interviewer, the worst you might get is "perhaps you could help us by explaining why you feel that way?" Who would seriously want to bully someone into staying to be interviewed for a job they didn't feel they could do? Personally I would thank him for his honesty.

<comment><USER34> Is it usual to have a team of people interview someone, rather than a lot of one-on-one or two-on-one sessions? This reduces the number of developer-hours used in interviewing. I don't think that adding a 3rd or more interviewer will add anything, and it can be intimidating for candidates, adding noise to your search for a suitable one.

<comment><USER35> In a couple of decades of occasional job interviews, I've done mostly 1:1 and a handful of 2:1.

I've only done one 4:1, which was actually lunch in between all-day 1:1 interviews, and which didn't feature any technical questions just random social conversation. It was definitely still part of the interview, though.

</comment></comment></comment><comment><USER36> You'd only need to do this in the scenario of an all day (or longer) interview, which in itself is something you should not enter into without some pretty good feelings developed from the preliminary/phone interview.

In this case it sounds like a fairly conventional "business" type guy didn't like the idea of working in a open environment with a bunch of kids wearing jeans. But that kind of basic "what's your work environment like" information should have been known or ascertained by him before accepting an invite for an all-day on-site interview.

In rare cases you may realize during the final screening that there's some fundamental incompatibilty, but if you do your due diligence in the preliminaries this really shouldn't happen.

Having to walk out of a final interview means that both sides executed the initial screening poorly.

Edit: typos

<comment><USER37> I am a programmer with 10+ years exp who wares a tie every day to work. Reading though that though I see a lot of red flags that have nothing to do with the dress code. Honestly, using a custom ORM solution is a sign of incompetence. Frameworks seem easy and fun to people that don't understand them, but after a few years I think about such things a series of trade-offs not an interesting problem.

A few moths ago a coworker with ~5 years exp wanted to write their own simple graphing library to get around a few problems, everyone in the office said have fun do it on your own time, but don't add it to the code base. He had fun and it was a great learning experience, but the idea of working where most people where at that point has little appeal.

PS: 15 years ago there where a lot of great reasons to write your own framework, now days not so much.

</comment></comment><comment><USER38> People seem to think its fine to walk out of an interview early ... but how do they feel if the interviewer ends the interview early, or your "full day" of interviews is cut to just 1 or 2 hours because they just didn't think it was a good fit?

I'm guessing some of you would be pissed because you took the whole day off for the interview only to be kicked out early.

On the other hand, if I was on an interview loop, and the person left before it was my turn, I'd be grateful ... now I have extra time to do meaningful work.

<comment><USER39> > People seem to think its fine to walk out of an interview early ... but how > do they feel if the interviewer ends the interview early, or your "full day" > of interviews is cut to just 1 or 2 hours because they just didn't think it > was a good fit?

Uh this happens a lot. In fact, when I was looking for my first entry level job in a new city this was semi-common. Many interviewers or hiring managers will get hostile at you for the smallest things, like failing to get the catch in a puzzle question or because they dislike something about your resume. As soon as that one person would leave the room, it was usually followed by someone from HR coming back and politely telling me the interview was over. As a worker you owe a potential employer nothing and have the right to leave at any time you wish, regardless of how intimidating some people will be when you say you want out.

</comment></comment><comment><USER40> It's 100% fine to end the interview early as the OP did. The interviewers/hr will end the interview early the moment they're sure it won't work out.

The fact that the interviewers acted rudely is a great sign that it's an awful place to work. Would be nice if the company were named so others can avoid interviewing there.

</comment><comment><USER41> Companies with all-day interview affairs have no qualms about cutting the process short at lunch time. Why should an interviewee not be able to do the same? It must be handled delicately and gracefully, but that hopefully goes without saying.

</comment><comment><USER42> An interview shouldn't be a position of superiors grilling an inferior. If you find yourself in that kind of interview you're unlikely to be finding a great working environment.

From that I'd suggest an interview should be a meeting of equals - they want the right person, you want the right company, both sides have an interest in figuring this out. Companies have no hesitation cutting short a day long interview process if by mid-morning the feedback to HR is that this is going to be a no-hire. Nor should candidates feel bad about cutting short an interview if it's clear early it'll be a no-accept to any prospective offer.

Honesty helps all parties. Analogy by anecdote:

I have always felt that an interview is a fair dialogue. Back in 1997 (yes I am THAT old) I was interviewed for a tech support position near London, for a massive multinational which had a completely failing tech service desk catering to tens of thousands of desktops. At the end of the interview the interviewer - who'd be my prospective boss - asked the question "does that sound like something that appeals to you" after describing the job.

My answer was honest: "no not really, but I wish you all the best in the search."

"Why not?"

"Well, I might have interest in leading a team like that because it sounds like there's a real problem to be solved in servicing your internal customers, but it doesn't sound like it's a process I'd enjoy working in, as it is".

This being London in the late 90s where there was a massive IT shortage (a bit like Silicon Valley and engineers today) I got a call back from my agent (fancy name for recruiter) who asked what I'd done. Apparently they'd called him back and offered me the job of running the Service Desk and fixing the problems that made me not interested in working on it.

I ended up with a much higher paying job offer, my first management experience (eventually building the team to over 40 people from the 6 I started with) and they ended up with someone who finally solved their problems, turning first line fix around from 17% to 70% in about six months.

Interviews aren't there for you to say yessir nosir. They're a back and forth between equals trying to find the best for both parties. This guy is absolutely right to call it a day early, if he feels it's not the right fit.

</comment><comment><USER43> A a good friend of mine interviewed with one of the current powerhouses of technology when they weren't quite so big.

After successfully navigating a few rounds of technical interviewing they gave him one of those famous brain teaser type questions. He responded by asking the interviewer to explain how the question would be relevant to his work with the company.

The interviewer immediately explained that he clearly "wasn't a good fit" and ended the interview.

I tend to feel they were both "right".

</comment><comment><USER44> Everybody's talking about burning bridges but it's a bad analogy. Bridges like these won't always catch fire even if torched and then again some burst into flames even if you didn't even touch your matches. The guy in the question seems to have just walked on the bridge.

Sounds like the guy just spoke directly. Some people can't take that; I don't know how much more neutrally you can give the message "I'm done with the interview" than saying pretty much just that. If you want to sugarcoat it then doing so still won't change the message: it just makes it a slightly more difficult for others to express how badly they take it.

I don't know the exact words used in the situation but he seemed polite yet firm. I would expect such language from anyone who's used to not waste people's time, including his own. While he doesn't want to be rude, he also can't control what can be considered rude by others.

There's no question whether such behaviour is allowed: of course the guy can just go and decide to abort the day. Nobody lost anything there: no money, no time. If he has seen life at all, he must have already learned that no matter what you do you will piss off somebody anyway so it's best to not anticipate too much what others will think of you.

<comment><USER45> The take away here is that you should always lie or people will get pissed. The truth is "fuck you guys" but the best answer is, "excuse me" followed by "something came up I have to leave" followed by later saying "thanks for theopportunity, but I'm no longer available"

^ now that is smooth. No burnt bridges, still let's you eject.

</comment></comment><comment><USER46> I have walked out on meetings, presentations, interviews and etc. I'm even audacious enough to tell the referral up front that if its a waste of time I'm walking out so be sure that its not.

Half the time, the reaction is that I've lost 'face'. The other half of the time, I'm praised for my efficiency or speaking up.

You broadcast what you what want. If you want to work with no-nonsense cuts through the bull and tackles real problems directly people, than keep doing what your doing.

</comment><comment><USER47> It's not the cultural norm, so if you ditch an interview, you had best go out of your way to be _extremely_ polite about it. You might be better off just slogging it out to avoid burning bridges.

</comment><comment><USER48> Tech companies should learn to respect people. It's not OK to take that kind of interviewing behavior as a rite of passage.

</comment><comment><USER49> If I spend more than 50% of the time in an interview solving puzzles I'm not working for you. I may suck as a programmer, but if that's what you do in an interview, you suck at interviewing people.

<comment><USER50> If I don't spend enough time in an interview doing puzzles, I'm not working for you.

<comment><USER51> Puzzles in interviews are worthless unless the potential job involves doing those same kind of puzzles. If you want to see how someone's mind works, you could, say, talk through solving a real-world problem as if you were pair- programming. But don't use puzzles are brain-teasers. They don't tell you anything practical.

<comment><USER50> If the puzzles are "why are manhole covers round?" I agree.

If the puzzles are "given a list of N integers, positive and negative, find the consecutive subset with the most negative sum" then I want to see how they come up with an answer.

</comment></comment></comment></comment><comment><USER52> During a break go to the font desk and tell the receptionist, "I'm here today for an interview today, can I please ask to see someone from HR". Wait for the HR rep. "Hey, I spoke with the first couple interviewers and it seems like it won't be a good fit. I would hate to take the next interviewer's time". They will understand and everyone will be happy at the end.

</comment><comment><USER53> I've been on the other side of this. An interviewee had a killer competing offer that I couldn't match. He was so apologetic, as if he was worried he'd insulted me. I had to assure him that I took no offense and wished him well. Don't know why anyone would take something like this personally.

<comment><USER54> I've been that interviewee before and I was much the same. For me I realized it has to do with viewing the time spent in the interview as some kind of unspoken contract. You both felt good about the interview but you aren't accepting. Feels like you're letting them down.

</comment></comment><comment><USER55> This is a duplicate of <https://news.ycombinator.com/item?id=4448409>

</comment><comment><USER56> I think I'd have done the same, he sounds like he did it pretty politely rather than just getting up and doing a runner. An all day interview where you've decided half way in it just won't work is not just a waste of your time, but a waste of a companies.

However, the way the room reacted doesn't surprise me. Companies like to create loyalty which can occasionally turn a bit wolf-pack. Still, a shake of the hand and a 'thanks for coming, sorry it didn't work' is _always_ classy and _always_ a good idea.

</comment><comment><USER57> Other discussion: <http://news.ycombinator.com/item?id=4448409>

</comment><comment><USER58> 1) When a natural break occurs, ask to speak to one of the members of the interview team privately.

2) Explain your concerns and be prepared to listen.

3) If you still want to leave, thank them, and leave.

<comment><USER59> Good answer. One thing overlooked in this discussion is that, if things went this far bad (scene in conference room and embarrassing elevator conversation) then something went wrong. This implies there's room for improvement in the way the interviewee handled the situation.

</comment></comment><comment><USER26> The fact that you leave early is not rude, but the way you do it might be. He should find the lead developer (or whoever was in the lead of interviewing him) and tell him that he feels he won't fit into the culture, thank him for the interview and then leave.

Leaving without a word is in fact rude ("I'm done, show me the elevator" doesn't count, especially if lead developer had to jump the elevator to ask what's wrong and why he's leaving).

</comment><comment><USER60> Interviews are complex, but I view part of the process as negotiation. One of the principles of being an effective negotiator is knowing what you desire to be the future relationship between the parties. Typically in the technology space, I don't like burning any bridges.

Thus, I start the interview process out by saying that I value and appreciate directness and honesty in all of my dealings. In keeping with that, if at any time I feel I have enough information to know that this will not be a good fit, that I will be honest about that and we can part on good terms and not waste each other's time. I also ask in return that they be up-front and honest with me (don't bring me in for interview after interview just as a charade when they know they're giving the job to Fred anyway).

I've used this tactic a handful of times and it has never failed to get a positive response. On a negotiation level, it may also give me a slight edge because I broached the topic first and raised the possibility of not seeing the process through to the end, something many interviewers forget is a possibility.

</comment><comment><USER61> I see a lot of comments about how you shouldn't burn bridges. I agree, I still think this was right thing to do. I would excuse myself politely and walk out as well.

Maybe person should ask to talk to lead dev or whoever, explain him that he doesn't believe he would fit, thank him for opportunity and leave. In other words say, it's not you, it's me ;) and still leave and enjoy rest of the day.

I generally don't believe in daylong interviews, I don't see the point in multiple rounds, everyone on the team talking to you endlessly. It is a waste of everyone's time and energy, to me personally it shows how people are uncertain in their decisions and need support.

One more thing, this is opportunity for company to leave a good impression on you as well as you to them, them being disorganized (often the case) doesn't really help much.

</comment><comment><USER62> There are companies who do the same: schedule a whole-day interview, and then escort you from the building part-way through, with no explanation.

Is it rude? Yes.

</comment><comment><USER63> I'm sympathetic to the guy who walked out of the inteview, though I'm not sure it was a good idea.

A lot of this probably has to do with your experience. I once had an interview for a position that was right up my alley. I have an MS in Industrial Engineering and I've worked at large manufacturing companies as a developer, as well as smaller startups that create optimization software for manufacturing, shipping, and production systems.

I went to an interview for a company almost precisely in this business area. They asked me to code a singleton, traverse a binary tree, then do it without recursion, add a leaf to a binary tree, prove that the dual of the primal is the primal of the dual, prove various long term outcomes from markov chains, swap two integers without creating a third integer, write various outer joins, convert a sql table to a binary set of indicators (is this a common thing?), and print all possible permutation of string using recursion.

At no point did anyone ask about, or even show the vaguest interest, in my background or experience. It wasn't super well coordinated, they pretty much just kept moving me from one developer to the other - so of course I was much more exhausted and drained than perhaps my interviewer of the hour realized.

My interviewers were younger, and generally looked fresh out of their CS degrees, so I'd guess that they were quite a bit sharper where it came to markov chains, hessian matrices, and b-trees. I didn't look like I was clueless, but I came off as rusty, and I did stumble with things that I would have done much more easily with an hour hitting my old text books.

It was eye-opening, and frustrating. I was polite and stuck with it, and I kept trying, because I actually wanted the job, and I thought that they could use someone like me, because while they were very talented, my few questions to them suggested that there were areas where I could bring some experience that they didn't have in house.

I didn't get an offer, but I am glad I stuck through it. The one thing I wish I'd done is _politely_ explain to the hiring manager what I just wrote here - that I think their hiring process might be filtering out an area of talent that could be valuable to the company.

Actually, that's probably the advice I'd give the dude who terminated the interview. Rather than ending it abruptly, ask the hiring manager if he'd be willing to confer for 15 minutes or so. Explain why you think it's going badly, and what your concerns are. If you disagree, that's fine - then you can end it on better terms without appearing to leave in a huff.

And while this is off topic, I would like to point out one more thing - <USER2> is the sort of experience that often comes to my mind when I hear about companies complaining about a lack of available talent, and it's one of the reasons I'm skeptical (though this interview was years ago, when hiring wasn't on fire the way it is now).

<comment><USER64> From my experience the hiring process hasn't changed much, at least not in the US. I recently changed jobs so went through several interviews and most were as you described - a series of technical questions with zero interest in my background or personality.

I could understand this approach for more junior guys straight out of college, but when hiring senior developers I'd assume the company would want to know a bit more about the candidates soft skills, past challenges and so on.

It actually put me off continuing the process with two of the companies (though I didn't walk out of the interview!) because it made me feel like all they wanted was a 'coding robot' and couldn't care less about the person behind the computer monitor.

</comment></comment><comment><USER19> A day long interview is a good signal the company is full of bull already.

What's wrong with meeting the guy, talking to him and then inviting to work one day at the company? Just give him some tasks, see how he manages it. If it doesn't work out, you got 8 man-hours for free.

They wanna judge people based on how they dress, what they do on their free time, etc. Not everyone is on their 20's, or wanna be a geek all day. Some software companies act like model agencies thinking they are the coolest the place in the world. It's embarrassing.

<comment><USER65> "If it doesn't work out, you had 8 man-hours for free."

Setting aside the legal, ethical, and tax implications of such a proposal, why should a talented developer be expected to donate a day of unpaid labor?

<comment><USER19> They were going to waste his whole day with corporate ego trip already. Why not make some productive use of his time then? At least if it doesn't work out, the candidate got some experience, learned how they work on the company, etc.

</comment></comment></comment><comment><USER66> Could you point what was his expectation culture wise and the company's situation? What exactly he didn't like except the wrong questions?

I wish I left some interviews early :)

In the end it's important to leave on a good impression for future connections but probably those people (in your friends company) were arrogant immature kids in the first place and they don't care about good future connections anyways. In this case don't waste your time. Same for the interviewers - please let the people know early on and save their time instead of being "polite" and dragging them into meetings multiple people (usually with the same dumb questions) or even stretching interview process into multiple days!

</comment><comment><USER67> I think it's a rather silly question.

When you receive an invitation to dinner, is it polite to save your host money by leaving before dessert? No. By default it will be rude and it would be up to you to find a nice way to do so.

Likewise I feel if an interview is scheduled for all day and you accept the invitation, then it's up to you to apologise if you want to leave early. So long as you explain that you don't want to waste their time, then no one should be narkey about it. But if you make it sound like you don't want to waste _your_ time, then I think they have a right to be a little miffed at you.

</comment><comment><USER68> Think about it from both sides of the coin. An interviewer will never say out loud "You just failed that question, we're no longer interested in interviewing", even though failing one question could definitely break you.

I think interviewers purposefully don't tell you how you've done in your interviews because it avoids any bad feelings/burnt bridges, and having to explain why they've done poorly. IMO this goes both ways, if you walk out of an interview, you better be okay with burning that bridge and explaining to a heated person on the spot why you're walking out.

<comment><USER51> An interviewer may not _say_ you've failed, but it's common practice to cut an interview short when an interviewer believes the candidate is not up to snuff. I've been at more than one company where any interviewer is allowed to "cut him loose" when a candidate is obviously unqualified.

Why would it be different the other way around? The key is, of course, being polite and graceful about it. But I don't buy the argument that this is burning a bridge. There are plenty of fish in the sea, and it's unlikely that cutting an interview short is actually going to cause you problems in the future.

</comment></comment><comment><USER69> I suggest that one's time isn't so valuable that you can't spend half an hour of unnecessary discussion. (In the case of the OP, I see that we're talking about more time than that.)

You never know who you will meet again in your future, or who your interviewer knows that you will meet in your future. It's a small world.

You want to be well-remembered. Walking out goes against that goal. Anything short of direct hostility, I suggest sucking it up and going through it to the end.

</comment><comment><USER70> It sounds like he may have made his exit in front of the other candidates. I can see the company being frustrated by that as it would naturally be likely to make the other candidates view their potential new employer less favorably.

If he was certain that leaving early was the right thing to do, it would have been better to choose a moment when he could tell one of the interviewers quietly, and exit without causing a noticeable scene.

</comment><comment><USER71> > "He was criticized as being wrong for not following very dogmatic principles > to the letter of the law."

What does this even mean?? He didn't respond correctly with their secret handshake? He didn't drink his cup of coffee with exactly 2 creams?

Is this a social thing, or a programmer thing? Did he use an unconventional coding style?

This line really sticks in my craw, confuses and somehow bothers me... I would love an extrapolation.

</comment><comment><USER72> This question is totally loaded. Whether they like you or you like them (which is what the first half of the description discusses) is irrelevant.

The question could be evaluated more objectively if it were just left to the headline: "Is it rude to leave an interview early if you have already made your decision?". The answer is no, of course not, as long as you're don't do it rudely.

</comment><comment><USER73> It's very rude if you just leave without fully explaining to people why you want to walk out. Even if you guys are indeed unfit to each other, the interviewers will still feel bad wondering what they did wrong. We are all human, we all want to improve ourselves, so make sure you both have an understanding instead of not giving them any chance like that.

</comment><comment><USER74> There are cases, when I can imagine walking out: when the candidate is already decided upon, but there is a need for legal-theatre, and you wind up being a decoy candidate in a mock candidate selection process. It happens quite often actually.

The moment you understand your situation, it is fair game to treat them in equal manner.

</comment><comment><USER75> I think I would have raised all of my concerns during the interview, instead of on my way out. Nothing wrong with not fitting in, but maybe the interview drill was just that, a drill.

The fact that someone followed him to ask questions tells me company seemed interested in him despite his opinion of how the interview was going.

</comment><comment><USER76> This might be overly simple, but it seems like the root of the problem on both sides is just the scheduling of a day-long interview at a place that's so obviously a bad fit for the candidate.

It would be better for all involved to have a more casual meet-and-greet, tour of the office, initial conversation beforehand.

</comment><comment><USER77> If one side can end interview half way, the other side can too. Don't see any problem of that.

</comment><comment><USER78> This is the kind of thing that gives programmers a bad name of being anti- social buffoons. In a programmer's mind they're simply being logical or efficient. Just because it's logical doesn't make it sensible.

This could be handled much better by somebody with even a shred of social skills. If he didn't think it was a good fit he could have requested to talk to the lead or hiring manager and expressed his concerns. They may mutually agree to end the interview. Perhaps if the company really wanted this guy they would start figuring out ways to possibly make it work. Or they may have ended with a handshake and parted ways on good terms. Just declaring "I'm done" like this brainiac and asking for the door shows that, though he may be a smart programmer, he has zero social skills.

</comment><comment><USER79> Time is valuable. Why waste everyone's time if you know it's not going to work? I think the key is to do it respectfully and explain why. It's actually helpful for the company to hear the reasons.

</comment><comment><USER80> I'm guessing Facebook

<comment><USER28> Facebook has plenty of people >30, which was one of his criticisms of the job. It's probably mainly late-20s early-30s at this point, unless you're in a non- technical group like user operations.

</comment></comment><comment> brown9-2 Gracefully leaving earlier saves time for the interviewee and the interviewers.

What exactly is the upside of staying longer in this case?

</comment><comment><USER81> For some reason, I imagine Walter White leaving this so called interview. No clue why. lol

</comment><comment><USER82> Just look at your phone. Tell them you have personal emergency and you'll have to reschedule the rest of interview. Say goodbye, leave, never call. If they call tell them you accepted another position. That's what interviewers do and that's what they consider polite.

</comment><comment><USER83> Walking out isn't rude. It's a reality check for the HR and management that something isn't kosher.

I've walked out of interviews after finding the usual bait-n-switch techniques regarding position description, expectations, travel requirements, compensation, work conditions, .. just to name a few.

Do I expect HR/management to get a clue - not really, it's not my job to further their problem solving ability.</comment>


Help fund an open source Facebook alternative: Appleseed - <AUTHOR> http://indiegogo.com/Open-Source-Social-Networking <comment><USER2> I have to ask since your site says it (<http://opensource.appleseedproject.org/>): how is the software maintaining the privacy and security of my data?

The reason I ask is that I don't see how that's possible. Here's an example. Let's say that I'm on MySeed and you're on Applebook. We friend each other and, lovely, now my posts get aggregated to your feed and your posts get aggregated to my feed. Life is good. Then Applebook turns evil and decides that it's going to make all posts open (they have the source code and the data). Well, now I no longer have privacy. Heck, let's say I post something and it gets aggregated to your feed. Then I delete it. Does Applebook then delete it? There's no real way to force a deletion. And I realize that anyone who saw it could have just done a copy/paste and saved the post, but it's different when it's happening automatically.

The only way I could see this working is through public key encryption. When we friend each other, I get your public key and you get mine. You can then make your postings available encrypted with my public key and when I get them I can decrypt them with my private key. BUT I must not store my private key with MySeed since then MySeed could decrypt your posts and you no longer have privacy. Right now, browsers don't have support for encryption like this where part of a web page will be encrypted not by the server, but in the data storage.

But even that has problems. It means that if you're friends with 500 people, 500 copies of any status message you post have to be encrypted and stored separately for each of those 500 people. Considering the scaling issues that Facebook has to contend with, I think adding a step where everything people post gets encrypted and stored N times (N being the number of friends you have) would be troublesome.

Heck, what about pictures? It's one thing to encrypt and store a short 140byte status 500 times. It's another to do that for an 80k photo.

tl;dr: If we're friends and you're on another service, what stops your service from aggregating my postings and then making them public to the world against my wishes?

<comment><AUTHOR> First off, your feed won't provide a full copy of your data, just a summary and a link. Other protocols may not work that way, though, but that's how Appleseed's protocol works. If access is rescinded, that user loses access to view that data. If I post a journal update or a photo, and it shows up in your feed, and then I restrict access to it, if your feed doesn't properly delete the entry, then you can still see the summary or the thumbnail, but clicking on it results in an access denied error.

Well, let's focus on your premise: This is all based on a node turning evil. That's a very big problem, and one not easily solved.

There is a basic issue here, in that users, when they trust other users, they also, on some level, trust the that user's community (node). I'm open to suggestions on how to mitigate that.

With social networking, there is always a level of trust that has to be human- based, not tech-based. But tools can be used to help humans determine trust.

Appleseed has node control, which means that administrators can "block" whole nodes if they're behaving badly. This usually means spam, but it can also mean if a node is acting in bad faith (ie, it's revealed that AppleBook is selling non-local user data), or if they're abusing the protocol. That can act as a certain type of social "shunning" on a node-to-node basis.

Admins can also "trust" nodes, which means you inherit their block list. This means, theoretically, if a node goes bad, and some nodes realize this, it'll propagate through the Appleseed network until that node is isolated.

I think there are other approaches, and some we haven't thought up yet, but one thing I'm most interested in is social pressure, and how it can easily be applied to bad nodes.

I think encryption is interesting, but I think we'll actually have to move into the browser space in order to have a reasonable UX.

<comment><USER2> Wonderful. The Diaspora group had been promising end-to-end encryption without seeming to know the problem.

The remaining question I have is: while the feed provides a link/summary, what's preventing a node from following that link and then caching/storing that data?

You've come up with a nice way of propagating block lists and kudos for addressing the problem. However, with Facebook, I only have to worry about Facebook behaving badly. I don't have to worry about multiple companies and different bad behavior.

Plus, sometimes bad behavior can become public much later. Let's say that I operate Applebook. I'm running a nice Appleseed server that has some users. I decide to start storing the data from other nodes. Maybe I'm even doing it for practical reasons like performance or as a service to my users. Then 5 years down the line, my fortunes take a turn for the worse. I decide to go evil! Sure, maybe the second I turn evil it gets propagated out fast and I can't get access to any future data. However, I still have all that past data!

And this is a concern with Facebook as well. They could turn evil some day and betray us all. However, it's one company to worry about rather than dozens or more.

\--

Also, as an aside, sometimes the summaries might contain the information people want deleted. If you have a 140 character status update Twitter-style, there isn't much of a summary to be made.

Right now, we're used to being allowed to remove things from social networks. Unlike email, it's communication that we can take back. Wall posts, status updates, photos, etc. can be deleted. If I email you a photo, it's always there for you. In some ways, a distributed social network is more like email. Once you've sent it out to your friends, it can't really be taken back. That's very different from Facebook. With Facebook, users expect to be able to remove content at any time and it's inaccessible to other users (unless they decided to copy/paste or save it in another way).

The question is: how many people would prefer this more email-like system? The advantage is that one wouldn't be beholden to a central service like Facebook or Twitter. Users have been skittish about privacy anytime Facebook changes something. How much of that is posturing and how much of it is users who would discontinue using it if they thought they couldn't remove things from the view of others?

<comment><AUTHOR> _They could turn evil some day and betray us all._

If an Appleseed node turns evil, they'll probably take the data of, maybe, 100,000 or a million users with them. When Facebook turns evil (some would say saying "when" isn't necessary), 500 million people's data goes down.

One of the things that's kept Facebook free of social pressure in terms of acting evil, is that the walled garden approach means that people can't leave without losing their social network. Appleseed (and distributed social networking) at least provides a certain competition, because if a node acts up, users can leave that node, go to another node, and reconnect with their friends. It won't be totally painless (at first anyways), but that's pressure that Facebook simply does not feel at this point, and that has a very negative effect on it's behavior.

 _The question is: how many people would prefer this more email-like system?_

I'll be the first to admit that a centralized system holds advantages over a decentralized one (and vice versa). A lot of these issues, we may not even know the full extent of until we see heavy use. This is pretty new territory, and I'm open to any suggestions.

It's the big reason why I rewrote Appleseed to be extremely flexible, to use pervasive hooks and an MVC model, and to be protocol agnostic. Also, why Appleseed has one-click server upgrades and other ease-of-administration features.

There's some really solid work being done on protocol development, but I think we all need to be honest that the first steps out of the gate are gonna be rocky. Hopefully Appleseed can adapt quickly enough until distributed social networking matures.

</comment></comment></comment></comment><comment><USER3> "Install your Appleseed node ($1,000 minimum) Free installation of Appleseed on your servers for any Appleseed node with less than 1,000 users."

Is it FOSS or not? It sure doesn't sound like it is.

"We've already accomplished much of what we set out to do"

Then why are you asking for $10k?

There's a lot of text on that page that directly contradicts other text on the page.

<comment><AUTHOR> To address the money issue further, the $1,000 minimum donation means the donor receives consulting services setting up and administering a node. Anyone with experience with LAMP is able to set up their own node without paying a dime.

And as for funding, I've been working on Appleseed almost full time for quite a while now (started in 2004). I've been working a full time job as well most of the time I've been doing this, so at some point, I'd like to be able to focus on this exclusively, and funding can help make that happen, which means the software will improve faster as a result.

<comment><USER4> Maybe off topic but I LOL at doublespeak like "$1,000 minimum donation", and the cognitive dissonance that lies at its foundation. I can just see the whole story behind it: the idealists who preach the 'software should be FREE!' mantra, the myopic hatred against software companies who (gasp) _charge money_ for their software, the realization (after trying to make worth while software themselves) that it actually costs money to, you know, live and pay expenses, and the grasping for straws that is "let's call it a 'minimum donation, then we're not actually charging for it".

Not to pick on these guys, I don't know them and for all I know they're the outlier, it's just such a cliche that it's becoming an indicator of a team that has much to learn about how the software business works.

<comment><AUTHOR> That's a donation, not a fee, and this isn't a business model, it's a perk for making a donation. If you look at similar projects on sites like Indiegogo and Kickstarter, that's how crowd-sourced funding works, with perks provided to people who donate (like t-shirts and servers for the Diaspora funders).

As for "software should be free", the idealists have been qualifying that with "Free as in Speech, Not as in Beer" for as long as I can remember, so we're all fully aware of the material concerns required.

<comment><USER4> Seriously, come on. A rose is a rose is a rose.

"minimum donation" = fee

"perk for making a donation" = services bought

"crowd-sourced funding" = a bunch of customers pay for products or services.

I mean I'm not being negative here or criticizing you, but let's call things like they are. Why make up fluffy feel-good terms for things for which we already have perfectly viable words?

Referencing the Diaspora guys basically reinforces my point re: the inexperienced team - a bunch of kids straight out of college why manage to hype together 200k and then turn out a complete disaster after a couple of months does not a trustworthy example make.

</comment></comment></comment></comment></comment><comment><USER5> Why don't you join forces with Diaspora?

Or, why would someone decide to donate to you over Diaspora?

<comment><AUTHOR> To answer your first question, I did email them back in May offering help but never received a response. I had a chance to catch up with them at the Federated Social Web Conference, and spoke with a lot of similar projects and we're all interested in a common protocol, so in that sense, we're all "joined forces." However, since their project is Ruby on Rails + MongoDB, and Appleseed is LAMP, beyond the protocol, there's not much collaboration on codebases that can happen.

As for why to donate to Appleseed over Diaspora:

1\. Appleseed is a much more mature codebase. We've been in development for a while now, and already have around 80 nodes in the wild.

2\. Appleseed has a much more experienced developer at the helm. I've been programming web apps professionally since 1997.

3\. We have a much clearer roadmap and protocol specification compared to Diaspora, which has yet to hammer out most any specifics in that arena.

4\. Appleseed is much easier to install (about 5 min for anyone who's installed LAMP software before).

5\. Appleseed is more ambitious. Diaspora aims to be a social networking app, but Appleseed is a social framework, with an extensible MVC model, meant for building new social components.

6\. Diaspora already has $200k. :)

<comment><USER6> is there any work on a common protocol yet? (mostly looking for a link)

<comment><AUTHOR> That's a good question, without a simple answer, but here goes:

Right now, we're using something I call QuickSocial:

<http://opensource.appleseedproject.org/quicksocial/>

This protocol is very much in flux, and being modified regularly. And it may not be the protocol that Appleseed ends up with.

Appleseed is a very flexible system, all the protocol work has been abstracted out into framework "hooks" (plugins), and you can easily replace one set of protocol hooks with another, or even have multiple protocol hooks operating concurrently.

So at some point, there will be support for OAuth, OStatus, Webfinger, etc. And if a unified protocol emerges as a standard, Appleseed will be updated with a new set of protocol hooks to support it.

The advantage of using a homegrown protocol like QuickSocial is that we can focus on userflow and end features without having to cater to another protocol specification, which is fine since we're at such an early point with distributed social networking protocols anyways.

</comment></comment></comment></comment><comment><USER7> Is there a site somewhere about this project (not just github)? Screenshots? Features? Information? Can't seem to find a link anywhere?

Edit: here we go: <http://opensource.appleseedproject.org/>

<comment><AUTHOR> Here's all the resources associated with Appleseed. They're on the indiegogo page, but they're a little hard to find.

\- _General Links_

Main: <http://opensource.appleseedproject.org/>

Fundraising: <http://www.indiegogo.com/Open-Source-Social-Networking>

Drumbeat: <http://www.drumbeat.org/project/appleseed-social-networking>

Beta Test: <http://appleseedproject.org>

Facebook: <http://www.facebook.com/group.php?gid=366560616455>

Twitter: <http://twitter.com/appleseedproj>

Identi.ca: <http://identi.ca/appleseedproj>

Youtube: <http://www.youtube.com/user/appleseedproj>

\- _Development Links_

Source Code: <http://github.com/appleseedproj/appleseed>

Packages: <http://opensource.appleseedproject.org/download/>

Bug Tracking: <http://appleseedproj.lighthouseapp.com>

Discussion Mailing List: <http://groups.google.com/group/open-social- networking>

</comment></comment><comment><USER8> Just for kicks,

Let me ask _how_ a project like this could provide possibly any more privacy than a situation of a group of people who each having a mailing list with which they email messages to their friends?

Seriously.

Maybe I'm not thinking clearly tonight but I can't see any plausible way to provide "more security" than the security of deciding what message to send to what friend. Am I missing something.

\-- I mean, you just aren't going to keep your friends from forwarding your messages. They'll video-type to screen if they need to. You might decide not to forward them more messages but that's different.

<comment><AUTHOR> _I mean, you just aren't going to keep your friends from forwarding your messages._

There's a difference between privacy and trust. Software can't predict when your best friend is going to turn against you for emotional or social reasons.

If you share something with ten friends, and one of them betrays your trust, technology can't predict or prevent that.

However, if you share something with ten friends, and they all act properly and trustworthy, you have a reasonable expectation that your data won't be available to anybody but those ten friends.

<comment><USER8> Agree with this but it doesn't answer my original question.

 _Why bother with encryption when each person having an email list would work as well as anything for distributing information?_ Why? It's like UPS buying armored cars to deliver your packages with but still plunking the package down outside your house when you're not home.

I have a reasonable expectation of privacy sending email through a webmail account. If I was sending the corporate crown-jewels or something, I'd encrypt my message but email these days is _appropriately secure_.

I'm asking these questions with the best intentions too. I like the idea of a Facebook alternative - I'm working on my project along those lines in fact. The thing is that to offer an alternative, you've got to be clear what services Facebook offers and how one could offer them better. It seems like a lot of upset over Facebook confuses Facebook's abuse of user data with the inherent insecurity that comes from sharing information with any group of people. We'll have to educate ourselves and our users about the difference if we want to have this Facebook alternative thing get off the ground.

As far as I can tell, almost everything Facebook provides is something you can do with the "regular web". Facebook simply puts everything in a nice package (and that nice package matters a lot as we've seen). If you had a script which aggregated your friend's blogs, tweets and emails, you would have something like Facebook. The only _service_ that would be required is friend-discovery and perhaps a "like" messaging system. The rest could just involve wrapping/packaging existing stuff.

The thing about Facebook and walled-gardens in general is that they really entice people who otherwise wouldn't participate in "cyber life" to come onto the web. But Facebook users hopefully will also be learning that their walled- garden doesn't offer the protection it claims and hopefully they'll realize that nothing can simultaneously offer free-sharing and perfect privacy in the modern era - your friends' friends just aren't necessarily going to be your friends etc.

So we "Facebook alternativists" have to offer something that gives the good stuff that a social network can realistically provide for people who are over the illusion that they can live in a one-identity, total-trust world.

</comment></comment></comment><comment><USER9> Do we really need one more Social Network?

<comment><AUTHOR> Yes, because a distributed protocol means that it will effectively be the last social network.

<comment><USER10> that's pretty delusional. Users don't care about protocols, they care about interface usability. And the ONLY thing that makes a social network valuable is its users. There will always be more room for more niche social networks with well defined UX constraints if developers continue the facebook trend of bloat sites with ambiguous constraints.

<comment><AUTHOR> It's really quite simple. Once an open protocol is established and popularized, then social networks are just software that connect into the distributed network.

Think of it in terms of SMTP and e-mail. Mail providers come and go, but nobody has to move email providers because all their friends changed emails.

<comment><USER10> > _Once an open protocol is established and popularized_

"popularized" is the most important and hardest part, you can't risk using it in an assumption. The problem domain you are working in is the exemplar of the chicken-and-egg user growth difficulties.

Also if it really was just a protocol: the only thing being developed would be QuickSocial, it would not be called a _social_ network because a protocol is not the place creating the social experience, it would be marketed to developers and bloggers as an improved and easy to add replacement for OpenID, 50% of the work would be on rigorously defining QuickSocial specification, the other 50% on developing plugins for all platforms and languages.

<comment><AUTHOR> _it would be marketed to developers and bloggers as an improved and easy to add replacement for OpenID, 50% of the work would be on rigorously defining QuickSocial specification, the other 50% on developing plugins for all platforms and languages._

That's part of the plan. QuickSocial is being developed as an abstracted PHP class library that's quite easy to implement.

<comment><USER8> Maybe I'm being patronize and you know all this all but I'll just note that a protocol is about one level of abstraction above a class library.

I'm biased because I'm working with c++ but I'd suggest the protocol be developed like most protocols - in a language neutral fashion. This involves writing it in a fashion akin to an abstract language. Normally, such a protocol spec simply say what byte means what and where each byte goes. Then the protocol can be implemented in any language.

For example: <http://en.wikipedia.org/wiki/Http>

Also, I'd suggest only creating a new protocol for things that really can't be done existing protocols (such as Internet mail). You always layer your application on top of an existing protocol if it serves your purposes.

<comment><AUTHOR> Nothing about the protocol is PHP-specific, but the initial implementation is written in PHP.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Perhaps my PHP-design skills are outdated, but is it normal to have a 1500 line index.php containing a mixture of configuation code, PHP functions and HTML?

Also, don't you use any template system?

... I cloned the github project, only to find myself confused :)

<comment><AUTHOR> The index.php file is the install file.

The actual system is re-routed using mod_rewrite. After installation, it never uses index.php again.

 _Also, don't you use any template system?_

No, actually, I use a different approach. Using simple_html_dom, I target the dom within the controller. The views are layout skeletons that are then populated with data. Check out the example component's comments for more info.

</comment></comment><comment><USER12> Don't "they" know that the Appleseed family is very litigious?

<comment><AUTHOR> I was going to rename it to Bananaseed, but I think someone with that name killed a bunch of nurses in Portland. /30rock

</comment></comment><comment><USER13> it's just too bad you never got back to me last year mike (via red emmas) :( not sure how else to contact you. I'll delete this post later

<comment><AUTHOR> Not sure who this is, but my email is firstname.lastname@example.com if you need to get in touch.

<comment><USER13> cool thanks. and now i realize it's too late to delete. Sorry folks :(</comment></comment></comment>