I interviewed at six top companies in Silicon Valley in six days - <AUTHOR> https://blog.usejournal.com/i-interviewed-at-six-top-companies-in-silicon-valley-in-six-days-and-stumbled-into-six-job-offers-fe9cc7bbc996 <comment><USER2> When I was a new college grad, I felt trapped by the fact that everywhere I looked they wanted several years of experience, and I had none yet. How can I get experience if it's required to get the job?

Now that I am 51, I feel annoyed that all of these stories of interviews involve asking questions about algorithms that rarely come up in real coding, and if they do you should NOT be rolling your own code, you should use the established, battle-tested solution that is out there on the internet if you spend 60 seconds looking for it. Much more important is to have the experience of how code complexity accumulates, and how to mitigate that. I cannot spend hours and hours studying up on these algorithms, there are much more important things (real coding-related things) which I need to learn about, to the extent I have time to do that. What should I choose, pytorch or keras? React or Vue? Go? Kubernetes? Spark? All much more important questions than how to do a breadth-first search.

So, was I wrong then? Or am I wrong now? Perhaps both.

<comment><USER3> I just graduated, so I'm not dealing with constant internship interviews anymore, but at the time I absolutely hated it.

My frustration isn't exactly like yours (my time is probably a lot less valuable). I feel that the questions are all geared at puzzle solvers.

If you're a puzzle solver, you love answers. You love digging into the details. You love finding out the basic components of a system. I think these are the people who excel in academics.

Almost every other intern I met once I got to the bay area was a puzzle solver. They were also competitive and had amazing grades. And these people LOVED algo questions. Over lunch, they could go through half a dozen questions.

I slipped through the cracks I guess. I'm bored by puzzles, have awful grades (and in a worse program), and not so competitive. What I do enjoy, however, is building up. I like modeling and being about to think at greater and greater levels of abstraction to solve problems that aren't puzzles, but instead open ended questions.

Anyway, I think both of these types of people have a place is software, and only one is given attention

<comment><USER4> Honestly, it sounds like you may be geared more towards software architecture rather than software development. If you like the sound of the bigger picture more than the details, it might be something you could look into.

<comment><USER5> Is it possible to even get into software architecture without pretty significant experience? From my experience in the workplace anybody making purely architectural decisions without having to implement them is a team lead or higher in the organizational architecture.

<comment><USER6> Not sure it would happen that way out of choice, but the role can get unexpectedly thrust upon someone, experienced or not (Think startups, desperate to make ends meet with a handful of inexperienced engineers...or even at medium sized companies, remember back when Google had "20% projects"?). At startups especially though: they don't have money to go out of their way to hire an overpriced "experienced software architect"...

It goes something like: "Hey, new Engineer, I need you to work on experimental feature X". - Then the engineer builds system Y to provide feature X, probably poorly architected and not scalable, not expecting it to go anywhere. Some months later, app containing feature X gets distributed to thousands of users, or goes viral and hits millions of users.

Congratulations, like it or not, you have now become the lead architect of the now-widely-deployed "experimental" system Y, and you are going to either crash and burn or become a damn good software architect by maintaining it out of sheer necessity. Later, you find yourself putting "Lead Software Designer" on your resume, having earned that role and title.

A lot of successful software was originally designed "by mistake" and grows far, far greater than its original purpose. And in contrast, you get the well- designed software that was properly architected, but never goes anywhere because it never saw the light of a successful deployment at scale.

<comment><USER7> I think you've accurately described the vast, vast majority of production code that's hasn't been through a second wave of engineers/management and rewritten. If it works, and requirements aren't changing, then your MVP has become the gold standard

</comment></comment></comment></comment></comment></comment><comment><USER8> > _If it's of any use: I was interviewing for my second job out of college > with about two and a half years of experience without any particularly > notable internships or employers on my resume; I went to a very small school > that had zero known software companies at their "career fair"; I started > preparing in late April and started applying in June /July; and, lastly, a > few months in, my job is everything I could have possibly dreamed of._

Wow, that's amazing! Congratulations to the author because this demonstrates they have genuine talent.

In contrast, I've been a programmer for 10+ years, and I cannot pass the technical interviews in the companies mentioned above. At first, I thought the reason behind my failures was a lack of formal education in Computer Science, so I started reading more books. Then I thought, maybe it's the fact that I spend more of my "productive" hours in my job just doing lumberjack web development, so I started participating in competitive programming _(LeetCode, Code Golf, HackerRank, Code Wars, among many others)_.

Finally, I realized my brain needs more time than the average programmer to find patterns in this type of problems.

I gave up on my goal to land a job in one of these big corporations.

However, I don't feel bad about giving up, in fact, thanks to all these books and competitive coding exercises, I was able to find two of the most exciting jobs I ever thought I would have, for 4+ years I worked in the software security industry doing Malware Research and building infrastructure tools for other security researchers. Most recently, I entered the game industry, and finally, I can use my algorithms and data structures for non-trivial projects.

Interestingly, I've been recently getting more messages by recruiters who want me to work for some of these companies. I politely decline the invitations because I know I cannot pass the technical interviews, but I promptly refer to some of my colleagues because I can see my younger self reflected in them, and I want them to have the experience that I couldn't have to work for one of these companies. Even if they work only for a few months, as many people burn out, having the company's name in their resume will grant them dozens of new opportunities.

<comment><USER9> I cannot help but think that these big tech companies (FAANG, et. al) are missing out on diversifying and increasing their engineering expertise by passing over developers like you.

I often think what would Google/Facebook would be like if they hired in some experienced engineers that may not be able to whiteboard a BFS tree or can tell you Djikstra's algorithm, but have proven business track records of getting projects done, on budget, and on time. Real, pragmatic, get-it-done types of engineers. (That's not to say whiteboard expert engineers can't also be this way - it's just that whiteboard interviews don't hire for this in particular - technical expertise comes first)

