4 ms·
It's not a serious post... but I have interviewed with Amazon and their questions are a big part of why I don't work there. (The other reason is that when I ask
by asuffield 13y ago
It's not a serious post... but I have interviewed with Amazon and their questions are a big part of why I don't work there. (The other reason is that when I asked people what they were working on, they all said they were rewriting all the Perl code in Java "because Amazon is a Java company" - apparently that was the biggest business need at the time)
Rather than go into great detail on why I don't like their questions, I'm going to pick out one that stands out as an example. It starts:
"Suppose I want to <description of some user story>, so I want you to design a system that <vague description of an implementation method>."
Okay, I'm thinking, done this before a lot of times, it's bland but not an unreasonable way to find out how somebody approaches problems. But they haven't finished talking, and they add one more sentence:
"Make sure you show me the objects and classes that your system will use."
This is the point when I try not to let my disappointment and irritation show. It's not just that they've completely prejudiced the question, by forcing it down one particular design path, it's that they've made it clear this is not a test of my ability to design systems, it's a test of my ability to mimic their design of the system. Worse yet, in one stroke this destroys any hope of finding out how the candidate thinks; instead, it just measures how well they can think along certain lines.
I don't have a problem with object-oriented designs - I'd probably have done things that way anyway. But I do have a problem with companies that hire based on conformity to groupthink. I don't want to work with a group of people who were selected based on their performance at this kind of question.
- brahma1337 13y agoFYI Google's codebase is also heavily Java. I'm not sure if it's a good idea to judge companies/projects based on the language they use. [Edit: Okay, maybe I misunderstood that part] Did the other interviewers also ask similar questions?
- sokoloff 13y agoI didn't read a complaint against java per-se, but rather an observation that if your most pressing business concern is to rewrite (presumed) working code in one language into java purely for taste reasons, then maybe it wasn't a place he wanted to work.
- carbocation 13y agoasuffield didn't malign Java: he seemed to imply judgment about the fact that the company seemed to be converting working code from LANGUAGE1 to LANGUAGE2 for the purposes of being a LANGUAGE2 company.
- asuffield 13y agoIn particular about this being the only major project they were working on. They didn't just rewrite, they stopped doing everything else in order to prioritise it. The mind boggles.
- InclinedPlane 13y agoThere's a lot more to software engineering at amazon than just rewriting perl code into java. There's also rewriting C++ code in java. And there's rewriting java code in java to accommodate for some service your code was dependent on being deprecated. Really, there's all kinds of fun.
- mattzito 13y agoSo - just one comment on this: "The other reason is that when I asked people what they were working on, they all said they were rewriting all the Perl code in Java "because Amazon is a Java company" - apparently that was the biggest business need at the time" Having sat in on these kinds of discussions before at companies large and small, while it is certainly sometimes true that companies make a ridiculous platform decision like, "We're a java company", more often than not the decision is a lot more complicated. They might have felt that it was easier to hire people who knew Java, or they leveraged off the shelf software that was written in java, or they acquired a company with interesting tech based on java, or a million other reasons. That doesn't mean they made the right decision, but I'm just making the point that what may trickle down as "we're a java company" didn't start out that way, and may not be based in that fundamental stupidity.
- CholbiJack 13y agoc'mon, if you are as smart as you believe yourself to be, do you actually believe that the reason they ported their Perl code to Java was because "Amazon is a Java company"? I could see many reasons to port one of the worlds largest sites off of Perl and onto something like Java, one being the availability of developers that are proficient in Java vs Perl. Also, if the company you work at uses OOP to design their systems it's perfectly normal to ask you to design something with regards to those restrictions.
- asuffield 13y agoIf a company "uses $thing to design their systems" as a matter of dogma, I don't work there. And "Amazon is a Java company" was the actual reason given by the people I talked to. If they were lying or had no idea why they were doing the thing they'd been told to do, that's just a different reason why I won't work there.
- icodestuff 13y agoI conducted interviews at Amazon. Sadly, most of the time that question was about measuring the ability of the candidate to do object-oriented design at all. Usually we didn't care what the final data model looked like, so long as it was logical (and much more often than not, it wasn't) - and we gave candidates every opportunity to explain and justify the classes they designed. But you are correct in that Amazon loves OO, and functional or other approaches wouldn't have been looked at favorably.