10 ms·
How I went from failing every interview to a job at Amazon
- pdimitar 9y agoI never seen how exactly did he get the Amazon job offer, though. The article cut really important parts of the story.
- UK-AL 9y agoI agree interviewing is basically a skill now. But I find that concept silly since since whole point of interview is to find how good you are as a developer. Not how good you are at interviewing.
- dagw 9y agoOn the other hand, someone willing to 'work' unpaid overtime and jump through unreasonable hoops to just get a job is more likely to continue doing the same once they get the job.
- cryptarch 9y agoWhich is why you should let companies filter you out by choosing clear personal boundaries regarding the interview process.
- grecy 9y agoMaybe the point of an interview is to find out how good you are at becoming good at something other than your core skill. Adaptability / self-teachability / willingness to jump through hoops
- astrodev 9y agoWell, Coursera has a course in interviewing for software engineering jobs.
- minimaxir 9y agoThis is a after-it-therefore-because-of-it argument/survivorship bias. Inversely, not knowing the technical questions doesn't mean that alone is the reason the interview "failed". /r/cscareerquestions had good discussion yesterday about the realities of interviewing: https://www.reddit.com/r/cscareerquestions/comments/68czkl/what_terrible_career_advice_do_you_see_repeated/dgximxd/ https://www.reddit.com/r/cscareerquestions/comments/68czkl/w...
- Apocryphon 9y agoSure, but just as these big tech companies have processes that's optimize for removing false positives, candidates end up having to study for interviews to optimize for being excluded as such.
- reggylong 9y agoI agree that there are many reasons why someone can "fail" a technical interview (I wrote about some of them here[0]). It's just as important "how" you solve the problem and that you come off as someone people will want to work with. [0] http://reginaldlong.com/i-failed-my-tech-interview-and-i-dont-know-why/ http://reginaldlong.com/i-failed-my-tech-interview-and-i-don...
- axoltl 9y agoNeither of which can be solved by 'studying' for an interview. I'll argue that the required skills are on the interviewer, not the interviewee. As an interviewer I'm trying to assess a skillset, be it social, be it technical. All the points you listed (except #5) I deem to be a failure on the part of the interviewer: 1. You didn't make enough progress on the problem. The interviewer didn't properly explain the scope of the problem. 2. You were too slow and didn't get through all of the problems. Again, a scoping issue on the interviewer's part. When I interview, I have one _single_ problem that I pose. I interview largely for embedded security folks, so I write this on the board: void func(char* arg) { char buf[128]; strcpy(buf, arg); } And I will ask them to explain what's wrong with it. Most people can answer that question fairly easily. With this simple problem on the table I now have a base to start more questions from: - How would you fix this problem? - In a large codebase, how would you find this problem? - What's really happening here on a machine level? - What sort of system-level mitigations can I implement? These are all branches I can take, and once I feel like the interviewee is out of his depth in any one of them I jump back up. I'm trying to assess the skill-level of the person, not whether they meet some minimum bar (though I can do this afterwards, of course). 3. Your solution is complicated. There's a little bit of shared blame here. The playing-field isn't level in an interview as the interviewee is naturally going to be nervous. You as an interviewer can help level it a little by giving some broad strokes help. "That solution looks like it might end up a little complicated. Do you think there's a better one?". I have given no technical guidance, but have given the interviewee a chance to step back and think. 4. You didn't communicate well enough with the interviewer Everyone works differently. When I'm solving a problem, I like being alone in my head to focus. Some people more naturally are drawn towards collaborative problem solving. An interviewer that doesn't recognize this is a poor interviewer. You as the interviewer can solve the problem by occasionally asking "So, what direction are you thinking?" or "Can you write me out on the whiteboard where you're going?". 5. You ignored the interviewer's feedback Yeah, ok, that one is on you.
- 40acres 9y agoInteresting. I dropped out of a CS degree so I thought the theoretical knowledge was preventing me from getting jobs. If a Stanford Grad has trouble with interviews it seems that CTCI and tools like Leetcode are the way to go.
- akhilcacharya 9y agoI know two people that didn't finish their degrees (not even in CS!) and had offers from Google, FB, Airbnb, Square... all from being really good at technical interviews. It happens.
- NTDF9 9y agoAnd this is how another smart person dedicated their life to solving puzzles, just so that they could get a job on an obscure feature in a giant company.
- Kenji 9y agoThere are dumber things to dedicate your life to.
- NTDF9 9y agoThere are better things for a Stanford grad to do. If this is all they want, they'd rather join a bootcamp!
- coss 9y agoYou have a pretty naive look on the world.
- NTDF9 9y agoYou have a pretty naive view of what a Stanford grad has available to him/her outside of grunt tech jobs. This Amazon job sucks by most measures. The next job that this candidate looks for will suck even more because this candidate will have to memorize and regurgitate the same crap again. This candidate is probably going to frustrate themselves to death. Tech industry is not at all great for engineers these days. Here's some food for you to chew: https://sites.google.com/site/thefaceofamazon/home https://sites.google.com/site/thefaceofamazon/home
- noir_lord 9y ago> Tech industry is not at all great for engineers these days. Plenty of jobs outside the 'Tech' industry bringing stuff into other companies, it's not as 'glamorous' but it pays the bills and you get through the door a lot easier. I'm from the UK and consciously stay out of the local start up scene because I think the culture was/is toxic and have for a long time but there are solid and interesting programming jobs out in the wider world.
- relics443 9y ago"For example, I would stumble on simple questions like generating all permutations of a set by writing a recursive program that wouldn’t even terminate (even though it was something you would learn how to code by the second intro to CS class)." Does that mean second course, or second class? Because second class would be pretty intense. Although second course is pretty intense too.
- deleted 9y ago[deleted]
- relyio 9y agoFwiw, this was an assignment question for a first-year CS course at UWaterloo. We use Racket, a dialect of Scheme. It's hard for first years, but the prof is really good though
- bluedino 9y agoThe Earth's Most Customer Centric Company? What's behind the meaning of that?
- andrewcoover 9y agoThat's Amazon's charter. Google has "Organizing the world's information", Airbnb is something along the lines of "Belong anywhere" etc. Sounds like some good Koolaid
- simonebrunozzi 9y agoThis is my "getting a job at Amazon" of 9+ years ago: http://brunozzi.com/2008/05/22/how-i-got-hired-by-amazoncom/ http://brunozzi.com/2008/05/22/how-i-got-hired-by-amazoncom/ I hope you like it and find it useful. I think it's still relevant today.
- reggylong 9y agoHey Simone. Awesome story! I actually ended up working at AWS too (S3). I'd love to get in touch with you. My email is reggylong at gmail.com
- simonebrunozzi 9y agoHey reggy! Just sent you an email :)
- shmerl 9y agoThis puzzle based interviewing system is a complete mess. How did it get to this?
- base698 9y agoPuzzle based interviewing isn't that common. The only places that do that are out of touch. Most technical interview questions for in person interviews are word problems in the form of a requirement.
- hackinthebochs 9y agoIt's because they're not programming tests, but IQ tests with CS concepts as their medium. They want smart people so they test for it the best way they can (i.e. in ways that won't run afoul of employment laws).
- shmerl 9y agoWhich IMHO is bad. They should be programming tests.
- hackinthebochs 9y agoI think its reasonable for the likes of google and facebook to consider the most important trait of their hires to be their intelligence. Even if most people at these companies are really just CRUD developers, you never know who the next big idea will come from. Consider how many products came out of google that were side projects of one of their engineers. Hiring smart people is an investment in these companies' future. The problem is when the random nothing-but-CRUD companies/startups think they need google-caliber engineers.
- splicer 9y agoI totally agree. I'm interviewing someone tomorrow morning, and I plan to give them a simple finite state machine problem in C. Full open book (i.e. access to the web), and they're free to compile and run as many times as they want. You’d be surprised how many candidates can't implement something as simple as fizzbuzz.
- haskellandchill 9y agoI don't study for interviews any more. I figure as I continuously improve my Computer Science and Mathematics fundamentals it will just happen naturally. So yeah I've been to final at Google, Amazon, and now Facebook, but I probably won't get a job offer for another year or so. Their loss though :)
- sleepychu 9y agoI've never studied for an interview but I don't see any correlation between being able to smash the technical tests and getting hired. In fact I think that often scoring 100% on the technical has hurt me because they believed my ability outscopes the role they're hiring for. (though they won't hire me for a senior role because I'm too young, eurgh.) EDIT: In fact I think the best correlated factor has been applying for jobs where I'm apparently not qualified enough, the companies that decide to interview me anyway are: - Willing to assess me not $YEAR - $GRADUATED - Struggling for candidates
- dcole2929 9y agoSerious Advice: Remove the graduation date from your resume. Most companies at an institutional level don't care when you got your degree so long as you have one. Specific people might care if it comes up but not enough to make a point of it. They're generally perfectly happy to hire you based on your interview performance. Source: Have been involved in hiring at giant software corp
- ZanyProgrammer 9y agoIt appears the OP describes his experience as a college student (presumably full time) at Stanford. As someone with a bit more atypical college background, who now works, the idea of devoting so much of my free time to studying boggles my mind. Programming 9-5 everyday makes me much less likely to want to do any coding when I get home. And it really sucks that being a full time programmer isn't remotely sufficient experience for any kind of technical job interview. I'd be laughed out of the office if I suggested we write BST algorithms on whiteboards.
- phil21 9y agoThis doesn't even get into the fact that exceedingly few programming jobs need to know anything resembling advanced computer science theory. Probably less than 5% in my limited experience.
- frozenport 9y agoFurther those 5% move at a glacial pace, you could be given a week to write or improve a BST.
- yazaddaruvala 9y agoI do believe we need a better system for interviewing candidates. However, I strongly disagree with your statement! I work on distributed systems day in and day out, and more and more I find that I'm using or building distributed data structures analogous to BST, HashTable, etc. Not knowing the foundations of my field in and out would be a mistake!
- johnnyb9 9y agoHow many programmers work for Facebook, Google, Amazon, etc and how many work for non-web scale companies? As a professional programmer in financial services I have never had to use a red-black tree, min heap or do anything more advanced than properly using a HashTable.
- 9y ago
- pfarnsworth 9y agoI'm currently studying to find a new job. I intend to memorize all the algorithms I can, all the tricks, and completely fake like I'm figuring out the answers on the spot when I interview. I will dedicate the next 3-4 months on this. That's just how things are these days unfortunately.
- eadlam 9y agoThat's not faking anything, that's just learning.
- 1stranger 9y agoYou're supposed to act like you're figuring it out in real time during the interview. They're "seeing how you think". When really you're just trying to recall.
- sigsergv 9y agoLearning what? In most cases you will be strictly forbidden to use basic algorithms in your job. No one allows you to write quick sort or hash-table or crypto from scratch.
- lemonsqueeze 9y agoThis reads like a nightmate that ends in the worst possible outcome. Death would be better than working at Amazon. Poor guy.
- ChuckMcM 9y agoSomething else that you might try, instead of doing 'practice problems', consider taking each algorithm or concept you want to learn and putting it together with a project that can use it. Everyone learns differently and for people like me, things 'stick' better in my head when I can relate them to a project rather than just as a bare concept unrelated to the real world.
- justinzollars 9y agoI am going through the process now and I can definitely sympathize.
- cwein3 9y agoI sympathize with you too! Good luck person!
- justinzollars 9y agoThanks!
- naitoon 9y agoAs someone who is already in Amazon and moved teams, I recommend you to keep your interviewing skills sharp, specially if you see that the project you're working on is going nowhere and might be cancelled. You wanna be ready to interview so that you don't get moved to a random team. I was in that situation and it really sucks. I had to start over getting used to interviewing, failing 2 or 3 interviews before I landed a job with another team. A really complicated time for me.
- blazespin 9y agoAgreed, some teams at amazon are hire/fire fast. Not all but some. Keep going to interviews, even if you are only mildly interested. Keep your skills sharp. Enjoy the interviews. Make sure the companies pay for everything.
- bkovacev 9y agoI'm not sure if I understood this correctly - you had to interview for another team within the company, even though you've already went through that same process once? If true, that's ridiculous.
- mikestew 9y agoHell, it's what Microsoft was doing fifteen years ago, and I have no reason to think it has changed. Change teams? You have to go through the same loop and same hazing as a new-hire candidate. There might be a little less paperwork, I don't recall.
- therealdrag0 9y agoYep. I had a friend at Microsoft go through this a couple months ago.
- naitoon 9y agoThat's right. You need to interview with the team you want to move to. I don't think it's ridiculous. After all, different teams may have different hiring bars and specific skills you have to be proficient on.
- utmachina 9y agoThis is strictly for those in college with the TIME to study and interview. I'm a year out of a top-10 college; just signed a new job offer recently. Let's just say that difference is day and night. College is very much a cushion for your job search process. Grown ups have to deal with the emotions of failing startups, working over time to push through deals/compliance issues. Try having the stress of a family and dependents, yikes...
- driverdan 9y ago> Set up a system for studying for interviews This makes sense if you're still in college and learning but if you're already a professional you should not be studying. If you get asked pointless CS questions in an interview walk out. That is a terrible way of finding good employees. Employers should be asking questions relevant to the position.
- halestock 9y agoThat's a great way to find yourself without any hopes of a job. Companies (including all of the big ones) pretty much all conduct interviews this way and there's no way they're going to change their practices in light of one person's crusade when there's an endless supply of candidates who want that job.
- dangrossman 9y ago> Companies (including all of the big ones) pretty much all conduct interviews this way I've interviewed for developer positions in Pennsylvania, with companies ranging from well-known Fortune 500s to local shops. Not one of them had a whiteboard, asked me to write code, or asked me to develop an algorithm or solve a puzzle. The interviews were largely the same as those I've heard about for most other jobs: you go over your resume, talk about what you did at past jobs, answer cliche questions like "how do you handle disagreement" or "where do you see yourself in 5 years", talk about the position they're hiring for and their culture, and maybe about compensation. So maybe it's more accurate to say something like "tech companies (primarily the big ones in Silicon Valley) in the handful of high-tech startup hubs in the world pretty much all conduct interviews this way".
- Apocryphon 9y agoIf this comment gets more popular, the Philly and Pittsburgh tech scenes are gonna suddenly explode with devs who are sick of both SV interview practices and rent prices.
- 9y ago
- smnscu 9y agoGreat article, added it to my collection of interview prep resources: https://github.com/andreis/interview https://github.com/andreis/interview
- peteretep 9y agoThere are some detailed tips in here: https://www.slideshare.net/perlcareers/how-to-prepare-for-and-survive-a-technical-interview https://www.slideshare.net/perlcareers/how-to-prepare-for-an...
- avenoir 9y agoAmazon recently opened new office in Boulder (i believe) and started hitting up a lot of folks in the surrounding states. I live in CO, but my company is in KS and I started hearing a lot of chatter among our interns that they're grabbing kids left and right from schools in the area with mediocre to below average computer science programs. In fact, one of the kids who interviewed at our place ended up taking an offer from Amazon, which i kid you not was around $100K more than what my company was offering for a new grad with no prior experience and a degree from a school that doesn't even make it to the top 100 in the nation.
- mabbo 9y ago100k more for a new grad? That can't be right. Five years back, the new grad offer was 90k, plus 45k of stock over four years. If they're up that much, things must be getting desperate.
- jonathankoren 9y ago2k increase per year isn't desperate. That's inflation.
- mee_too 9y ago100k more, not 100k total.
- avenoir 9y agoI'm sure $90K is a thing somewhere on the coasts. A typical starting salary around here (MO/KS) is $60-65K considering you have some internship experience. Otherwise it's usually in the mid 50s. Amazon offered $160K (bonus included).
- mabbo 9y agoI would guess the fact that most starting developer salaries are 60-65k in your city is the reason Amazon opened an office there. I moved to the Toronto office not long after I joined, and that office existed for similar reasons. Lots of talent, but generally low wages in the city. Made recruiting easy- they went from 25 people five years ago to 500+ today.
- tled 9y agoDoes Amazon hire Mobile developer (Android/iOS) ? I have been in a situation where I got into the final interview at a large tech company and did all the test well, but they emailed me after that saying my background (mobile) does not align at this time with any teams.
- dnautics 9y agoI failed every coding interview as well. I'm not a great programmer - no industry experience, only academic, (but I passed all of the "coding riddle" problems my friend who is a senior programmer kept failing), and I made it through triplebyte's interview (I can write a bloom filter from scratch in under an hour). When whiteboarding though I have problems like, "doesn't default to hash", "has trouble remembering how to BFS", etc. Eventually I got a programming job doing data science at a startup in "emergency hire mode". Didn't have to whiteboard, was hired on reputation and friend network alone. They even forgot to ask me to send a link to my GitHub. Most of my day to day in the first few weeks has been literally "debugging shellscript".
- known 9y agoI'd recommend you to master https://techiedelight.quora.com/500-Data-structures-and-algorithms-interview-questions-and-their-solutions https://techiedelight.quora.com/500-Data-structures-and-algo... before attending technical interviews
- cwein3 9y agoHi Regy! I must say I am very impressed by article. May we get in touch perhaps? PM me!
- hihelenn 9y agoSame.
- hihelenn 9y agoThank you. Very impressive. You should work at every company ever.
- cwein3 9y agoI may be looking for ppl. We offer good rate. Start work at my company. Work hard, play hard, so the motto goes.
- sytelus 9y agoTLDR; Lots of practice, at least one problem every day from CTCI. The reason this article is interesting is entirely because author is actually CS student and that too from Stanford. Most CS majors anywhere in the world have to take algorithms classes and even more advanced compiler design, distributed computing, parallel programming, graph theory etc (for example, Stanford has CS161). Its hard to imagine CS student who hadn't had Introduction to Algorithms as textbook and did not had to do at least few assignments from that book. So given all that, I'm wondering how author got through those classes because those classes are usually much more demanding than tech interviews and questions are more harder (try yourself doing CS161 final exam [1]). While CTCI does have lot of material that is not covered in typical CS classes, I would think pretty much all fundamentals such as permutations and basics like checking correctness of recursive algorithms or runtime complexity etc is very well covered. In fact I would argue that anyone heavily relying on CTCI as only source would be much weaker on these fundamentals and a competent interviewer would be easily able to identify them. [1] http://web.stanford.edu/class/cs161/final-autumn16.pdf http://web.stanford.edu/class/cs161/final-autumn16.pdf
- deleted 9y ago[deleted]