There was an excellent comment on another thread yesterday (that I can't find) that basically said something along the lines of "If I'm asked about BFS trees in an interview I'm going to tell them I'm just going to google a library that can handle it - I've got more important work to get done"

<comment><USER10> The technical interviewing scheme is not great, but I haven't seen another system that works.

> I cannot help but think that these big tech companies (FAANG, et. al) are > missing out on diversifying and increasing their engineering expertise by > passing over developers like you.

I think this is certainly true.

> I often think what would Google/Facebook would be like if they hired in some > experienced engineers that may not be able to whiteboard a BFS tree or can > tell you Djikstra's algorithm, but have proven business track records of > getting projects done, on budget, and on time.

Well... how do we find these people? By looking at their resumes where they claim this? By contacting references who will attest to it? By trusting the intuition of subjective evaluators of the candidates?

Practically speaking, FAANG companies do hire such individuals, they just do it through acqui-hires. If a person works at a company that is good enough to be worth acquiring, then we have a good signal that they are effective employees even absent a direct evaluation of their technical abilities.

<comment><USER11> > Well... how do we find these people? By looking at their resumes where they > claim this? By contacting references who will attest to it? By trusting the > intuition of subjective evaluators of the candidates?

While not perfect I wonder if a person's projects are a good signal for this. There certainly are those who have developed a significant open source project but who get rejected by the FAANG companies, the author of Homebrew being a recent infamous example.

<comment><USER12> One unfortunate side effect of being at a FAANG company is that most of your best work is probably proprietary and you will never have the chance to show it to anyone outside the company, nor will you have much free time for personal projects.

As an interviewer, I can definitely say that GitHub has become a bigger part of helping to evaluate people.

<comment><USER13> > As an interviewer, I can definitely say that GitHub has become a bigger part > of helping to evaluate people.

Many people can't work on open source, either due to a lack of time or corporate policy.

</comment></comment></comment></comment></comment></comment><comment><USER14> As someone who has interviewed with 3 of those 6 companies and gotten offers from all 3, I think the best way to approach these interviews is to not walk in with the mentality that it's a one sided "test" where you are put on a spot to defend yourself.

In reality it's more often than not a role-playing exercise where you are pretending to be coworkers trying to solve problems together. Sure you'd be the one leading the problem solving, but being capable to explain your thought process effectively, having the ability to exchange ideas with the interviewer, and just being able to come across as a good teammate is probably more important than getting that last 5% of optimization.

This is especially more true for senior level position interviews where there are more design/architecture problems with relatively open answers. Out of these companies Google felt most impersonal and "test like", which I guess is not a surprise considering they mostly don't hire for any specific teams/positions (and we can debate the pros/cons of that all we want), and they try to eliminate human factors by the way of having hiring committees (which leads to other pros/cons).

In the end even though most still comes down to the technical skills, walking in with the right mentality and attitude actually really helps one to emphasize one's strengths.

Oh one last thing, showing confidence is also super important. But too many people mistake arrogance for confidence. In my personal experience there is no better way to demonstrate confidence than being comfortable (not to be confused with complacency) with what you _don 't_ know, and showing intellectual curiosity/eagerness to learn.

<comment><USER15> Except it's well known that Facebook asks you 2 coding questions in 45 mins and if you don't solve them it's an automatic fail.

<comment><USER16> How is it "well known"? Do you have a source with concrete data? Have you asked both people who were hired and not hired if they completed/not completed their question, over a big enough sample?

Obviously, people who can't finish a problem correlate with people who aren't good candidates in general. But that's not necessary. You can have someone who shows very good problem solving and reasoning, but just doesn't make it to the end.

</comment></comment></comment><comment><USER17> I find it shocking that Facebook would still be considered as a peer to these other companies in terms of desirability as an employer.

I would only accept a position at Facebook, which seems to be building a fundamentally destructive product while going out of its way to behave unethically in many dimensions, if it was an absolutely last resort to pay the medical bills of some dying loved one or something.

Why would anyone be willing to work there if they had offers from companies that make products that help people and don't treat society with contempt?

EDIT: for a good primer on this subject, read this essay by Matthew Yglesias called "The case against Facebook": [https://www.vox.com/policy-and- politics/2018/3/21/17144748/c...](https://www.vox.com/policy-and- politics/2018/3/21/17144748/case-against-facebook)

<comment><USER18> There are plenty of people who feel the same way about all the useless startups in SV that exist solely to take VC money.

At least Facebook actually provides something of value to the hundreds of millions people who use it.

<comment><USER17> There is a robust debate about whether or not facebook provides negative value to its users. In my opinion, it's charitable to say that the question of whether Facebook harms its users is open to debate. There seems to be a clear correlation between use of facebook and negative mental health outcomes. The fact that people use a product is absolutely not evidence that it provides value to its consumers, especially when addiction is involved. Whatever "value" someone got out of cigarettes when they first started smoking, most addicts wouldn't say they smoke because they get something out of it beyond the assuaging of cravings.

<comment><USER19> This assumes that FB is harmful to everyone, instead of a subset of people. I don't think that's very well proven. The mental health studies also have a bit of a correlation issue, similar to drug use.

I think sugar is a more apt analogy than smoking. Facebook, like sugars, provides a source of a required human input. (Calories/human connection). Overdone, both are harmful.

Tobacco is a much more charged analogy, and is more extreme in terms of positive/negative balance. I think it reveals more about the biases of the person making the statement than it does about social media.

<comment><USER17> The degree of harm is correlated with the degree of use, just like cigarettes. If you smoke a handful of cigarettes a year, it probably won't affect you much at all. But if you use cigarettes multiple times a day for years, you'll do real harm to yourself. That's exactly true of Facebook. Yes, if you occasionally check in and are diligent about how you use facebook, you might escape harm. But unlike sugar, this slight-of-hand language they use of "human connection" doesn't prove that any facebook use is beneficial.

Sure, candy technically has calories. But the fact that human beings need calories isn't a good argument for eating candy. You can also get calories from healthy foods, and you can get "human connection" from, you know, talking to people, or sending text messages, or reading reputable news sources. Not coincidentally, the idea of a "social connection" was and is also a big part of apologizing for smoking as a habit.

<comment><USER20> _> The degree of harm is correlated with the degree of use, just like cigarettes. If you smoke a handful of cigarettes a year, it probably won't affect you much at all. But if you use cigarettes multiple times a day for years, you'll do real harm to yourself. That's exactly true of Facebook._

That's also true of just about anything humans can consume. For example, sugar.

</comment></comment></comment></comment></comment></comment><comment><USER21> > Leetcode Medium, Leetcode Hard, Cracking the Coding Interview ...

I feel like there is something wrong with the industry. Here is a person applying to do mobile development and they need to spend weeks and weeks drilling binary tree inversions and trapping rain water ([https://leetcode.com/problems/trapping-rain- water/](https://leetcode.com/problems/trapping-rain-water/)) etc.

I was interviewing at AWS and I don't think most of the people I talked to even looked at my resume and asked about the projects I worked on, happy customers etc. It was mostly palindromes, buckets of water and various trees, and parroting back Jeff's 14 leadership principles. Now obviously these companies are around and lots of smart people are working there and delivering great products but it just seems so strange.

<comment><USER22> No, these tests are carefully devised to target young college graduates who will excel at these types of interviews because the material is still fresh and they have the free time to study.

This is age discrimination disguised as "technical proficiency" exercises.

<comment><USER23> News to me students have the free time to study considering the hiring season is mid-semester during some of the hardest classes. Not to mention if they are working too

<comment><USER24> haha guess what, the second piece of the puzzle is that you have to be rich enough to have time to study AND a place that is close enough that commuting to college and work doesn't mentally wipe you out everyday. why do you think silicon valley isn't seen as a place with actual opportunity for everyone even though everyone inside it thinks it's wonderful?

<comment><USER22> good point, it's also disadvantageous to both women and under-represented groups in this industry.

</comment></comment></comment></comment></comment><comment><USER25> "After about a month of consistently practicing problems each day (maybe 2–3 hours/day, more on weekends)..."

I'm reading this as a guy with a wife, kids, full-time job, and rusty whiteboarding skills. My inability to make this kind of time investment makes me feel trapped at my current position.

<comment><USER26> > I'm reading this as a guy with a wife, kids, full-time job, and rusty > whiteboarding skills

yeah, well these companies don't want you. I mean they do but they need to make sure you have the same availability as a college hire. One way of checking that is to have you block time like that for a while.

<comment><USER27> Not sure why you're being downvoted. You're right. These companies like workers who have no other responsibilities in their lives except their jobs.

Edit: single men and exceptions to the rule, please keep downvoting me.

<comment><USER28> Eh, that's borderline conspiratory. I work at one of those companies and know for a fact that many coworkers have kids and sometimes have to leave early or get in late due to kids' doctor appointments and whatnot.

Besides, in addition for it being illegal to discriminate candidates based on marital status, in my experience nobody that does interviews ever thinks of considering that as a hiring criteria.

<comment><USER29> It happens all over the place all the time, if you don't stay late you're "not a team player". Of course your employer isn't going to say you're fired because you're a parent, unless their attorneys are bored. That doesn't make it any more moral to discriminate based on proxy metrics, like how much of your life you're willing to donate to an entity that cares about you only to the extent you're making them profit.

<comment><USER28> I mean, nobody goes to an interview and asks "hey how late do you work in your current job?", so I don't understand how it is possible to discriminate by proxy metrics at that point in the process.

Maybe you're arguing that people leave their jobs after the fact due to thinly disguised rationalizations of these proxy metrics affecting raises, but that's a huge stretch. I've seen plenty of cases of bosses and coworkers being understanding of personal circumstances (and I'd go as far as saying that is more so here in SF than at previous jobs in Canada) and I've yet to see these alleged backstabbing evil brogrammers. Saying that a company likes this or that is also anthropomorphizing something that isn't sentient and strikes me as a strawman.

<comment><USER24> they don't need to - your github/ side projects tell them all they need to know & you're probably required to submit them to even be considered. you think someone with a full time family is going to have the same output in code as a single person with nothing but their career going on?

discriminating is trivial if they just have your name

<comment><USER28> No offense but there's a lot wrong with this comment...

While having a github presence can help recruiters find you, you aren't required to have such presence at all; the vast majority of people I interview don't (and the same goes for coworkers).

Measuring lines of code written is another fallacy that gets thrown around easily, but that any engineer worth their salt knows is a stupid metric (1MLOC of shit code is a pile of shit). One only needs to look at their most recent perf evaluation to realize that absolute code output doesn't actually factor in - it's high level impact perception that does, if anything.

Being single doesn't in any way correlate to more dedication; plenty of singles clock 9-5 and spend free time on non-coding activities (games, TV, exercise, etc), and plenty of family people work late by choice. It's not even an either-or proposition either: there are married people w/ no kids, single people that need to pick up their dogs at daycare, people that work so late so often that they become unproductive due to fatigue, etc.

The idea that someone will take your name and go dig up all your personal info and discriminate you and cackle maniacally is just flat out absurd. As someone who's been both an outsider and an insider to bay area tech, I honestly don't see evidence of discrimination, deliberate or otherwise. I feel like the occam's razor in this discussion is that armchair speculators seal themselves in an echo chamber of delusional conspiracy theory out of self pity or to feel smug. I also noticed that there are people who have had asshat bosses/coworkers at companies w/ dysfunctional cultures and think that experience translates to there being asshats everywhere.

<comment><USER30> Yeah there is a huge amount of armchair conspiracy invention in this thread.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER31> The candidate's experience shows how flawed Bay Area recruiting is. This candidate was clearly strong, as they had a 100% offer rate on companies that they interviewed at and almost all of those companies are top tier(Apple, LinkedIn, Amazon, Facebook, Google).

Yet 70% of the companies didn't even give the candidate a chance to interview. It's incredibly sad that a candidate that is able to get offers at Google, Facebook, and Apple can't even get 70% of the companies to let them in the door to interview. Interviewing is clearly broken.

<comment><USER32> It's possible the candidate was overqualified and some of those 70% knew it wasn't worth their time if there was a 99% chance they were going to Google or similar.

<comment><USER33> The article said they went to a small no name school, had no impressive companies on their resume, and had only a few years of experience. I don't know what would make them think they were overqualified.

Also almost all of the companies were top tier.

</comment></comment></comment><comment><USER34> I see so many people talking about how irrelevant algorithm skills are for real world coding, and lots of allegations of age discrimination.

I see the validity of both points, and I'm sure they are true.

But people, please, some perspective.

The author spent a couple of months studying and practicing material in their spare time and got offers from top companies in the comfortable 6 figures.

That happens in no other industry, ever.

Look at what lawyers, structural engineers, accountants, and most especially architects ... not to mention the obvious one: doctors, go through to be qualified to make good money.

The author presumably graduated with a bs, worked for pay for 2.5 years, did some online learning, and makes a great living?

A doctor would still be in (very expensive) school.

I suspect there's an element of IQ-ish testing with these puzzles and it sucks if your brain doesn't work that way and you are permanently excluded as a result of that.

But if you have the capacity but can't be bothered to learn a bunch of material over a fairly short time frame to handle an interview, why should these companies want you? You obviously just don't care that much, because the investment is tiny.

<comment><USER30> It's more that the unfortunate reality is that programming is so amazingly powerful and relatively easy to do (i.e. compared to becoming a doctor or lawyer) and is so scalable that companies make so much money off developers that it's not a big deal to pay them six figures.

</comment></comment><comment><USER35> _It is critical, in my opinion, to either whiteboard problems with someone or mock a phone interview with someone. Not critical as in "very important", but critical as in you should consider it an absolute requirement when studying._

Which would seem to further substantiate the observation that the modern interview process seems to be (strongly) calibrated not towards finding folks who are good at real-life problem-solving and engineering and long-term collaboration in a team environment, but rather folks who are good at ...

... killing it at the whiteboard and on phone screens.

<comment><USER36> Isn't the author doing the rational thing though? If I knew ahead of time that BigTechCo's final interview would be a test of my juggling skills, I would definitely spend hours honing my juggling. Whether or not it's an appropriate measure of my skill as an engineer is irrelevant to my goal of "getting a job at BigTechCo"

<comment><USER37> The author's doing the rational thing, but BigTechCo that requires juggling certainly isn't. It is left to the reader to decide whether this is relevant to the industry's interviewing practices.

</comment></comment></comment><comment><USER38> It's interesting that software interviews have degenerated into literal auditions. Just as with auditions, you need to train specifically for them.

Is there really a reason why software jobs can't hire in a blue-collar fashion where there's a background/experience + sanity check and a subsequent trial period? Even looking beyond that, is there any similar profession where interviews like these take place?

I'm starting to think this may be in part be related to the phenomenon of bullshit jobs. Basically that people in administrative roles need to have something to do, and as such, the interviews themselves have over time expanded to as much as multiple days.

<comment><USER39> Why would anyone with an existing job ever take another job with a "trial period"? You are basically excluding your most desirable hires with this system.

<comment><USER40> If I were looking to leave my job, I'd not sign with another employer if I wasn't quite sure I'd want to stay with them, trial period or not.

Is it different outside of western Europe in terms of trial periods? We (afaik) always have a trial period: in the Netherlands it's typically 1-2 months, in Germany it's typically 3-6 months; either way, there is always a period where both parties can fire the other with zero to two weeks notice. It is not the norm to be fired in that time, but it happens (from my limited anecdotal evidence, I'd estimate one in 10-30 hires, and most of the time both parties agree it's not a good fit).

</comment></comment></comment><comment><USER41> I would say, that out of all the companies I've interviewed with so far, Apple was the best, no bullshit interview experience I've ever had. Very to the point, incredibly specific to the type of work you'll be doing. Most of the interviews are with two people, that are from team you'll be working with. Also very refreshing was a lack of competitive programming type questions...

</comment><comment><USER42> I've always been curious about working at one of these companies.

I believe if I set the goal of getting hired at one of these places, I would probably be able to get a job:

\- 10 years professional programming experience

\- half-life, Quake, Starcraft, Warcraft II modding experience growing up

\- Avid reader ( ~50+ books/yr )

\- tons of self practice and continuing education. I just like learning new things and find programming fun

\- Have had success in most of the roles I have occupied

\- have a personality people make friends with

\- edit: Also a computer science degree from a good college!

But anymore I just do not want to work that hard. I've been doing the start-up thing for a few years now. I am TIRED. I am BURNED OUT. I am not particularly interested in writing GoLang or Python to sell ads. Lately I have been trying to think of a part-time or EASIER job I can phone in on with my programming chops so I can go home and hack on my side projects.[0]

I want to go home, read, work out, cook dinner with my partner, hack on toys and open source stuff. I do not want to empty my tank every day working for the man. How hard do these places work you? What do I actually get out of it, other than learning how to write websites and a good salary and perks? Where do these jobs fall in the reward/bullshit ratio?

0: Which are probably better career development than fullstack/devops work anyway...

<comment><USER43> we all have time and energy. Time passes us by equally for everyone but its our choice how we spend our energy.

</comment></comment><comment><USER44> Implied but not explicitly stated in the post is the idea that these interviews are mainly about solving puzzles given during interviews.

How depressing. A big part of software development is knowing how to get things done with people you don't agree with or like. A good chunk of the rest is about communication. You know, organizing thoughts into something coherent and actionable, speaking, writing, and most of all listening.

Is big tech hiring that broken that a person's past history of shipping quality software under severe business constraints matters so little?

Or is it perhaps that too few people at large tech companies are capable of evaluating candidates on any other basis than cooked-up on-the-spot brain teasers?

<comment><USER45> No, it's a hazing ritual to see if you'd be a good member of their fraternity.

</comment></comment><comment><USER46> I really dislike the fact that you need to study for weeks with specific questions that really have no hold in real life.

I've been doing this for 16+ years and I have never asked the type of questions you encounter in these books. Not even once.

<comment><USER47> The specific questions don't have a hold in real life but the patterns behind them do. Most problems to be solved in computer science, with enough abstraction, have already been solved. I joined a new software development scrum at work and have been helping optimize how long our application takes (it can be thought of as an encoding engine) we've seen huge leaps in improvement with very simple solutions, 75% of the time the way we're seeing that the best way to solve a problem is via a hash table. That's also an incredibly common core solution to most interview problems.

<comment><USER48> The patterns _can_ have a hold. It's always fun to optimize slow engines, but it always feel more to me like rote/busy work than actually building the system from scratch and engaging in product engineering. But, I guess that's kinda your point -- very simple solutions that revolve around simple, common core structures can lead to huge leaps in improvement. But this kind of real world optimization has medium breadth and depth. It's got a lot more breadth than many algo interviews I've gotten, and yet less depth. I've found that's been the real structural weakness in weak algo interviews I've had -- they just overindex on deep knowledge of algo optimization and underindex on communication, reading and design ability. I'm drawing from a pretty small and outdated sample, though; the last time I had the patience to interview with a BigCo was more than five years ago.

</comment></comment></comment><comment><USER47> I'm working on preparing for an interview gauntlet but in no way would I do 6 interviews in 6 days. A full day of interviewing is such a draining experience mentally and physically, after interviewing with Google in 2014 I just wanted to get a glass of water for my parched throat and go to sleep.

Congratulations to the OP, I have EPI as well and it's certainly a challenging book.

<comment><USER49> After my full day of interviewing at Google, when my recruiter asked what I was planning to do for the rest of the day I let him know I would probably just be sitting at the park with my dog looking at the trees.

I would bet that with time and repeated practice the process becomes less stressful and draining, but I have no intention of testing my hypothesis any time soon.

</comment></comment><comment><USER50> Whenever I read job search war stories such as this article, I keep wondering if these are sent from a parallel universe of some kind. Six job offers? That's incredible! I mean that literally: I have a very difficult time believing such stories because they never jive with my own experience.

The below is taken directly from my "Job search - 2017" Trello board. (I always use Trello to organize a job search because without it there's no way I could keep track of every company I've applied to.)

Companies I've decided not to pursue due to obvious red flags: 15

Companies that have rejected me explicitly (without regard for stage of process): 15

Companies that have ignored my application entirely: 25 (including all of the so-called "top companies")

Companies that have invited me for an onsite interview: 8 (of which one was a remote-mostly team that did a video conference interview in lieu of onsite)

Offers received: 4

Of the 4 offers, one was laughably low; another was for a management position that would have precluded any programming (bad for my career); and the remaining two were both attractive and presented a difficult choice. This was the first time in my career of 15+ years when I had more than one offer to choose from.

This job search took place after I got laid off unexpectedly, and took two months of job searching on a full time basis. The various phone calls, meetings, interviews, etc. took place in a solid chunk of time from 9am to 5pm, sometimes seeping into the 7-9pm time frame whenever I was doing a call with a busy person on the West Coast. Somehow I also managed to do half a dozen of take-home projects, the longest of which took me two weeks of all- nighters to complete.

To summarize: I wish someone would show me which bus to take to the parallel universe where folks get to choose from six different offers. Here and now, I feel incredibly lucky to have my current job, and dread the day when I might be forced to seek another.

<comment><USER51> this person is clearly very smart and capable, but i think the role of iOS developer contributed to the take rate. super high demand.

</comment></comment><comment><USER52> Would love to see specific numeric information on offer packages, negotiations, counter-offers, and final accepted offer, if the author feels comfortable disclosing such information.

I bet you can get a really nice offer when you get six big tech companies to bid over you.

<comment><USER53> You can probably negotiate toward the top of each pay band, but that's about it. I'm assuming the OP was an L4, you can research the pay bands for that level.

<comment><USER52> Salary is restricted to pay band, but RSUs are not, at least not at my company anyway. I've heard of some pretty insane RSU grants well beyond what would be typical for a given pay band (absent negotiation).

</comment></comment></comment><comment><USER54> I was surprised that he got an offer from Google after a single interview during his 6 days of interviews - it took 3 months and several interviews before I got an offer from them.

Turns out that he didn't:

"It's a very loooooong process relative to the rest of the companies I spoke with, so I definitely had to keep everyone updated on where Google was. I also had to let Google know where I was with everyone else."

<comment><USER55> Probably means a single on-site day (with 5 interviews). The hiring process can be slow for factors outside the candidate's control, due both to general coordination delays and the need to have a hiring committee evaluate the candidate after receiving interview scores.

</comment></comment><comment><USER56> These big companies (including Google where I work) have so little idea of where they're going that they go way too general with interviews. If you want a good iOS engineer then ask them all questions about the platform and have platform experts interview them.

The concern is that priorities shift and this person might end up on a C++ backend in a year and you want to make sure they're good enough in general. The inability to forecast the existence of a role a few years down the road is a sign of incompetent planning. And having software generalists everywhere instead of domain experts is a great way to get good but not great software.

<comment><USER53> A lot of big companies (FAANG) do test platform domain knowledge, many also do platform-specific coding sessions. The reason why interviews aren't solely composed of platform questions, is that they want some measure of how good you'll be overall too.

Many engineers at big companies end up changing roles entirely (android -> iOS, iOS -> backend, engineer -> engineer manager, engineer -> PM, backend -> ML, etc).

Big companies don't just want someone who's knowledgeable about a single platform, they want someone who's also a skilled critical thinker and are able to break down hard/complex problems.

</comment></comment><comment><USER57> It would be nice to know which offer the author decided to accept...

<comment><USER58> This is a total guess, but the author does seem to hint a preference for LinkedIn:

> I was very impressed throughout the entire interview process with LinkedIn > from both a culture perspective and an engineering perspective. They rose > the highest on my mental list of iOS Prestige™ from the start of the process > until the end.

</comment></comment><comment><USER59> The heart rate info that he provides for the onsite interviews is a funny and interesting thing to include (around 100-122 during interviews, with a resting of 60).

Does an elevated heart rate during an interview count towards one's daily fitness goals? :)

<comment><USER60> I started an 'exercise' on my fitbit right before my last onsight started. Fitbit claimed that I burned ~6K calories that day. My 3 week running average is somewhere around 4K.

<comment><USER55> 4K daily average? What do you do, pull sleds all day when you're not working?

<comment><USER60> Im a recovering chunk monster. Im down 80lbs in 6 months and now I've got pretty decent cardio (6 miles in an hour on the treadmill 5 times a week), but still weigh 250lbs. If you're fat but move a lot you can burn some massive calories, or at least my fitbit says so.

</comment></comment></comment></comment><comment><USER61> The way I see it, there are several reasons for such an interview process:

1) [Leverage]. The interviewer can negotiate down salary expectations based on the performance of the interview. You can ramp up requirements until the candidate breaks. Then, you get the upper hand in the negotiation process.

2) [Responsibility]. Nobody wants to take responsibility for the bad decision. In the formalized interview you can blame the metric. If the metric is external (Google/Facebook/Amazon do it), then there is nobody to assign the blame, so, no responsibility gets redistributed.

3) [Effort]. Treating people as they are different is hard. Reading their CV or learning more about their projects requires time effort and expertise in the field. This is expensive. Much easier is assessing people through a generic process.

