I really couldn't figure out the problem but found a video from a former Google engineer who was on a hiring committee for years. If I can find the talk, I'll post the link. At one point during his time at Google, the committee got 10 candidates to decide on. They decided to not hire any of them. After the decision, they were told that the 10 candidates were actually everyone on the committee. So they had just decided not to hire themselves.
The point is a lot of times it is totally random and if one interviewer or committee member has a bad day, they may not hire you. So while skill is definitely required, a lot of luck is also required.
If you did well at all, they will probably call you back in the near future for another position. So stay positive and keep practicing till you get in.
For me, I eventually got a job with a smaller company and now I'm kind of tired of trying to get in. Maybe next year.
1. The whole "developer shortage" talk from top companies is self-inflicted at best. I know it can be hard to find the right hire, but the top tech companies have loads of solid applicants and turn away great people every day. If they were truly desperate, there are so many great people they could snap up.
2. Making the interviews entirely about algorithmic questions biases towards new graduates and academics. To be honest, working as an engineer does not develop the "algo" part of my brain much. They might as well challenge me to a chess match to "prove my intelligence". (I don't play chess)
Personally I'd rather see interviews focus more on real things related to professional practice, at least for experienced hires. If they really are interested in testing my ability on the spot, would it be so hard to set up a computer and have me perform tasks that developers actually do? Like write code that is challenging in some way, but doesn't hinge on a level of on-the-spot cleverness that is almost never exercised in real professional work?
When you don't get hired though, almost always you will err on the side of blaming yourself. I've heard about people blaming the process but I've never met someone in person who did that. And actually I suspect there's a Dunning–Kruger effect working where the more qualified you are the more likely you are to turn a rejection inwards and blame yourself.
I'm not saying that's what happened here, I don't know. Just keep in mind that hiring anywhere, including at amazon and google, can't be a fair process to the candidate. And you're the least objective observer of your own performance.
You: But what if I get a mistrial? I might be smart and qualified, but for some random reason I may do poorly in the interviews and not get an offer! That would be a huge blow to my ego! I would rather pass up the opportunity altogether than have a chance of failure!
Me: Yeah, that's at least partly true. Heck, I kinda didn't make it in on my first attempt, but I begged like a street dog until they gave me a second round of interviews. I caught them in a weak moment. And the second time around, I prepared, and did much better.
The thing is, Google has a well-known false negative rate, which means we sometimes turn away qualified people, because that's considered better than sometimes hiring unqualified people. This is actually an industry-wide thing, but the dial gets turned differently at different companies. At Google the false-negative rate is pretty high. I don't know what it is, but I do know a lot of smart, qualified people who've not made it through our interviews. It's a bummer.
But the really important takeaway is this: if you don't get an offer, you may still be qualified to work here. So it needn't be a blow to your ego at all!
http://steve-yegge.blogspot.com.au/2008/03/get-that-job-at-g...
And that all remains perfectly true. I flunked my first round of Google interviews, then tried again (in a different role I've come to conclude was a much better fit, mind you) and now I'm here. You can be too ;)
This stuff is hard. Don't sweat it too much.
I think a lot of people would be turned off from applying a second time, in case they blow what might be their last chance. They'd rather wait until they feel they are ready, and for many people that may be never.
This is more about dealing with life. Life that can be harsh and unforgiving. Exposure to Mass Media on a 24/7 basis has changed us as persons. It has made us take enormous amount of useless stress with all the false/misdirected expectations that we set for ourselves, often based on what has happened in the life of those who get the limelight.
We need to disconnect on a regular basis. We need to clear the noise and relax. Life is not about chasing the next big WOW. No need to take stress because of things that would have given us even greater stress if we had got them.
The World is in Shambles (at least for most of us).
As mindcrime in an another comment says,
"a better strategy is to get on with it with a sort of calm, peaceful acceptance of things, even when they are negative"
A personal anecdote I just went through this week: a few years ago, I lost an interview with a company I really wanted to work for. Part of the reason I wanted to work there was that a lot of people I knew and respected worked there, and they seemed very happy when I visited for the interview. I was pretty down after that. This week one of the people who worked there reached out, and among other things we discussed, it appears he had a horrible time there, and there was no reason for me to feel down about not being accepted. Also, I spent this past summer as an intern at Google, and while I don't want to start the usual "is Google still a cool place to work at" fights here, I do feel comfortable writing that my own very subjective conclusion is that one can get stuck at an uninteresting role at Google, like in any other company.
Keep meditating, and keep being awesome.
The first time I was rejected for being "too opinionated" for the likely team I'd be in, second time I was accepted. And I'd say the first rejection was spot on too, I don't think I'd have been a good fit for that team.
Bear in mind that a 'failed interview' isn't necessarily a failure on your part; it might just mean that the company doesn't think you'd have been right for the job. If possible do push really hard to get honest feedback in as much detail as possible; if it's a good recruitment process, such feedback can be a goldmine of personal improvement opportunities.
"Bad fit for particular job" != "poor candidate in general"
Sometimes the interviewer can see this better than the candidate.
Sometimes people get hired and then get very unhappy with their "fit" in the company or the way things are done. Some people leave within 3 months. It's nice when they screen to avoid that.
To OP: I'm really sorry that you didn't get the job you wanted. My path is not the same as yours, but I ran into rejection applying to college, applying to grad school, and applying to jobs after grad school.
In each case I felt terrible. I didn't know how to move forwards or what I was going to do, I felt like the rejection was an indictment of my self-worth.
But I think it helps to keep three things in mind:
- The people on the other side of these interviews are humans - they make mistakes and work off incomplete data. I guarantee you that they know far less about who you are, personally or professionally, than any of your friends or loved ones.
- Your self worth isn't tied to how well you do during an interview, or how many job offers you get, or whether or not your dream company gives you a job.
- Your destination - if you don't give up, you will probably end up where you wanted to go. But almost certainly, you won't have taken the path you originally set out to take. Life is filled with unforeseen setbacks and unanticipated opportunities. Proceed with an open mind and don't feel like you need to have everything figured out right away.
If he had been hired that day, maybe there'd have been no Whatsapp. A single situation can be good or bad depending on how you look at it.
We tend to obviously be more critical of ourselves when we lose out on things like interviews because we value jobs a lot more than other things. While it is ok ...in fact, healthy even, to feel a bit depressed by rejection, this shouldn't get to the point where you spiral downwards questioning everything in your life.
Hiring is often a matter of selection based on a number of factors beyond technical skill. Irrespective of what developers believe, HR truly can could be influenced by salary expectations, date of availability, logistics (for instance, visa issues) ..etc. I do agree that most of these are non-issues for places like Google or Amazon but even then, it might be a tough call to make when companies have shortlisted 2 very strong candidates and just have 1 slot to fill (or maybe even 10 strong candidates and 4 slots ...you get the idea). The point of all this is, don't beat yourself up about it -- external factors beyond your abilities, suitability or control influence hiring decisions. Don't feel too bad if you think you did well enough at the interview. If you didn't, you now know where you were lacking.
HTH, good luck
I'm very sorry that you lost your brother. Losing a family member is always a sad thing, but if it's causing you to have nightmares and lose sleep you should try talking to someone. If this has been going on for a long time you might have depression that won't get better by just 'dealing with it'. I'd suggest you find someone you feel comfortable talking to about it in person: maybe a friend, or family member, or a therapist. But get some help - depression makes everything seem worse than it is, and if you can get on top of how you feel, not only will you feel better, but it'll probably help your job search too.
Good luck - and don't feel alone. A lot of us have been through these same kinds of things and know it does get better, even though it kinda sucks right now.
What's interesting is that in retrospect, my current role is far more interesting and demanding on all fronts than any of the other teams I interviewed for.
It's hard, but keep pushing. The main thing that differentiates successful people from the others is persistence.
I got another offer so I contacted the manager from the first company and the recruiter. Manager calls me up and we discuss the offer, things seem to be going well, I was happy with the offer and we agree to move ahead. Recruiter contacts me the next day saying I should be getting an offer letter by the end of the day. Next day I get a call from the recruiter saying the HR department wants to see my current pay stubs and tax documents from the last year because they want to ensure my "integrity". Things went south after that as I didn't want to give my personal information. I really liked the team and the job (what was described to me by the team / manager).
I was in the same state as you are right now, didn't really sleep properly for 3 weeks. I would suggest taking your mind off the job hunt for next week or so - - start a new project - learn a new technology that you have never touched before - hike / take long walks (helped me a lot as it opened me up to a new perspective) - volunteer (tech talks / meet ups)
Honestly, a job or a company doesn't define who you are and what skills you have, it is YOU who makes the difference.
I'd say this just means you can go work somewhere that will allow you to be more then a junior cog in a large corporation.
I'd start with the hacker news "who is hiring" thread that gets posted the 1st of every month if you aren't already watching it.
Applying for positions in these companies comes with hard interview loops and you need to know everything about the stack your code is running on (mostly operating systems and networking). this is true for almost any role there (usually the engineering field is divided: systems, network, software and security engineering. i am not sure what sort of role you were going for but i guess software engineering. those positions also require that you are familiar with extreme scale and you are knowledgable about the usual SDE topics like data structures and algorithms. it is hard to do all of these at once at the level that you are in the top 5% who gets hired.
if you are serious about it, most of the questions and answers are leaked out to the internet so you can just google them and try to understand the problem, study it more if you are not sure (ask stackoverflow etc.) and you can pass the interview the next time (~18 months from now). next time you are going to be more prepared and potentially similar questions going to come up.
It will feel like crap for a while, but it's a numbers game - keep turning them over and one or two will come up your way. Don't know what city you are in, but tech meetups are a great place to pick up leads for jobs, usually. This might sound weird - but elections are happening now (assuming you are U.S.) - Go volunteer at a campaign pretty hard for the next week and a half. You might meet some people who can help you out in the long run.
At your age, it's often better to cut your teeth somewhere where you can jump in and get more responsibility off the bat anyway.
What's funny though, is that when I first read the rejection email, the main source of my disappointment was not the job, but realizing I'm probably stuck in the midwest for another winter.
My head is up, though.
I read your previous post at: https://news.ycombinator.com/item?id=8185085 and based on that I wanted to give you hopefully a little bit more personal advise. That said, I don't know much about you and personal situation, so I might be completely wrong.
Based on what you wrote, it seems like you had a setback in your life. After that you fixated all your efforts on your job interviews at Google and Amazon. When that failed, you fell into a hole.
I think, you need to find a different focus. I can't really tell you what it is, because I don't know enough about you.
What can help is to exercise and meditate every day. There is no such thing as bad mediation. Maybe talk with a psychologist, counselor or monk (I understand that you are in Thailand). It might help to view it in term of Buddhism: attachment, craving and letting go.
At the time, I thought I did pretty well but as I went back over the questions, I realized that I missed a lot of the sort of "tricks" of the questions that they wanted to see.
It was really simple stuff, using a hash where I should have used a trie and not seeing an edge case initially, maybe not being super efficient in a design problem. After thinking about it, the result could have been drastically different (worse or better) using a different 4 questions.
CS is a broad problem space, its not surprising to come across something that you fail at and in my mind, thats to be expected. While this time luck wasn't on my side with a few questions I didn't do amazing at, it may be better next time. Its kinda crappy how arbitrary it can seem, but I don't know if there are much better alternatives.
I have a Google interview tomorrow, so I will try my best, but also remind myself that there is a lot of chance involved.
It feels rough at first, but don't take it personally. Keep doing what you love and it'll be alright. Last I heard, you can try about once a year or so. In the meanwhile, keep a list of other places you'd like to work and try for them. You might even find another gig so awesome that you don't hunger for G or A anymore. That's kinda what happened to me.
Time will heal.
The interviewer was kind of combative and played the 'trick' question whiteboard game. I just fell apart. By the end of it, I wasn't able to respond to basic English. I stared blankly when asked what a 'heuristic' was...
I felt absolutely terrible -- and this was a job I hadn't really even wanted.
I found out that I don't do well with that kind of interview. A lot of people, especially introverts, wither in the confrontation.
And it's ok. Those companies miss out on a lot of amazing developers. And there are a lot of places that will hire people without forcing them to do an awkward dog and pony show.
I no longer bother with it at this point in my career. I have several friends that work at Google, but I'd never even think about interviewing there.
You can make great connections at things like user groups and personal projects. And there are TONS of wonderful places to work outside the Google/Amazon microcosms.
All the companies above told me to try again after a year, Google mentioned I wouldn't have to do the phone screens again, so hopefully I'm not that far away from getting the job.
My advice would be to try stay positive. If you're a programmer and have a stable job, you're in the top 10-20% income wise in this Country and probably in the top 5% of all humanity. As programmers, we have the tools to imagine and make into reality whatever we chose. To top it off, we generally enjoy doing this stuff and working conditions are usually tolerable.
My current path is to keep challenging myself progressively tougher algo problems on websites like HackerRank and not get locked into the mindset of gluing together libraries all day.
All the best for next year!
It helps to have some sort of arrogance about the whole thing. If they don't want you, then whatever. They have brilliant engineers but I wouldn't want to join a big company that already has it all figured out. What's in it for you?
The biggest thing is to take some time. Time heals, and sometimes just lying on the ground for a bit after you've been knocked down is all it takes.
There are literally thousands of companies in the world doing interesting stuff that are not Google or Amazon. Many of them are starved for talent. This doesn't mean you're settling for places with lower standards, but rather the standards at Google and Amazon are so high that--as others have pointed out here--past a certain level it is random chance if you get in or not. Hiring is a very random process.
So don't restrict yourself to big-name companies. There are a lot of interesting and rewarding places to work that pay well. Keep going.
For what it's worth, earlier this week I massively failed whiteboarding two should-have-been-dead-easy questions. Nerves jumped up and bit me. I'm talking near total meltdown in which I complicated a task as easy as swapping two variables using a single temporary.
What can I do about it at this point? Nothing. It's a tad embarrassing, but I'm already moving on. I've finally started reading Okasaki, and am making a project out of concurrently learning Elixir and some distributed algorithms.
I'll probably fail a technical interview again at some point in the future. But behind the scenes, I'll already be a better programmer than I was at that point in time. What else can I do?
I guess what I'm trying to say is that, part of being in this industry is that it doesn't matter who you are, it matters how you do it. Mind me, I saying you're doing/did anything "wrong"; you may have caught someone on their bad day. But, by all means, don't give up. Believe me when I say that if I can do it, you can surely do it.
This quote seems relevant (though you weren't fired, like the film portrays): http://www.imdb.com/title/tt1193138/quotes?item=qt1093933
The depression you're feeling might be a problem worth working on in and of itself though. Exercise, medication and therapy can all be really helpful, tackle it head on.
That being said, both Amazon and Google have interesting interview patterns. I've done well at both and flailed at both -- over the years. So it could just be timing as well.
Learn from it, contemplate on where you think your short comings were, practice those and move on. There are plenty more interesting companies out there.
If you are good, keep going. You'll find what you are looking for. Just don't get too caught up in the "it has to be Google/Amazon/Apple/etc" mindset. There are a lot of other great jobs and companies in this market for technical skills.
Take a break, then carry on!
I didn't get an offer.
There is a large randomness factor in interviews. You could have come in second to somebody who is basically your equal, but happens to have the same undergrad school as the hiring manager. You just don't know, and you never will.
Contact me at bilal at careercup dot com, I will help you out pro bono.
http://cdixon.org/2013/02/13/the-credentials-trap/
this too, shall pass.
If you want to take that approach, and say "f%!# it, I'm going to buckle down and work my ass off so I do get the job next time" there are a few concrete steps you can take.
1. Find, read, and do the exercises in two or three of the various popular books on "programming interviews". I'm thinking of books like Cracking the Coding Interview[1], Programming Interviews Exposed[2], Ace the Programming Interview[3], etc.
2. The companies you mentioned are well known for asking lots of detailed questions on fundamental computer sciences concepts. If doing "big o" analysis and talking about algorithms in detail isn't your forte, get a couple of good Algorithms course books and go through them. Personally, I'm a fan of the Robert Sedgwick books[4][5][6][7], and the CLR[8] book is a standard in this area.
3. Look over the many various articles / blogs / etc. written about preparing for Google interviews.
https://www.google.com/search?q=google+interview+preparation
I have never applied to Google myself, so I can't speak to that from first-hand experience, but this Steve Yegge blog post always struck me as being excellent:
http://steve-yegge.blogspot.com/2008/03/get-that-job-at-goog...
4. Take as many interesting Coursera, EdX, Udemy, etc. courses as you can find time for.
5. Write code any chance you can. Get involved in, or start, an open source project (or two). Volunteer to code for a non-profit / charity or something in your area. Write an app for yourself, to fill a need of your own.
6. Make sure you broaden your horizons and challenge yourself. If you've always written, say, Java or C++ or Ruby code, then make an effort to learn Go, or Erlang or Haskell or Prolog.
All of that said, as I've gotten older, I probably feel a little bit less of the "I'll show you!" thing. I've developed more of a stoic approach, and almost a bit of a zen mindset. There's a lot to be said for a sort of calm, peaceful acceptance of things, even when they are negative. There's a lot more one could say about this, but I don't want to get too philosophical here. I'll just point out that you applied to two... TWO.... companies. Out of like a BILLION possible companies you could work for. Ok, maybe not a billion, but certainly millions, or thousands, depending on where you live and your willingness / ability to travel.
My point is, don't put too much weight on what happened with Google or Amazon. The whole "dream companies" thing is a crock of shit, IMO, looking back on it with hindsight. I've worked for two companies in my career that I once thought of as my "dream" destinations, and neither experience was anything special (neither was bad either), and not worth getting all worked up over.
Final last bits of advice.
1. Read Nietzsche
2. Read Ayn Rand
3. Get drunk
4. Listen to some Queensryche
5. Profit???
[1]: http://www.amazon.com/Cracking-Coding-Interview-Programming-...
[2]: http://www.amazon.com/Programming-Interviews-Exposed-Secrets...
[3]: http://www.amazon.com/Ace-Programming-Interview-Questions-An...
[4]: http://www.amazon.com/Algorithms-Java-Parts-1-4-Pts-1-4/dp/0...
[5]: http://www.amazon.com/Algorithms-Java-Part-Graph-Edition/dp/...
[6]: http://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Stru...
[7]: http://www.amazon.com/Algorithms-Part-Graph-Edition-Pt-5/dp/...
[8]: http://www.amazon.com/Introduction-Algorithms-Edition-Thomas...
There are thousands of companies you can still apply to.
as an aside, what is it with the lack of a response? I interviewed at one place... for like 7 hours. It went really well, the guy gave me his email, told me to email him... until the end. "How much do you want?" I named a high number, and then said something like "But that's high. I just got someone that used to work for me a job for $lowernumber" - the guy mumbled something about that being a little high, I said that I'd been interviewing for a while, so I was open to offers.
Total silence. I email the guy twice, email the recruiter, etc.. and eventually like two weeks later I email the contract recruiter (who told me ahead of time that my high number was in range) and he tells me that I didn't get the job, because of the downsides I was real up-front about in my phone interview.
Man, I can understand not wanting to hire me. Especially not for the high number. But if I spend seven hours on-site interviewing with you, and you ask me to email you... you can respond. And what is it with making me name a number and then not countering? it's a negotiation. I'm trying to get as much as I can, but I really don't know how much that is. Give me some clues.
gah. Okay, yeah, rant over.
The solution for me was to keep interviewing until I ended up getting a job.
The fact of the matter is that social performance matters a lot on interviews, and for me? My social performance is pretty random. Some days I seem to have it; all my mistakes come off as jokes, and I seem charming and confident. Other days? well, sometimes it seems like I'm mildly autistic. My mistakes cause awkward silence.
That, and some departments just don't want a personality like mine. I... don't drink kool-aide. I mean, sure, I'll do what I'm told, but, for instance, you aren't going to get me to actually believe that advertising is good for the person that is being advertised to.
I recently got a gig that is absolutely perfect for who I am and where I am in my life, and it was the first job that accepted me. Incidentally, it's at google, but it's a contract-to-hire thing, so I've got another year (and a bunch more cash) to let my partner try to get prgmr off the ground again before deciding if I really want to (or if I'm actually able to) become a company man. Meanwhile, from what I gleaned from the interview, I'm going to be able to absolutely nail the role, as long as they don't expect too much google cheerleading from me.
From that perspective? The rejections were really for the best; I can't credibly pretend that I want to be a company man because I'm not ready to be a company man, and I think I'll make an awesome contractor (and maybe I'll be ready to be that company man a year from now? )