Working at Amazon does mean that you need to work hard, long and smart. There is a lot of technical debt to deal with too. But the technical debt did not come from bad design, but from the way business grows and changes. There is a 20% growth YoY. Inventories run into millions of products across multiple warehouses. We ship through multiple means and we ensure the product shipped reaches the customer on the promised date at over 95% of the time.
In real life, this means that you are going to have trade-offs and some of the trade-offs do turn into technical debt. What we do with the debt is more important and amongst my groups, we are decreasing the debt by leaps and bounds.
If you want to see how it is, give me a shout. We are hiring, as usual :) I can take resumes in any format too :)
In particular I seem to recall something about 40 million lines of C++ code in their core product, and about mediocre engineering talent and high levels of burnout due to the technical debt they're required to deal with...
In fact, ever-increasing engineering costs would be just as indicative of mounting technical debt as it would of an increasing commitment to R&D.
On the other hand, when you're in the trenches of a product team at Amazon, good engineering takes a back seat to features, deadlines, and keeping everything running. There was an incredible amount of pressure from the top to maintain high levels of service, but not a lot of support for taking the time to refactor or rework those systems to address the underlying causes of service disruption. Everything was always an emergency, but we always had to make the shallow fixes.
Overall, I'm much happier at Google where there is a lot of support for good engineering at all levels of the organization, not just as a means to an end, but as an end in itself.
If you aren't making features and meeting deadlines you aren't engineering anything. You're just messing around. Features and deadlines are the difference between science and engineering. There's never enough time, that's what makes it hard.
Of course, Amazon might be pushing time tables too far. I have no idea, and it seems like you do.
Good engineers also have to be good analysts. What often makes a programmer better is his/her opinion to say yes and no to products people/designers. But yet again there is a balance. haberman mentioned Google but I personally don't like the over-engineered Google culture. It's too left-wing, if tight deadlines are too right.
Main problem is that a new family of species called AWS is so well-adapted and successful that its population is rapidly outgrowing some of the older, less dynamic species on which it depends. You can call that technical debt. I'd call it progress.
Also, for Amazon and other companies, there is a world of difference going through their public-facing recruiting process and getting to know someone on an interesting team through your network, and getting hired through them.
I also mentioned some of this at http://news.ycombinator.com/item?id=2488980
One of the issues is that none of us really know what goes on inside Amazon. They are notoriously secretive about most everything.
That was a long time ago. As Jeff Bezos confirms in the article, Amazon is a constellation of services now.
Business needs change too quickly for a system as large as Amazon; they simply cannot maintain net zero technical debt and not cripple their reaction time in the market.
The key is to know what level of debt is necessary and acceptable to take on and deal with going forward.
In fact Amazon is one of the best places in terms of innovation. In addition to having a strong core business, they also have AWS, kindle, android app store.
Who cares if their legacy codebase is 40 milllions lines of C++ and not your hip Ruby or LIPS nonsense. The truth is that they get work done. AWS is one of the best cloud computing system out there. Nothing else comes even closer. Dropbox, Heroku and Reddit all rely on them. Who cares if they take resume in word format, they pay well.
Its sad to see HN turning into a language fanboi and apple fanboi club.
The AWS EC2 outage did not even affect 0.01% of their revenue.
Has Bezos ever actually used Amazon's search functionality?
I know it isn't the easiest problem in the world to solve, but their search is by far the worst of any of the major shopping sites that I use on a regular basis.
Exact keyword match is obviously fine. "harry potter and the sorcerer's stone" gives me various options for buying that book and a bunch of other harry potter related books, and i can sort by some useful options like reviews or bestselling.
Harder problems, Google shopping vs amazon: Misspellings: Hairy Potter - Amazon suggests 'did you mean Harry Potter?', but does not initially put that book in front of me. When I check again later they are now providing a second list, "Results for "harry potter" (corrected from "hairy potter")"
Google shopping shows me the Did you Mean question, search results are the lego sets and one movie.
Concepts/descriptions instead of exact thing: "Boy Wizard Series" - both fail to suggest harry potter to me, but they do start with "Harry, a History" which might be enough to jog my memory. Still, no real points here, but this is a hard problem, and I don't know any shopping site that does it well. Even Google's regular web search is not fantastic at this, hitting mostly news articles and not reading my mind and popping out with "I bet you want to see information about Harry Potter..."
So where's the trouble?
I'm willing to cut them slack since it's good enough, but look at Newegg to see how it should be done. It's not a completely fair comparison (since Newegg specializes in this), but they do it so much better.[2]
[1] http://www.amazon.com/gp/search/ref=sr_nr_i_0?rh=k%3A16gb+sd...
[2] http://www.newegg.com/Product/ProductList.aspx?Submit=ENE...
I would be very surprised if they were not losing a significant amount of business from this deficit, especially outside of the well cataloged area of books.
Among other neat tricks, it allows us to handle synchronous RPC calls and asynchronous message passing in a unified way. It also maps transparently to any ZeroMQ topology.
Combine this with the recent release of gevent support for zeromq [4] and you get a fun, fun playground :)
http://incubator.apache.org/thrift/
It provides an RPC framework and IDL.
"Google made a 10% across-the-board salary increase, which is driving up expenses this year."
"[Amazon] spent ferociously to build more fulfillment centers and expand its technology offerings."
As a Canadian, the whole currency conversion thing adds another source of risk.
Do you have any experience in hedging your US investments by shorting the USD? I'm wondering if the additional fees are worth it.
Exposing these things would be a powerful recruiting tool.