4) [Loyality]. Someone, who spends their free time for a year preparing for the interview is bound to be more loyal than somebody who prepares only for a week.

5) [Initiation]. People who go through a difficult initiation process tend to value their group more. That builds tightly knit teams.

Overall, I think that the process is difficult, somewhat irrational and inhumane. But I have no idea how to really fix it.

</comment><comment><USER62> > _It was exhausting and it meant that most of my lunch breaks were just > interviews for multiple weeks. I had to start going into work very early so > I could leave earlier to take calls at home. Making sure I was still meeting > all of my commitments at work was a challenge, too, but I made sure to > prioritize that over interviewing, rescheduling when necessary. I wouldn't > phone it in for the purposes of interviewing. It makes you look bad, it's > unethical, and if you don't get a job, you're now a lower performer._

I'm impressed with this person's ability to write a blog that BOTH:

— feeds people's curiosity via the current interview experience at several of the worlds biggest companies all in one read

— Incorporates (advertises) his own personal work ethic and credibility throughout, to where I would bet he's getting all sorts of significantly higher paying offers around the area.

The latter was likely the motivation to write it, which is great. I'm surprised more people with similar stories don't use their ultra-blog-worthy experience as an opportunity to humble brag and display their value. Might as well, right? Small risk/big reward

</comment><comment><USER48> Paraphrasing a comment I left elsewhere in this thread, but I've been seeing actual improvement on the state of the art on the much maligned and polarizing algo brain teaser interview. I'm not sure if Karat is the best in this area but I did have a good experience with a company that used them and interviewed me well, but I like that companies are actually incentivized to minimize false positives and negatives rather than just one. I try to tell other engineers that they'd be surprised at how much better a good technical interviewer can be than an average strong engineer, but that goes in roughly two directions: one group can see why the dominant mode exists but is curious about a better way that remedies the shortcoming of the dominant mode; one group defends the dominant mode and gets fairly defensive about criticisms of it.

