Apply again next time you are looking for a job, if Amazon and Google really are the sort of companies you want to work for.
Think back on your interviews and figure out what you did wrong, then study up on that.
And next time, prepare very carefully, with a focus on algorithms and data structures. I would use this book, although it's a bit dated now: https://www.amazon.com/Data-Structures-Algorithms-Alfred-Aho...
This one may also be useful: https://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp...
1. Any good company will have a high false negative rate, because it's more expensive to hire a bad candidate than reject a good one. That's why the big ones (Amazon, Google, FB, etc) will keep re-interviewing you for the next few years. They know they make mistakes and want to try again under new circumstances.
2. If you actually are unqualified right now, you're very close to being qualified! If you've made it to onsite interviews then you're doing better than the majority of candidates. Most people are rejected at or before the phone screen. You're close, give yourself another year of improving your craft and interview again.
Background: I worked at Amazon, and conducted interviews while there. I've conducted lots of interviews at a startup, I just interviewed at Google for the third time and finally got an offer (now 6 years after graduation). At all places, we optimized for false negatives.
As I usually do in these discussions, I would like to register that I think this is a load of crap.
First, a good company will have a high F-measure. Optimizing your hiring process for precision and ignoring recall is just a sign of having a really deep, really talented applicant pool (or being deluded about the depth and talent of your pool).
Second, when the costs of a bad hire come up lots of "cans" get thrown around without any grounding in reality. I view "optimiz[ing] for false negatives" the same way as I view security theater or overprotective parenting: attempts to stave off very low probability negative events that end up costing more than the events themselves would. Again, with a deep and talented pool this might not be the case, but if you are large enough to have that you are large enough that the damage a bad hire can cause is trivial to your business.
Your analogy is poor: Hiring a bad programmer is an extremely high probability event, even in a broad pool of candidates as would apply to a high-end company like Amazon, not a low priority event. There have been studies dating back to the 70's that show a 10-20x skill difference between average and great developers. If you're going to pay roughly the same for a 1x as a 10x developer, wouldn't you want the 10x? So they tune their hiring process to skew that number as high as possible.
OP above may be an exception who fell through the cracks, not really ragging on them in particular.
I did know at least one person who applied to Amazon and who was rejected -- and rightfully so, in my opinion. His skills were sub-par, and the interview process detected that. Most others that I worked with while I was at Amazon were also above average; people I've encountered at other jobs have been mediocre by comparison, with the exception of a number of game developers I know.
I did nothing of the sort. In fact, I am arguing that your hypothetical negative output employee is much rarer that some people think.
> Your analogy is poor: Hiring a bad programmer is an extremely high probability event, even in a broad pool of candidates as would apply to a high-end company like Amazon, not a low priority event.
I have seen no data to support this. My personal experience does not support this.
> There have been studies dating back to the 70's that show a 10-20x skill difference between average and great developers. If you're going to pay roughly the same for a 1x as a 10x developer, wouldn't you want the 10x? So they tune their hiring process to skew that number as high as possible.
Citation needed. I have certainly seen this bandied about the Internet quite a bit, but the best the citations only claim a 10x difference between great and terrible developers, and even those studies are likely flawed.[1]
> I did know at least one person who applied to Amazon and who was rejected -- and rightfully so, in my opinion. His skills were sub-par, and the interview process detected that. Most others that I worked with while I was at Amazon were also above average; people I've encountered at other jobs have been mediocre by comparison, with the exception of a number of game developers I know.
I'm not saying people shouldn't be rejected or that bad developers should have jobs at places like Amazon. I'm saying that optimizing for false negatives because you are paranoid of false positives is an anti-pattern and that there are better ways to deal with false positives.
[1] http://blog.fogcreek.com/10x-programmer-and-other-myths-in-s...
The canonical reference is here: https://en.wikipedia.org/wiki/The_Mythical_Man-Month#The_sur...
My personal experience doesn't support this either. There are many different kinds of skill and it's really a management issue to find the right roles for people, and to lead them in a healthy, humane, productive, and profitable direction.
There is much to be said for being a solid programmer who can sketch out a system; there's also a lot to be said for being an average programmer who is great at taking direction and methodical. Most companies need both types of engineers.
The arguments used by people at certain tech companies are like saying "it's so hard to become President of the United States that anyone who becomes president is obviously the cream of the crop'.
Imagine if we said the same thing about doctors or lawyers, or really any other profession. We all know that such generalizations are total BS.
Mine does. Sometimes all the work done by a new developer ends up needing to be ripped out and redone. I've had that happen to me in the last year (a developer with high credentials and who answered the questions well!), and I just had a friend show me a developer who would copy-and-paste code from StackOverflow into different places until the result was what he wanted -- leaving all of the other references because he didn't really understand WTF he was doing.
>10x difference between great and terrible developers
It's 10x between great and average. The studies were done on actively employed developers at large companies, and also showed the 10x developers produced more easily readable code that was better optimized.
>Citation needed. [1]
[1] https://en.wikipedia.org/wiki/The_Mythical_Man-Month#The_sur...
How did that code get in there in the first place? Does your or your friend's companies not do code reviews, particularly for new team members?
> It's 10x between great and average. The studies were done on actively employed developers at large companies, and also showed the 10x developers produced more easily readable code that was better optimized.
> [1] https://en.wikipedia.org/wiki/The_Mythical_Man-Month#The_sur....
The relevant quote:
> Brooks muses
I have the book. I've read it. Brooks has nothing other than conjecture on the subject. As Laurent Bossavit said in the Fog Creek interview,
> When I looked into it, what was advanced as evidence for those claims, what I found was not really what I had expected, what you think would be the case for something people say, and what you think is supported by tens of scientific studies and research into software engineering. In fact what I found when I actually investigated, all the citations that people give in support for that claim, was that in many cases the research was done on very small groups and not extremely representative, the research was old so this whole set of evidence was done in the seventies, on programs like Fortran or COBOL and in some cases on non-interactive programming, so systems where the program was input, you get results of the compiling the next day. The original study, the one cited as the first was actually one of those, it was designed initially not to investigate productivity differences but to investigate the difference between online and offline programming conditions.
Both my anecdotal experience and independent research into the subject corroborate what Laurent is saying in this interview.
All I know is that I was a better developer at 15 than most professional developers I encounter today, and I'm much better today than I was at 15.
I had no Internet to search for answers. I had no debugger. After I made a change to the game I was writing, it would take 30 minutes to run it (off of a tape). I had to reinvent the idea of linking because I couldn't edit all of the game in the memory I had available; I'd hand link the (ultimately four) app modules by setting constants. After running my game, it would take me 30 minutes to re-load the editor/assembler app and load up one of the modules of my game, so I learned to take careful notes of where things would fail so that I'd be able to fix them in the next editing cycle, and I learned to read the code and understand exactly what it all did and how it all interacted in my head so that it wouldn't break at runtime.
I found and fixed all the bugs in that assembly language game, and it was quite fun at the end, if not very deep (think Space Invaders crossed with breakout, with moving breakout bricks). It was more responsive and smooth in animation than many games are today, and it had no OS support: I was writing directly to the hardware. Hardware that totally sucked for doing games on, by the way.
I'd say 80% or more of professional developers today would have thrown up their hands at the assembly language manual and the hardware reference guide that I used to develop that game. My prior experience was in writing BASIC.
When I do web development or NodeJS or C++ or Python or Go today, everything is so easy by comparison that I can quickly put together much more sophisticated architecture in a few hours than a typical developer can do in weeks. The bar is much lower; people can accomplish simple tasks without much mental effort, and so many professional developers never learn the advanced design or debugging techniques at all.
There was a time when I hired a highly recommended team in the past few years, and they took easily 5x longer (and therefore cost 5x as much) as they should have based on the complexity of the problem I gave them. Painful lesson.
More importantly, I can design systems that are easy to use and understand for other developers, and I've received many compliments on the design of the most popular game library I wrote. You can see some of the game credits here [1]; there were over a hundred published games based on that library. At least half of those were developed by people who used the engine because it was free and good, not because the company I worked for was requiring it.
So I don't need external proof that 10x developers exist. NOTE I'm not claiming to be uniquely brilliant or a unicorn or a genius: I've also met many others who were easily as good or much better than myself at development, at Amazon and at other companies. But I'm at least in the top 5% if not the top 2% of developers, and at my level I really can do things that most developers just can't, and for the tasks an average developer can take on, a top developer can produce code more quickly and of better quality. Except for CSS. I hate writing CSS and I'm sure a CSS expert could write it more quickly than I can. :)
So I tend to speak out in protest at the idea that 10x developers don't exist. Being egalitarian and denying the skill range is popular because junior and average developers outnumber the experts. But it doesn't reflect the full reality. Just maybe 80% of the reality.
[1] http://www.mobygames.com/developer/sheet/view/developerId,13...
His company didn't do regular code reviews, no.
It's a game company. Game companies frequently don't follow the same set of best practices common in other industries. In part because typical game developers are a notch above app/web developers, though in part because it's just a lot more "wild west."
Too close to home
> people I've encountered at other jobs have been mediocre by comparison
> people I've encountered at other jobs have been mediocre by comparison
> people I've encountered at other jobs have been mediocre by comparison
> people I've encountered at other jobs have been mediocre by comparison
Here you are flogging the horse of Amazonian exceptionalism, and your own, of course, whilst simultaneously deriding most of your current and former co-workers at other businesses as merely average.
This raises an issue that is just as important as technical prowess: emotional intelligence. I'd personally green light ten or twenty 'inferior' ( by your standards ) developers over 1 technically superior ( again, by your standards ), but arrogant and morale-destroying, primadonna.
https://en.wikipedia.org/wiki/Prima_donna
Sorry, but technical chops aren't everything. Soft skills matter just as much.
I specifically excepted game developers because they're an above-average bunch, but yes, I'm merely relating the facts as I see them. And honestly I think, based on the kind words I've received from many coworkers over the years, that many would actually agree with my appraisal, and would report that I was helpful in teaching them better ways to accomplish things.
>This raises an issue that is just as important as technical prowess: emotional intelligence. I'd personally green light ten or twenty 'inferior' ( by your standards ) developers over 1 technically superior ( again, by your standards ), but arrogant and morale-destroying, primadonna.
I'm assuming for sake of civil discussion that you're not implying that I am the arrogant, morale-destroying prima donna, because that would have been rude and confrontational.
>Sorry, but technical chops aren't everything. Soft skills matter just as much.
Technical chops can get you 10x-100x-infinitely more productivity. I've frequently accomplished things in minutes that other developers have been blocked on for weeks. Extremely poor soft skills can disqualify an otherwise good developer, sure. I'd block the hiring of someone who was excessively arrogant, abrasive, or otherwise a harm to morale.
But many really good developers are actually really polite and helpful in a team setting -- I've worked with multiple developers that fit that description. And good technical chops are much more rare than decent soft skills, so the former is what's grilled most in an interview. The soft skills show through as well, though, and can equally get you disqualified.
It does depend on the domain whether you really need a great developer. Presumably you work in a domain where you can get away with average developers. That's fine, you can get away with paying them less, go for it.
But that attitude is a big part of why most companies' servers seem to get hacked sooner or later. Note that you don't hear about huge security breaches at Amazon revealing tons of private customer data, despite the fact that they likely are the top target for any exploit that could be used against them.
And part of that is, in fact, that they have a higher bar for developers.
Isn't part of good hiring practices to determine who is a good candidate? And beyond that, if the candidate is "bad", doesn't the company have the ability to work with the now employee to improve, and if things don't work out, to part ways? It seems like sending someone through endless loops of "maybe" interviews is a waste of both parties time.
This applies to interns too, correct?
There are plenty of non-unicorn places that are awesome to work at. Maybe focus on some startups and other places, you don't have to take the job if they offer you. You are just as much interviewing them to see if it's a good fit.
The other thing too is the more you interview the more comfortable you are with it. You have already experienced probably the tougher interviews out there. Keep at it and you will land somewhere you love.
I know when i am doing an interview I am prepared and make sure I know exactly how I am going to structure the interview and have read over the persons resume. I can't say the same for the places I have interviewed.
And on the next day: I spent few hours talking about about programming to programmers. That done, I wondered about the town some more, eating local food and sipping foreign wine.
Damn! What a waste of a holiday.
The next day I had about five or six hours of the toughest interview problems I have ever encountered and they had to end it a slightly early to make sure I had enough time to get back on the airport and make the flight they had scheduled for me to get back. About the only thing I got to experience besides Silicon Valley traffic was a meal at In-N-Out Burger (which was delicious, like always).
I still enjoyed the experience, mind you, and Google campus was really cool to see in person, but that didn't exactly feel like a holiday. I imagine most people's experiences would be more like this and less like your singular holiday-like experience.
They just have the luxury of being very picky and rejecting people for no real reason. There are plenty of great tech companies out there, I promise you.
It's also important to understand that there are many great companies out there. In fact, I think Amazon has a fairly controversial reputation as an employer for programmers, so you very well may have dodged a bullet. I'm really not exaggerating on that either to try to make you feel better. I've legitimately heard lots of horror stories about Amazon.
Informal stats I've seen say that the big players still reject 80% of their onsite candidates - you're not a loser, it happens to a lot of people.
I failed 3 in a row in one week once - not fun. I know how you feel. I was pretty bummed for a few months and it took me a while to restore my confidence.
For me, my progression with tech interviews was definitely non-linear. I sucked at them and felt terrible and incompetent, and then suddenly things started to click very quickly and I'm alright at them now. The only real way to get better is practice.
But that perspective is hard to see right after being rejected. The worst thing you can do is let that drag you down into a self-fulfilling prophecy, unable to meet the plenty of opportunities that will come your way.
IOW, don't let it get you down. If you feel the need, continue studying, working hard, learning new stuff, etc. as that can only help you in general. But there's no need to feel like a loser.
I'm in Dallas. I get hit up by someone affiliated with Amazon once every couple months, Google and Microsoft about once a year, and Facebook occasionally. Getting a company not listed in the previous sentence and not located in DFW to acknowledge my existence, let alone interview me, is like pulling teeth. Based on OP's visa situation he may be in a similar boat.
I don't know the source of this quote, but it was repeated by a physicist in the documentary "Particle Fever".
No matter what happens, I'll still be breathing tomorrow, unless I die in which case it doesn't matter anyway.
I approach everything in life under the assumption that I'll reach my goal. Some things go wrong, of course, but mostly the world gets out of my way and lets me pass.
A "failure" means that your success doesn't lie with them. Move on.
Also, take some time to think about WHY you have the goals that you do. Are they really what you want, or just something that other people told you to want? The world is full of successfully miserable people.
Up-voted so I feel less guilty stealing that phrase!
To read way too munch from your comment. "that sounds like a genetic advantage" is a fixed mindset way of thinking.
Some people think differently to you and I, really differently, and have no ability to empathise with others. Not being loved as a child is no genetic advantage though.
I like this one too.
You shouldn't feel bad about it at all, but I know the feeling- it sucks, especially if you really got your hopes up. However, the fact that you got those interviews reflects very well on you, and the fact that you didn't get the jobs does not reflect poorly on you.
Just going through the interview process is a really useful learning experience. It builds confidence for future interviews and gives you a feel for how you might want to further develop your professional and/or interpersonal skills.
Sometimes job-seekers get lucky and get an offer right away. Sometimes people interview at 10-20 different companies before it works out. All you can do is not take it personally, learn what you can from each experience, and keep trying. If you keep trying you are guaranteed to eventually succeed (well, on an infinite timescale :), but if you give up you are guaranteed to fail immediately. Good luck!
But (and I am no expert, and I have never come within a million miles of this level of employer), I decided decades ago that anyone who didn't have the brains to hire me was someone I didn't want to work with. No, really - what you see and what you think you want might not be what you need, and a different employer could be a better match.
I've found in my life that unexpected and unanticipated opportunities usually turn out better for me than ones I think I ought to pursue. Maybe that's only me, maybe not.
And finally, as others have said, interviewing gives you more practice at interviewing, which makes you better at interviewing, and more likely to make it through the inevitable random fluctuations that reject qualified candidates. Randomness is not your fault, but practice at recognizing it and dancing around it will help you.
Finsight (New York) www.finsight.com
About Us: 3-year old NYC-based enterprise fintech startup. We create web-based tools that help investment banks use data to automate workflows and sell fixed income and equity securities. You can very loosely think of us as an Angelist for institutional investors. Every month, $10-20 billion of financings are exclusively marketed through our platform (Angelist did $150 million in 2015). We work with all the leading bulge bracket investment banks (Goldman Sachs, Morgan Stanley, Bank of America, Citi, JPM, Barclays, etc) and hundreds of the nations leading corporations like Fannie Mae, Freddie Mac, Ford, Hyundai, etc. We are bootstrapped and profitable and believe we are in a very unique position to significantly impact an extremely valuable segment of Wall Street (new issue offerings).
What We're Looking For: Full stack is ideal but we are flexible. Most important for us is someone who enjoys coding and is self-organized. We are a very lean team and need a lot of help - we don't have bandwidth to do a lot of hand holding so we need people excited about taking ownership over their work. We have great clients who are supportive and we have a roadmap that can easily get us into 2017. We know what we need to do, need help doing it...
Stack: Front-end: angular and express Backend: laravel, php, node.js Database: MYSQL Deployments: chef and docker Interview Process: 1. Resume screen 2. Phone screen with hiring manager 3. Onsite interview with team (expect some technicals) 4. Done.
Contact: leo@finsight.com
Of course, they usually don't tell you the reason in your case, so all you can do is guess - if you think you bombed the interview then study what you missed, and if you don't, chalk it up to randomness.
Not sure about Amazon's hiring process but from what I hear, you're better off not working there.
There are all kinds of reasons companies reject candidates. A lot of them have nothing to do with your competence.
Maybe they had a better or cheaper candidate come along. Maybe the open position was closed. Maybe they thought you were overqualified. Maybe the interviewer(s) had a bad day and rejected everyone. Maybe one of the interviewers is an asshole and vetoed your candidacy over the objections of everyone else.
You have no idea of knowing what happened, even if they did give you feedback. They are certainly not going to tell you that everyone but the asshole wanted to hire you.
You might be Amazon top 1% tomorrow. You might be Facebook top 1% right now. You might have been Uber's top 1% yesterday. You might be everything a founder somewhere is looking for right this second.
Hiring is not an objective game, never read anything personal into it.
Come back mentally protected.
Big companies have fixed interview processes that are designed to weed out false positives at the expense of having a lot of false negatives. Startups by and large don't know WTF they are doing when it comes to hiring. Companies in the middle deceive themselves into thinking they have a process when they really don't know what they're doing. Some companies experiment with their hiring process, which is a lot like not knowing what you're doing except they get usable data out of it afterwards (at the expense of you, the applicant). And some companies don't even have a clear idea of what roles they need to hire for when they bring you to a full loop. Twice I've received interview feedback to the effect of, "we like you, but we can't actually move forward with the role we interviewed you for because we lost budget/want to rework the role requirements".
If you're interviewing with places like Google and Amazon, you're in a career that pays six figures. A six figure career isn't treated like a five figure career, and tech is a pathological example of this. Most six figure careers--doctor, dentist, longshoreman--have some sort of barrier to entry where you go through years of hazing, high expenses, and unreliable income. Other six figure careers are really just the top of a five figure career. With tech, I don't know how it is if you have some sort of marker that you've already been through years of expensive hazing (i.e. a degree from MIT or CMU) but for a guy like me who went to a mid-rate state university, there's the same instinct to have a high barrier to entry but instead of making that barrier to entry something that you can spend a few years climbing through, it's a gigantic wall that you get one chance to jump over. And that wall is the interview process.
Ponder your next move and come back stronger.
That said I don't think any advice here will really help. I've been in a similar position years ago and you have to experience actually getting into one of these places and then realizing everyone's just the same as you to feel better about this. I'm in the opposite situation to you now and trying to get out of a large tech company and do my own thing. I would say keep applying if this is what you want and keep practicing the interview style questions - personally going over algorithms and data structures without any other motivation besides interviews is hard for me. If you can work on something of your own, even a game or something not important do so, because when you finally do get in to one of these companies, you might find out (perhaps sooner than you expected) that you want to get out and having experience doing your own thing might make that easier.
Developer interviews are similar to the SATs/GREs/any other standardized test. It's not a test of your general ability so much as it is a test of your ability to do well on a standardized testing format. And in general, the best way to ace those is to practice interview problems a lot.
Go find a small-shop, where you can learn and grow. Where they will appreciate your contributions more. And you'll have greater impact.
Be so good they can't ignore you. Incidentally, that path will also make YOU a future prime target for the Big Guys. Google especially is fond of acqui-hires > > http://blogs.wsj.com/digits/2015/12/23/bebop-was-more-than-a...
I can't tell you not to feel badly about it, but I do want to tell you that 4 years on, it doesn't matter whether I would have been hired by Amazon. In fact, I probably would not have my own company if I had been given an offer.
I'm assuming you're a software engineer....
You didn't say anything about your skill level or experience, or what level you were looking for. Interviewers are often given a target level to interview you at, and if you are not at that level you will get low marks (though better interviewers will often suggest you be hired at a lower level).
You should have a pretty good idea of how you did on each question. Did you check edge cases? Solid test coverage? Did you ask clarifying questions? How good were your answers? If the obvious answer is O(n^2) then there's an answer that is O(n log n). If the obvious answer is O(2^n) then there's an answer that is O(n^2). Look for infinite loops. Memoization. Recursion, and unrolling that recursion into a loop.
Don't get discouraged. You were just handed a study guide for your next interview in 6 months.
Remember to ask questions about the company. Even if you know the answers. An interviewee that's asking questions looks more engaged and is more likely to get more attention. I like asking questions like "What's the best/worst part of working here?" Things that it's legit to ask more than one interviewer, in case they talk and share your questions.
Acting calm and relaxed, and being able to hold a conversation helps a lot. You're not just interviewing for your ability. You're going to be part of a team, and if your interviewer can't imagine working with you, that may translate into a pass.
Learn something new. Disjoint sets are a great tool for interviews. I've taken questions that the interviewer thought was O(n^2) and solved it in O(α(n)) which grows so slowly it might as well be O(1). I boned up on proof by induction before my Google interviews and it helped carry me through.
Practice interviewing. I went on half a dozen interviews to prep for my interview at Google. I occasionally interview even if I'm not looking. I've had 10 jobs (I used to jump around a lot) and I've probably gone on well over a hundred interviews. Most were practice ones I didn't particularly care about, some were practices that turned into jobs. Very few were specific jobs I was working to get.
You might have just gotten unlucky. http://steve-yegge.blogspot.com/2008/03/get-that-job-at-goog... has a good synopsis of the stress and dejection that not getting hired holds, particularly at Google, and how you might have just happened to get the wrong interviewers.
Typing is a different noisy channel than speaking.
Keep in mind that in most cases you will not be given the real reason for rejection (mostly as a lawsuit-avoidance measure) but something vague like "not qualified" (which can mean anything starting from a wrong haircut to the interviewer bearing a grudge against your school) or "decided to go with another candidate". Heck, I've been told by an employer that they'd found an internal candidate for the position only to find out nine months later via the grapevine that the rejection happened the exact day a hiring freeze with "rightsizing" had been instituted.
You're not a loser, otherwise you wouldn't have made it in there in first place. What it means is that on this particular day, the stars didn't align for you.
They posted job descriptions for two senior-level programmers, both positions requiring Masters degrees.
These two 'job opening' announcements were placed in the break room so everyone saw them.
The pay? $65,000 a year.
The steps to hire an HIB require: - the employer make a documented effort to hire a U.S. national first - by posting a 'Job opening' - by interviewing
A lot of times, tech firms are hiring H1Bs from India etc.
Right? Just take a look at the over-representation of foreign nationals, compared to U.S. college grads/citizens, at the tech firms you've worked at.
When I saw "$65,000 annual salary" well my goodness. Do you think they'll find someone, a U.S. national, to take that position? No.
It's an unhappy truth, but if you know you're qualified, not too old, and felt a lot of rapport with the interviewers, and did well on the tech part of the interview, and don't get an offer, the firm my not WANT to even be doing that interview but they must before hiring an H1B.
I am like, you can't find a candidate with those rates. So, the story goes on: not enough qualified people. Tech labor is going the route of restaurant/construction industries: they are always people available for the rate you want to fill, but they are on H1B or some farm visa, illegal, etc.
There is no penalty to you for re-applying to different jobs at Google or Amazon, and you may find a team for which you are a better fit, you may have better interview luck, or you may be evaluated against a less competitive pool. In the meantime, get a different job and don't let your skills rust.
For Amazon, this is not a correct conclusion. Having done well into the low-hundreds of on-site interviews for Amazon, I do not recall a single instance of a debrief discussion comparing one candidate against another. At Amazon it is simply a matter of making the bar or not making the bar. While it may seem like you are interviewing for a specific position, in reality at Amazon you are interviewing for a given role and level. Generally the level is targeted based on the candidate's experience and if the candidate barely doesn't make the bar but the interview loop agrees they have growth potential they may get an offer at one level lower, though this is not particularly common. Amazon will extend an offer to any candidate who meets the bar regardless of how many good candidates are interviewing for a specific "opening". Between the company's growth rate and the high attrition Amazon needs more new hires than can be found that meet the bar.
I reject the notion that Amazon's hiring practices are neither implicitly nor explicitly comparative. The notion of hiring candidates that "raise the bar" is explicitly comparative to existing employees. That said, I do not know the details of Amazon's hiring philosophy. I do know that internal promotion within Amazon is quota constrained and therefore implicitly comparative.
You are absolutely right on that. The core question that needs to be answered at each interview debrief is "when the next review process roles around, do we believe this candidate will end up in the upper half of the stack rank for their role/level?" It's a little more complicated than that as Amazon's stack rank is a two-dimensional rank that looks both at contribution-in-level and perceived growth potential, but in the end it's still a judgment call of "is this candidate better than half the people currently in this role."
Try applying for an internship if applicable, the barrier of entry is lower.
Don't get discouraged, I got rejected 4 times at the phone interview level before getting an offer. You should feel proud for going on-site with Google and Amazon already. Try to reflect on your mistakes during those 2 events to make the 3rd on-site interview a success.
Did they tell you why you didn't pass the interview? If so work on that, if not, know that there are tons of companies out there that will want to hire you.
I never applied for anything like Google, but I had companies that wouldn't take a second look at my application and companies that spent the entire interview stage trying to wow me to sign the employment contract. Most companies (probably in particular Google) have an employment pipeline that has _nothing_ to do with whether you would be a good employee.
Don't be discouraged by a few companies choosing not to hire you.
Companies I've worked for in the past have hired far less than 50% of the people they brought in for interviews. It's like a blind date, you know a little about the person, but there's still a lot of missing information so not getting the job is the norm, not the exception.
That said, asking for feedback on what you could improve might provide you with insight. Also, review your resumé, do you think the companies expected a competency you don't yet have?
Head-up, there are lots of big companies out there. Some, like Google, still have a lot of choice in hire, while others (Yahoo comes to mind) can't be quite as picky! :)
I've learned at least with Google, sometimes you get bad luck with the draw...and in my case, I had some quite bad luck with recruiters who weren't the greatest communicators. One technical phone screen was waived due to the team's familiarity with my work, only to be rejected as not what they were looking for for that specific role.
Also, sometimes rejection is a blessing. The important thing is to make the most of your experiences.
Also, I had a typo - I didn't mean recruiters, I meant interviewers.
2) If you can get feedback from friends who work at either on how the interviews went, and specifically what they found unqualified about you, you can try either remedying those deficiencies (which might be real, or might be perception -- different ways to fix), or you could apply for roles/companies where those matter less.
Amazon and Google are pretty different, aside from both being "big", so it would be helpful to know what you liked about each and their roles.
Treat every interview as a learning experience for the next.
One thing you can do when you start looking for jobs is to accept interviews for roles you are interested in but wouldn't feel terrible turning down. This will give you some experience before you interview for the roles you deeply want. Interviewing is a skill, one that I've found needs to be relearned for every job search.
I've never in my life (nearly 30 years in salaried dev/tech positions) had to do whiteboard coding in a job interview.
You can find a lot of interesting with outside of them. Even better, innovative work is being done right now by a company you never heard about before
Realize that even if you're doing well, interviewers can still perceive you poorly, and the process is weighted to reflect how much more painful a bad hire is than rejecting a good hire.
Practice is going to improve your performance and put you at ease with the process, and give you a better understanding of when your performance was not up to snuff versus just not meshing with how the interviewers wanted to interact with you.
As far as feeling line a loser... Interview more. I'm sure there are plenty of smaller shops that will throw plenty of money and praise at you if you need a ego boost.
Interviews are great. They go both way. Never forget you are also interviewing them!
Also being employed, going to interviews should not be considered illoyal. Never lie, be transparent when you have to be---
Also, both companies have quite different styles of interviews (whiteboard programming aside). Really pay attention to what the recruiters suggest to study up before the interview.
Seriously though: get involved with a local users group & meet people interested in your language/stack of choice. Get to know a bit about the smaller places they work & why they do it. Network, look for new opportunities & take a run at some place where you can have some impact.
Disclaimer: due to personal biases and the shared experiences of friends & colleagues, I would _NEVER_ recommend someone who loves their CAREER filed get pulled into a JOB at a big U.S. company. Take my advice with a grain of salt (or perhaps a full kilogram).
What's important is that you reflect on things you could have done better in your interviews and learn from it.
Then you'll get hired.
I translated this to mean old.
above all, get back on the horse! and again, and again, and again. don't let feelings stand in the way of what you want to accomplish.
1. It's normal.
2. Don't worry.
3. You got the interviews, lots of people didn't. That's a pat on the back there.
4. There are lots of other companies.
5. Focus on your strengths. Keep going, push on, and you can come back to these companies in a year or less with much more strength and steel than now.
A CV only tells you so much after all,
Later on, I applied to a different company, and while I got hired...holy shit. I have one hell of an imposer syndrome, because an "average" dev there can seriously show me a trick or two...or a hundred. The top of the food chains might as well be gods among mortals in my view.
So really, a resume only tells you what the applicant THINKS their qualifications are. Nothing more.
By that point, unless someone slips through, usually we are interviewing people on the right half of the curve. Which means the bulk of people will be average - as good as the average programmer, or admin, or what have you.
About one in six will be one standard deviation above the mean. About one in twenty will be two standard deviations above the mean. About one in three hundred or so will be three standard deviations above the mean. Bruno Bowden said the top leadership at Google was at least three standard deviations above the mean.
So that's the answer. Are they interviewing six people, or twenty (or three hundred)? Without a reference from someone in the group, the person they hire will probably be the one who is one or two standard deviations above the mean.
I think one example of this is in answering questions. Usually the first three questions I ask are the same for each person. People who stumble over the questions, who kind of can answer them, barely, rarely recover after them. People who hit all the questions out of the park right off the bat usually hit all the other questions asked out of the park. In a sense, for people who don't hit the first three questions out of the park, I'm only continuing the interview to not be rude (also usually my opinion is one of several, but no one ever said someone was competent that I said was not).
So I think that's one thing. You should be able to answer 100% of the questions asked, in detail. Because that was the hit rate of the people we thought were good. Not stumble over a sort-of answer, but answer in full, and explain whatever area is asked about in full detail if asked.
The one in six or one in twenty who could do this were given offers, unless they had severe personality issues. In my experience, here being average is good enough, although different places have different ideas on fit.
Flipping this model around, maybe one out of twenty interviews I've gone on have I been asked inane questions, where me not doing well was more the interviewers fault than mine. But for the other nineteen of twenty times, I would say if I didn't get the offer it was either because I applied for a position I was not qualified for, or I just was not prepared and filled-in on the subjects as I should have been.
Also, your English language and spelling skills are lacking, as someone has noted here. Were the interviews in the English language? If they were, that's something to work on.
You could be interviewing full time at 20 companies through Hired.com and nobody bats an eye - no matter if they are interesting, pay extremely well (or not), are located in a cool place - Google's interview has people in lalaland. Which makes a non-offer outcome much more compounded than actual.
My advice to you is pick a language and just program anything and everything. Make it a point to master one language rather then learn 10 for a resumes sake. No one cares how well Shakespeare wrote Spanish and no one will care if you don't know perl if you are a c++ guru.
Finally, don't let your opinion of yourself and your capabilities be dictated by someone who barely even knows you and what you are capable of. Google is a fantastic company but even they make mistakes. Focus your energy on trying to prove them wrong.
if you quit after only two tries, you may have a point.