Can you guess which group is better at technical interviewing and I've found more capable of handling the responsibility of screening talent in the past?

</comment><comment><USER63> Just goes to show you that software interviewing exactly captures the entire experience of being a working software engineer and always tests you on the things that all of us reading this right now already know.

Right?

</comment><comment><USER64> It seems that LeetCode and HackerRank have become the SAT and ACT of the SV Big Techs, and FAANG et al are becoming the workplace Ivy Leagues. If so then where are the Khan Academy, Coursera, Udacity, and local coding boot camps of the world?

</comment><comment><USER65> I can't help but wonder how I would do in these interviews.

Honestly, I think I'm a horrible programmer. My current gig is developing an api for a survey app, as well as an environmental sensor data app (which me and my partner built from the ground up).

It's tough though. I don't know many algorithms, and I have to do a lot of research. That said, I still get shit done and deliver.

I have no formal education and have taught myself.I would most likely fail these kinds of interviews.

How I got my current gig? No idea. Maybe my honesty won them over. Yes, I can do front end development. No I don't know that, but I can learn.

Seems to have worked out so far.

</comment><comment><USER66> Though I empathize with senior people of the software industry, I will like to add some other perspective to this discussion. I am from the Oil and Gas industry in Operations domain, nothing to do with software. Previously I have worked for IBM as a software engineer. Hence, I have the perspective of both industries. From this discussion thread, it seems that senior people are looking for exclusivity and immunity. I can correlate it with seniors of my industry. My company is government owned. Here, seniors people (by age, not by rank / +1 rank but the same job responsibility) command juniors (by age, not by rank / -1 rank but the same job responsibility) and seldom do any work. They come to office late, leave office early citing family issues everyday. When I bring up the topic to my boss, he says I need to understand they are like that, can't help. Sometimes he says "Learn from them, how to get work done by others". Those others are younger people like us - 22 to 40 age groups.

</comment><comment><USER67> > Although every company loved telling me that "it really feels like a > startup!", it rang the truest at Amazon.

That made me laugh. I have to wonder if the author is somehow so naive that they don't understand what they observe or what to ask. It's also possible that the sentiment is the only lip service they could pay that hellhole, with a straight face.

</comment><comment><USER68> This is really impressive! I will keep this in mind if I ever apply to any of these big tech companies. I've sent a few applications over the years, but I never got past a phone screening, and I didn't realize how completely unprepared I would have been.

Maybe these whiteboard interviews also filter out people who don't really want the job enough. If someone spends a lot of time brushing up on algorithms and practicing interviews, then it shows that they really want the job, so they're more likely to be a high performer.

I'm surprised they were able to get job offers from Google and Facebook, while their application was just rejected by Stripe. I also got rejected by Stripe without a phone call. I have some really talented friends who were also rejected after an interview. I'm starting to think that Stripe's hiring bar is just much higher than Google or Facebook.

</comment><comment><USER69> PROTIP:

1) Write blog article on interviewing 2) Promote on hackernews 3) Use as leverage for salary/equity negotiations

</comment><comment><USER70> > After about a month of consistently practicing problems each day (maybe 2–3 > hours/day, more on weekends) I moved on to doing primarily Leetcode's "Top > Interview Questions"

I'm completely fine with interviewers expecting you to solve some problems in front of them and knowing basic algorithms + data structures, but if it's becoming standard to dedicate this much time to studying and applying for jobs something is really, really wrong.

I think a day or two to refresh your knowledge you haven't used for a while and practice a few problems to get you warmed up is reasonable but when you're talking weeks of preparation then the interview is testing the wrong thing. I can't see in the article how much preparation was done but it sounds like months of work.

<comment><USER53> If the OP was already good at algorithms, then a day or two of refresher is probably all that'd be needed. It's made clear that he didn't have a fundamental grasp at doing harder algorithm questions, hence why he needed so much studying + practice.

</comment></comment><comment><USER71> Done this whole process as well. Every year, in fact. I've interviewed with quite a few top Bay area companies with quite a few going to onsite.

I never got an offer though and the only thing I can say that differentiates me from this person in terms of how we studied is the part where you practice with other peers. I've done this maybe once or twice a few years ago. I think in order to get to these companies you need to practice with peers. Preferably with ones who have made it through. Unfortunately, in my experience, it can be hard to find peers willing to do such things. I'll continue to make half (or less) of what I could be making if I was at some top public company. And this area will continue to be out of my reach financially because of that.

</comment><comment><USER72> So people are complaining that whiteboarding is the wrong way to interview. That we don't discover if they can write and maintain complex software system, instead focusing on 'trivia'. I don't disagree (I think that the trivia being tested can be important - a team with _no one_ that has deep knowledge of data structures of algorithms is lost), but I also don't know a _good_ way to interview that finds out what we need to know.

How do you find out if someone can make good long term decisions in a short amount of time? It seems inherently contradictory. Some people say by giving homework problems. They're not wrong, that might give valuable insight, but I know that I would hate that, so others might too.

Can there be a good answer?

</comment><comment><USER73> One big problem is that the people interviewing are rarely "big picture" people, because in general there are few "big picture" people as a percentage of any population.

So, when "small picture" people think "competence", they think in minutiae, which in software development means the smallest distinct units: algorithms.

I've been in the industry long enough to see it everywhere, and it's not necessarily a bad thing. Most people prefer tactics to strategy, and you only actually want a small percentage to be strategists anyway; too many chiefs and whatnot.

But when it comes to the technical interview, it's frustrating to deal with a tactically minded rather than a strategically minded person.

</comment><comment><USER74> > Companies don't hire people based on the knowledge they were born with.

Yes, this, so much.

> Don't get discouraged. There were multiple interviews I had where I didn't > know the solution and interviewers had to shepherd me towards a solution. I > still got offers from everywhere I interviewed.

And this, so much, particularly for those with imposter syndrome. You miss all the shots you don't take. If you're unhappy, and have done your best to find a way to happiness in your present role, start looking. Don't keep telling yourself "in another year I'll be ready" or "once I learn X and Y".

</comment><comment><USER75> I get messages from recruiters from some of these companies time to time and I always decline it. Because I know I can't get through the technical interviews without spending at least a month preparing for them.

</comment><comment><USER76> This only covers getting the interview and potentially succeeding at it.

It doesn't cover:

\- how many hours a week will be worked

\- how much stock options are on offer

\- what other benefits there are

\- what's the total compensation package like

\- what skills will be gained

\- what is the office environment like

Most of those "top" companies can be skipped over as places to interview at because they aren't very good on the above topics.

For example, interviewing at Facebook in 2018? _After the Cambridge Analytica scandal? (which was in March 2018 according to Wikipedia[https://en.wikipedia.org/wiki/Cambridge_Analytica](https://en.wikipedia.org/wiki/Cambridge_Analytica) )_ Even millions of dollars of compensation wouldn't be worth interviewing at Facebook during that time, not until they get their house in order. Even Google has privacy and ethical issues that make it a less-than-desirable place to work at.

Amazon also has a culture of working _a lot_ , maybe that's fine for someone just getting started in their software development career, but for most people, it isn't great to be working so many hours.

So 3 of the interviews didn't even need to happen; he could have concentrated on acing the other half of interviews (Apple, Yelp, LinkedIn)?

Also, fundamentally, he's interviewing for jobs where he will be told what to do and will either have to job-hop to get better salaries and better positions or spend 3-4 years _at minimum_ to work up the ladder. So selecting Apple, Amazon, Google, etc. is actually a _tough_ choice because you have to kinda plan for the next 5 years if you want to ensure you aren't wasting time and are actually advancing in your career!

It's a great start for an article but feels like a dime a dozen at this point (I've been reading about SV startups since highschool and Paul Graham's essay): _if you want to work at a top SV company, no matter which is at the top at the moment, you 'll have to jump through the algorithm interview questions hoops._

<comment><USER53> \- how many hours a week will be worked

~40 hours, but most of those big companies only care you get your work done so it can vary from person to person (less or more).

\- how much stock options are on offer

All companies mentioned are public, they're stock grants (RSUs) not options. If OP was an L3 it would probably ~40k/year, L4: ~75k, L5: ~150k.

\- what's the total compensation package like

L3: ~180k, L4: ~250k, L5: ~350k

\- what other benefits there are

\- what skills will be gained

\- what is the office environment like

These are all easily researchable, and most big companies are actually extremely good in these areas.

</comment></comment><comment><USER5> If I were giving a technical interview, after asking some basic fizzbuzz style questions, I would just ask a candidate to bring a personal laptop and "do something cool", i.e. show me what you're good at that is also valuable or useful. Could be spinning up a website, could be some cool parallelized data science or processing job, could be setting up a simple REST server infrastructure, as long as it's done _de novo_. Has anybody ever been an interviewer or candidate with this kind of interview?

</comment><comment><USER77> IMHO, this is the worst possible approach to finding a job. The opportunity cost of doing this over working on interesting problems and letting that guide you to pay seems extremely high.

Also, the focus on "top bay area companies" seems misguided at best. If you work more on identifying what type of work you want to be doing you might find there are GREAT opportunities in other regions or at smaller scale companies.

Maybe I am just not the type of person who resonates with this approach, but I cant imagine this being healthy for most people.

<comment><USER78> I'm with you. I get that people chase the resume builder companies, even years later it'll be a highlight on a resume that HR folks salivate over.

Outside of a handful of the big well-known bay area tech companies, I can't really see what many of them do that other non-illustrious companies do as well. If you are simply a web services developer I don't think I'd waste my time - there's not much you are going to build at Facebook that you aren't going to build at no-name company X.

</comment></comment><comment><USER79> Those are some awesome statistics: 6 out of 6 successes, practically unheard of. But, it sounds like you know exactly how to study for it: that whitebaording tip probably helped.

</comment><comment><USER80> I had 4 onsite interviews in 5 days once. It was brutal, so exhausting. I felt like a machine though. A lot of the questions were recycled (behavioral), and so were some of the tech questions.

I don't know how they managed to do 6 in 6 days, that's almost hard to believe. Most companies aren't so flexible on the days they can host you.

It would have been very interesting to see how the offers compared and which company they went with. I'd also be interested to see what the negotiations did for their final TC.

</comment><comment><USER81> The interviews are certainly difficult. I tried a few times years ago and never made it anywhere in the process, which was frustrating to say the least. I was working at a startup doing everything under the sun to keep the technical side of things going, but found that I was using so many different programming languages in my day to day job, that I couldn't whiteboard a reasonable solution to anything. It was shocking.

Congrats to the author for their success!

</comment><comment><USER82> I interview programmers. I would love to see a candidate who prepared like this, but it seems like everyone I talk to hasn't done any practice at all.

</comment><comment><USER83> Good to see Yelp being compared with giants :P

<comment><USER84> It's a publicly traded company with a market cap of $3B. It's certainly not tiny.

<comment><USER85> Hard to say it's a top SV company when the list lacks intel, tesla, netflix...

<comment><USER84> "I interviewed at six top companies" doesn't necessarily mean "these are _the_ six top companies". It means "these six are among the top".

<comment><USER85> Oh, yeah touche.

</comment></comment></comment></comment></comment><comment><USER86> What was your portfolio, I'm talking the existing examples of work?

> I was interviewing for my second job out of college with about two and a > half years of experience without any particularly notable internships or > employers on my resume; I went to a very small school that had zero known > software companies at their "career fair";

</comment><comment><USER87> So the hiring procedure is to optimize for people who adhere to the advice of a specific training manual that's not actually mentioned in the job posting? You just have to want to work there so much that you find out about it? What is it about that kind of candidate that makes them desirable? Obsequiousness?

</comment><comment><USER88> The problem is actually that due to the plethora of tools, languages, dev stacks and other variability, it's hard to diagnose software engineering skills effectively. So it makes sense to go back to basics and use things that everyone should know like data structures.

The issue is that this is taken to the extreme.

</comment><comment><USER89> Good effort. Personally after 20 years i simply have no motivatiob for this kind of game anymore. Gah.

<comment><USER90> clearly a bad fit.

</comment></comment><comment><USER91> If I subtracted <this article> \- <code> the vector would be almost exactly equal to <what I did to study for pathology boards> \- <pathology>, except in the path boards, there's no opportunity for "if you know more, show it."

</comment><comment><USER92> The article is, unfortunately, lacking in substance. For example, the author applied to 20 jobs and got interviews with 6. This is an incredible success rate. I'm guessing he had referrals from hiring managers and didn't just apply through a CTS.

</comment><comment><USER93> I wonder if it's possible to get a job at "FAANG" with just studying interview questions !? It would however be a proof that you are dedicated and willing to learn, kinda like a engineer degree, but one year instead of five.

</comment><comment><USER94> Way to go young'un! My advice would be, though it may seem attractive to work at the large behemoths, I'd advise you to go to a startup or a medium size company for greater satisfaction and less bureaucracy/politics.

<comment><USER95> Except FANG on your resume will do wonders for your career down the road..

<comment><USER96> The sad truth. Even the most mediocre programmer can get good roles with FAANG on their resume.

</comment></comment></comment><comment><USER97> That is still an impressive response rate given it sounds like the author cold applied w/o a referral. Generally it is much easier to at least get to the phone screen with a referral from someone within the company.

</comment><comment><USER98> I wonder if he feels like he's a better programmer after all that studying.

</comment><comment><USER99> Seems like it would make a lot of sense to outsource hiring interviewing and vetting. In this guy's case if he could have just been interviewed once and it probably wouls have suited all 6 companies.

</comment><comment><USER100> the problem of interview in large companies is no one want to take responsibility of recruiting the wrong guy. So they just use some "standard" process to screen and test the candidates. If they still pick the wrong guy, no one will be blamed, since other big companies use the same process.

And that is the main reason big companies like google, facebook can't make good products. Instead, they pay billions to buy successful products made by those who were rejected in their interview.

</comment><comment><USER101> Finally, a GOOD post about the tech interview process:

\- Upbeat and To the point \- Helpful relevant information \- Actionable advice with multiple references

Thank you Bay Area Belletrist!

</comment><comment> gamma-male And I thought he would give out numbers.

</comment><comment><USER102> Feels good to know I am on the right track. Mindset is a major difference maker.

</comment><comment><USER103> Does studying CLRS improve odds of succeeding at these interviews?

</comment><comment><USER51> it really is a different skill that you need to invest time in and practice. it sucks, but there are also plenty of high paying positions that have more practical interviews

</comment><comment><USER104> curious why the author _wants_ to work in the Bay area. does he actually enjoy the area, or is he excited about all his career opportunities there?

</comment><comment><USER105> I was preparing for a few months and interviewed at 0 of six top companies bhahaha. It seems like they are very reluctant to hire guys from overseas even if you are already in SV for interviews.

</comment><comment><USER106> TL;DR: [obvious] Preparation and practice works.

Some famous dead dude once said something along the lines of "by failing to prepare you're preparing to fail".

</comment><comment><USER107> Nice

</comment><comment><USER108> When I see engineers in their late 40s, 50s etc being harsh on algorithm interviews, I often wonder is it because they failed to keep up with changing times and are now playing victims. I mean, IT industry is nothing like what it was in the 70s and 80s when these people started out. Back then, it was still rather nascent and almost all business problems could be solved by gluing together existing tools (I was born in the 80s so I am only speculating based on what I have read). May be that's how it is even now. They were all essentially glue engineers doing some type of CRUD job. For them, the more tools they knew the better they were at their jobs. It is a bit amusing how this glue job is usually oversold as 'architecting' or 'system design'.

However, times have changed. Since late 1990s, the industry has become a lot more aggressive. While the CRUD shops exist, there are more and more companies who produce products that need engineering from ground up. Some of these are truly innovative but many simply reinvent solutions. The kind of funding these new age companies with NIH syndrome get allows them to afford quite a bit of reinventing of the wheel, a wheel that suits their purpose specifically. In this scenario, one needs to know fundamentals of CS, so having interviews of this nature is justified. The candidate must be aware of the sort of company they have applied to and know what to expect. There is no point ranting after they fail.

That said, I do have my objections to these sort of interviews. I am in my mid thirties and what I do is 50-50 in terms of over all architecture and low level details. I am currently looking for a change and every time I see ds- algo mentioned in the job description I feel disappointed.

Firstly, the cargo cult interviewing is quite enraging. I mean, just because a mega corp with NIH syndrome does tough algo-ds interviews because they arguably need it, the CRUD shops following suite is ridiculous. They are glue job companies with CRUD jobs that need glue job engineers whose need to know CS fundamentals will be limited to reading the label on the libraries they use, if they advertise the ds and algo they use in their implementation.

Secondly, even if its a NIH mega corp, I dislike how the interviews automatically filter out experienced good engineers. The sort of questions asked can only be answered by three kinds of people - recent graduates, those who have written ds-algo libraries at their job before, or those who study them just for the interview. I feel the third kind is a sham as its worse form of rote learning without applied knowledge. People like me who possess a lot of knowledge through real world experience on a lot of things and can build a lot of things from scratch, basically generalists, but can't write code to balance a binary tree on whiteboard in 5 minutes feel almost discriminated. Why can't where be a middle ground where we discuss the solution strictly qualitatively without having to answer it as if it were a college exam? I think this is how it ought to be for mid career engineers.

I have had my share of both kind of interviews that has left me extremely disappointed. I have realized that people like me are best suited to work at medium sized product companies whose name not many have heard of. I used to work at one such and had tremendous success, and I am exclusively looking for such now.

</comment><comment><USER109> At this point I've conducted dozens of screening interviews at a SV tech company, which is in the ballpark of the ones mentioned here. Interviewees choose the language they'd like to work in, and the questions are of the shape "given a list of data and a simple criterion, find an element of the list". This isn't exactly depth-first search: finding elements of collections that meet some criteria is, like, extremely common in day-to-day work.

It's really surprising to see how hard people fall down on even the simplest part of this exercise. People with lots of experience, people who work in big- name companies (including the ones mentioned here), you name it.

This experience has really caused me to soften my erstwhile stance of "tech hiring is broken and inhumane", because it really makes me suspect that no matter how simple or common the problem is, many people will fall all over themselves attempting to solve it. Even if the problem is nerves, how much can you really ease someone's nerves over a video chat?

This is basically the lesson of FizzBuzz.</comment>


Trend Micro blocks Posterous. Categorises it as Disease Vector - <AUTHOR> http://community.trendmicro.com/t5/Business-Security-Forum/Posterous-com-blocked-by-TrendMicro-OfficeScan/m-p/16496

<comment><USER2> Posting on their public forum on a Sunday night is not how to resolve this.

I've emailed a buddy at Trend Micro who can get this looked at.

<comment><USER3> Why not? It sounds like a very good step to me - you might want to shake the tree in other ways, but that forum is there for support.

<comment><USER4> I think the point is that emailing someone directly is a better way to get some action happening... especially on a Sunday night... especially if you are looking to have things fixed sooner than later.</comment></comment></comment>


Fiber UI Experiments - <AUTHOR> https://kver.wordpress.com/2015/07/02/fiber-ui-experiments-conclusion/

<comment><USER2> "Tabs on Side" is more accurately described as "tabs stuffed into the address bar."

This is what I think of as being "tabs on side", and it works _great_ on a widescreen monitors:

[https://addons.mozilla.org/en-US/firefox/addon/tree-style- ta...](https://addons.mozilla.org/en-US/firefox/addon/tree-style-tab/)

<comment><USER3> I'm a long time user of Tree Style Tabs also, but I wish it had a better autohide implementation. The current implementation performs poorly (seems to rerender the tree structure animations on every unhide), and isn't responsive to touch input for unhiding (although Firefox for Desktop just sucks for touch in general, so there's not a huge loss here).

Tabs on side with autohide is the best of both worlds, in my humble opinion. With static tabs on side, the loss of horizontal pixels is mostly inconsequential when running the browser maximized, but really hurts when you want to snap the browser to one side of the screen on a 1080p monitor (and have dev tools on the other side, for instance).

I wish some browser vendor would implement something like this natively to make the feature more discoverable. I'm sure it'll be a hit amongst power users and be a powerful differentiator. I remember Chrome having side tabs in development at one point, but it was scrapped for reasons I no longer remember.

</comment></comment><comment><USER4> Looks great. But really need a tab _sidebar_. This works really great on big monitors when you have many tabs open. Instead of stacking up in the top bar.

</comment><comment><USER5> There's room for a third browser that is 100% open source, built on desktop technologies (non of this HTML/JS nonsense) that takes privacy to absurd levels.

I wonder why one hasn't popped up yet, there are lots of people in the tech industry who would switch in a heart beat. I would still use Chrome for my dev work but the only URL Google would see is localhost.

<comment><USER6> >I wonder why one hasn't popped up yet

Because all the sites need html/js nonsense ?

<comment><USER5> You misunderstood. I meant browsers built with something like QT or .NET - another other than HTML and JS. See Atom's performance for why it's a bad idea to use web technologies for something that needs performance.

<comment><USER3> I've rewrote so many similar replies that I think I'll just copy and paste from now on. See here for more context:

[https://news.ycombinator.com/item?id=9813873](https://news.ycombinator.com/item?id=9813873)

> See Atom's performance for why it's a bad idea to use web technologies for > something that needs performance.

This sentiment, that Atom is not performant because it's built on web technologies, gets repeated a lot, but it's provably false.

Light Table and VS Code both use the exact same HTML/CSS/JS stack on top of Electron. Both are much more performant than Atom.

Whatever performance issues plaguing Atom are more likely caused by flawed architecture and/or lack of optimization. The underlying web technologies it's built on have been demonstrated to be capable of delivering highly performant text editors.

</comment></comment></comment></comment><comment><USER7> There's a gap in the market for a simple and fast browser that takes privacy seriously.

<comment><USER8> Firefox with extensions ?

<comment><USER7> Firefox has the code that secretly sends a hash of every file you download, with your IP and computer fingerprint, to Google for "verification". I only found out after a post about it here on HN.

But I'm interested, what Firefox extensions are good for privacy?

<comment><USER9> BetterPrivacy to manage Flash Cookies

Cookie Monster to manage regular cookies

HTTPS Everywhere

DNSSEC/TLSA Validator

RequestPolicy Continued to control third-party requests

NoScript for selectively allowing first-party JS, and keeping third-party scripts blocked when other third-party requests are allowed through RequestPolicy, and for its other always-on features like XSS protection, permanently forcing encryption for cookies set over HTTPS, etc.

µMatrix has apparently been available for Firefox for a few months now, and is probably a viable substitute for RequestPolicy, but not a complete replacement for NoScript.

<comment><USER10> Links to each of the mentioned (and available) add-ons below. Note that they each require a restart.

\- BetterPrivacy [https://addons.mozilla.org/en- US/firefox/addon/betterprivacy...](https://addons.mozilla.org/en- US/firefox/addon/betterprivacy/)

\- Cookie Monster [https://addons.mozilla.org/en-US/firefox/addon/cookie- monste...](https://addons.mozilla.org/en-US/firefox/addon/cookie-monster/)

\- HTTPS Everywhere - [https://www.eff.org/files/https-everywhere- latest.xpi](https://www.eff.org/files/https-everywhere-latest.xpi)

\- DNSSEC/TLSA Validator - [https://addons.mozilla.org/en- US/firefox/addon/dnssec-valida...](https://addons.mozilla.org/en- US/firefox/addon/dnssec-validator/?src=search)

\- RequestPolicy Continued ??? [https://addons.mozilla.org/en- US/firefox/addon/requestpolicy...](https://addons.mozilla.org/en- US/firefox/addon/requestpolicy/)

\- NoScript Suite - [https://addons.mozilla.org/en- US/firefox/addon/noscript/](https://addons.mozilla.org/en- US/firefox/addon/noscript/)

\- µMatrix - couldn't find a Firefox version

<comment><USER9> RequestPolicy Continued: [https://requestpolicycontinued.github.io/](https://requestpolicycontinued.github.io/)

µMatrix: [https://addons.mozilla.org/en- US/firefox/addon/umatrix/](https://addons.mozilla.org/en- US/firefox/addon/umatrix/)

</comment></comment></comment></comment></comment></comment><comment><USER11> I really wish that Microsoft and Apple would introduce tabbed windows for the entire OS with some good extensibility and customization options so that application developers aren't pressured into implementing window management as part of their application.

Having every application implement tabs differently is a frustrating experience. Those who've fallen in love with tiling window managers on Linux will sympathize.

</comment><comment><USER12> Does anyone happen to know if there is a pre-release? I couldn't find anything with a cursory Google search...

<comment><USER13> Seems like there is not: [http://www.phoronix.com/forums/forum/phoronix/latest- phoroni...](http://www.phoronix.com/forums/forum/phoronix/latest-phoronix- articles/811763-fiber-yet-another-web-browser-for-qt-kde)

Source code or GTFO was the response, and seemingly its all theory so far....

</comment></comment><comment><USER14> I'd love a web browser that uses an idea similar to vim's tabs and buffers.

Each tab would be a grouping of sites and you could use Ctrl+P to open a fuzzy search for sites in that tab.

Edit: And maybe there could be a mode where you fuzzy search the contents of the site too.

<comment><USER15> I think Vimperator/Pentadactyl with Panorama (aka Firefox's Tab Group) might fit this requirement.

Currently I have two Panorama groups, general and work. I can use Ctrl-N/Ctrl-P to switch between each tabs in the group, and can navigate to other Panorama group with Ctrl-Space. All of these are also accessible via Vimperator command b where it will list all buffers and I can filter or navigate to it by tab number of tab name.[1]

A dedicated browser that does this out of the box would be nice, though.

[1]: [http://i.imgur.com/svKZh23.png](http://i.imgur.com/svKZh23.png)

Edit: Or even Firefox with Panorama alone, since I think Firefox now jumps to tab when you search in the navigation bar.

</comment></comment><comment><USER16> Is the only innovation in how customizable the UI is? I guess it's way too hard to write a new rendering engine. With the existing ecosystem of chrome / Firefox / safari extensions it will be difficult to gain traction.

<comment><USER17> Note that this is a kde based browser. I got the impression the the author didn't even plan on porting it to non-linux OSs. Its not looking for mainstream adoption, it looks like its just trying to be the next kde web browser, one that integrates well with the kde desktop environment, like epiphany on gnome.

</comment></comment><comment><USER18> Really nothing new with tabs on the side. As I remember IE did this on IE9? It wasn't too good so they reverted it back.

</comment><comment><USER19> so another browser? what makes this one different? would it be safe from drive by downloads and other exploits? do you have a team and an army of QA to make sure new patches are released on time and make sure vulnerabilities don't linger?

</comment><comment><USER20> are the tabs done in QML? as a qml developer i would really love to be able to use that code if they are! any plans on sharing it?</comment>


IBM's Watson Now A Second-Year Med Student - <AUTHOR> http://blogs.forbes.com/bruceupbin/2011/05/25/ibms-watson-now-a-second-year-med-student/

<comment><USER2> When contemplating what jobs were going to be replaced by robots, I never thought of doctors, but it now seems quite plausible, even probable.

(Not that doctors are going to be gone completely, just that their jobs will be forever changed the way that CNC has completely changed the job of a machinist)

<comment><USER3> I wonder if doctors would become more of a service industry -- doing "patient care" (as customer service) instead of "disease care" now. Could be an improvement for the experience of receiving healthcare; definitely interesting to think about!

<comment><USER4> The doctors I know tend to think that it's at least 90% that way already (and has been for a while), at least if you're a primary-care doctor seeing patients in an office, rather than a surgeon or some kind of specialist. The typical patient isn't presenting with a rare disease worthy of a medical TV drama, and instead the main problems are patient-interaction ones: getting the right information out of them, picking treatments that the patients will be satisfied with and follow, figuring out what complicating lifestyle factors they might have, building trust with the patient and family members, etc. With the increasing influence of evidence-based medicine, where doctors are supposed to follow experimentally validated rubrics, the diagnosis itself is often semi-mechanical anyway even when done by a human.

<comment><USER5> Off-topic, but the phrase "evidence-based medicine" sounds very loaded. If not evidence, what was it based on before?? Serious question.

<comment><USER6> Theory. "We think that X comes from Y and the reasoning is ..." and then somebody else says the exact opposite, with an equally likely-sounding reasoning, and then you don't know what to do. "Evidence-based" means "shown to work - we may not know why, but at least it does".

On this topic, I recently realized the dangers in trying to propagate "evidence-based" throughout all sectors of healthcare. A nurse was complaining about a doctor questioning if a certain drug was safe for breast-feeding women (well for the child, actually). Indignantly, the nurse said "but this manual right here says it's safe! How much more evidence-based can it get!". To her, "the book says so" was "evidence". 'Evidence-based medicine' is no panacea - the principles maybe, but the hard part is in the implementation.

<comment><USER7> What's the alternative? Nurses don't trust manuals? Obviously as a society we should always strive for better science. But just like lady justice wears a blindfold, nurses should follow the manual.

<comment><USER6> Of course, that wasn't my point; my point is that when 'evidence based' becomes a mantra that is malunderstood by many, its use in inappropriate contexts devaluates the word and with that, the concept itself.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> As a specialist, I have to say: This makes me very glad I'm not a primary care provider. The doctors of the future will be evaluated on bedside manner and interpersonal skills - not on diagnostic ability or knowledge, because they'll all have access to Watson. Which is scary because smooth talking idiots can get into medical school, but get rapidly weeded out in the real world. It scares me that stupidity can hide behind this computing beast. And there will be situations where Watson cannot help (emergencies) where a doctor and his smarts are all he has to go by.

If Watson makes a wrong diagnoses and a patient dies, who will be responsible? The doctor? IBM? All it would take is one or two incorrect diagnoses leading to large malpractice suits to really put the medical profession on edge about this. Granted, many incompetent practitioners exist out there making all kinds of dangerous decisions, but this would really stick out in the public eye.

<comment><USER9> You don't really have to get the diagnosis correct, you just have to get the error bars correct, and then disclose all of that.

"Watson believes the best treatment is Foo. It has an X% chance of working, with a confidence interval of Y. The second most likely diagnosis is Bar, with an expected loss of Z if the diagnosis is incorrect. Which would you like to do?"

Besides, several specialties are already essentially classifiers (radiologists, anesthesiologists). If machines can't beat humans at classifying cancer from lung scans, they're not far behind. By the time Watson is in production, I bet a computer will be replacing radiologists already.

</comment></comment><comment><USER10> There is a saying in medical diagnosis: "When you hear hoofbeats behind you, don't expect to see a zebra". [https://secure.wikimedia.org/wikipedia/en/wiki/Zebra_%28medi...](https://secure.wikimedia.org/wikipedia/en/wiki/Zebra_%28medicine%29) Most patients have common problems that are fairly easy for experienced physicians to diagnose. So there is no point to entering a bunch of data into Watson just to get back the same answer you already know. But it could certainly be helpful for those rare edge cases where the physician can't figure out the "zebra", or where the patient hasn't responded as expected to treatment.

<comment><USER11> I know this might sound a tad heretical, but if Watson gets to be as good as or better than a doctor, do we really need doctors anymore?

The theoretical upper bound on Watson's ability is a lot higher than the theoretical upper bound on a doctor's, since it can make inferences based on a vastly larger data set.

<comment><USER12> Watson may be able to recommend you get surgery, but he won't be able to perform the surgery himself. He's only moving in on one aspect of medicine. Matching symptoms to diagnoses is the thing that machines are most clearly suited for in the entire medical profession, because of the vast volume of possible measurements and diagnoses, and because humans' various cognitive biases don't work well with the probabilistic nature of the work. That's still a rather narrow range of work. Humans will remain superior at performing medical work for quite a while. And until true Strong AI, humans will also remain superior for quite a large amount of gathering information that Watson requires, especially psychological measurements, and for making decisions that involve quality-of-life and other ethical considerations beyond just probability of success.

tl;dr Watson can, and will, exceed doctor's capability for a certain, somewhat narrow, range of their function. Doctors will still be necessary for the other things that they do.

<comment><USER13> Watson may not be able to perform surgery, but with "telesurgery" becoming a reality, maybe we can offshore it and still save 80%.

<comment><USER14> I've always wondered about this. What happens when the network goes down in the middle of open-heart surgery?

</comment></comment></comment></comment></comment><comment><USER15> This reminds me of some work I did a few years ago in the oil and gas industry. Not nearly as advanced as this, but we essentially read data from sensors in off shore oil rigs and ran it through our system. We had some pretty nifty pattern recognition stuff in place that would learn from previous data in order to become advanced enough to predict imminent sand breaches during drilling.

Given significant warning, it could save the drilling companies lots of money.

Katrina ended up severely damaging the rig we were using for testing and I'm not sure we ever went anywhere with it after that.

We did do some similar work for detecting trace metals in oil sample analysis records in order to recommend maintenance and detect possible future equipment failures.

Anyway, interesting stuff here. I'd love to play around with it.

 _edit_ Sorry about the double post. I think I got it removed. Connection was a bit flaky.

</comment><comment><USER16> It seems it must be a tool in a tool chain, rather than a physician replacement. Tests must be run, and follow-up questions asked. Also, computers take everything literally, they don't say "Well, that's not what your face is telling me." or think the patient is lying, delusional, or misinformed. You can ask the patient on a scale of 1-10 of their certainty, but again, there are other problems.

"What are these red dots?" Also seems non-trivial to diagnose. They can be tested, or more questions can be asked of them, but this seems like an awful lot of work to be managed by a computer alone.

It's a good, or even great thing to research, but it seems far from implementation, and that's just from an engineering perspective, imagine the legislative hoops that will need to be leapt through!

<comment><USER17> I could definitely see it not as a replacement for a physician, but as sort of a safeguard to check if the physician's decision regarding treatment for a particular set of symptoms matches up watson's previously learned data. Watson wouldn't preempt the physician, but rather raise an alarm if something looks out of the ordinary.

</comment></comment><comment><USER18> It looks like Watson is shaping up to the 21st century version of Mycin (<http://en.wikipedia.org/wiki/Mycin>).

</comment><comment><USER19> As a physician I doubt this will have much of an impact on the cost of health care. The limiting factor here is not technological but cultural. In the majority of patient encounters a diagnosis has either already been made or is obvious. In principle workers could be trained in the basic clinical skills required in a short period of time and several supervised by a single doctor. There are several reasons that this does not happen to a great extent: (i) Patient's prefer to be assessed by a fully qualified doctor (ii) Medicolegal - who is responsible if a mistake occurs? (iii) Trainee doctors on a per hour basis are often cheaper than employing other workers to perform the same tasks. (iv) For whatever reason Doctor's tend to see patients faster and make decisions more rapidly than other staff e.g. nurses performing the same tasks.

</comment><comment><USER20> I can see Watson being very helpful to Sergey in his pet project - <http://www.nytimes.com/2009/03/12/business/12gene.html>

</comment><comment><USER21> More details: [http://www.ibm.com/developerworks/industry/library/ind- watso...](http://www.ibm.com/developerworks/industry/library/ind- watson/index.html)

</comment><comment><USER22> _"Answering the question "What's wrong with this patient given these set of symptoms and this family history?" turns out to be a natural fit for the computer."_

Well, wake me up when the natural-fit question becomes "What's wrong with this _planet_ given these set of _eco_ -symptoms and this _social_ history?"

I'd really like to see what the answer might be.

A Post Scriptum Edit/Addition Below ;)

 _The IBM Watson system that recently won on Jeopardy is thoroughly probabilistic and statistical_ \--Norvig (see news.ycombinator.com/item?id=2591154)

In a future far, far away when humanity will have gained experience with millions of planets, stars, and human colonies and space-castaway societies - _maybe then_ \- IBM Watson will be able to answer my question...

 _Submerging in cryogenic sleep... see you later... <yawning>_

</comment><comment><USER23> This is cool. When I was at IBM in Austin last week, one of the IBM-ers mentioned that one of the first areas they hoped to use Watson was primary care. Amazing. I think I'd rather go to Watson than most GP's.

</comment><comment><USER24> Put it on a public website.

</comment><comment><USER25> Is this the beginning of companies using web 2.0 tech to solve 'big problems'? Watson might be the first step towards using the social graph and big data for things other than selling more widgets.

I'm keen to see how medical professionals start using this tool though. Professional pride and the immense amount of inertia present in medicine could hamper adoption. Worse yet, I can only imagine the level of legal liabilities using a system like this could incur. I'd love to see this adopted and think it could radically reduce costs and increase productivity in the medical field, but I'm going to resign to simple cautious optimism.

<comment><USER26> There isn't too much "Web 2.0" tech behind building something Watson. Perhaps the use of ontologies and semantic web datasets, but in academic circles at least that's informally referred to "web 3.0" (that, too, is a bit of a misnomer because Cycorp has been building semantic ontologies for a long, long time).</comment></comment>


Enterprise jQuery: Great new resource for top-notch jQuery content - <AUTHOR> http://www.enterprisejquery.com First posts on Configuring UI Widgets, Creating Your First Plugin, and AJAX Patterns <comment><USER2> I'm beginning to think text-shadow is the new <blink>. Why on earth would you put a text-shadow on body text?

<comment><USER3> Not at all @wrs. I develop on a Mac, and in Chrome and FF 3.6 on Mac the text- shadow seems to _help_ readability, but I just took a closer look on Windows and I can totally see how it is a distraction. (The font rendering and thus text-shadow rendering is quite different) I removed the text-shadow from the paragraphs and have updated the site.</comment></comment>