What's ironic is that Amazon is "so bad" yet they are one of my favorite companies.
They always seem to do right by the customer.
Where as google, it's behavior isn't always customer friendly (disclaimer: this is my opinion/perception).
To an outsider like me, Google seems almost schizophrenic...adding features, removing them, and then Gmail on android is just "not good". Customer service is non existent. Have a problem with Google product, good luck buddy.
Contrast that to Amazon where customer service is prompt and courteous and they always give the customer the benefit of the doubt.
Maybe it's the focus of the companies? Google is focused on engineering for engineering's sake. The focus on developers and algorithms.
Amazon is focused on customer service/satisfaction. Keeping the customers coming back.
Google is a monopoly in many of it's services (search, ad[sense|words]) whereas you can get a lot of Amazon's products somewhere else.
What really struck home for me was Steve's line, "I hate... plussing" because I actually think his entries like this one are a great niche for Google Plus -- it's basically a built-in blogging platform/RSS reader. Facebook and Twitter are pretty bad platforms for posting 5 paragraphs (or 25 paragraphs, in Steve's case) worth of thoughts, but Google Plus works pretty well. It has all the sharing/social goodness of those platforms without the overhead of having to create your own blog and tell people about it.
So I thought about a web application that would basically provide a wrapper to post blog-esque entries on Google Plus, and sure enough I looked up the API, and like Steve, you pretty much just get the Stalker Method. Not a POST method to be found.
Then it made me recall an earlier life where I worked on an SEM optimization platform, and the most common thing we heard from our Google Rep was, "oh, um, yeah, doing that is not available in our API."
Short of a directive from Larry and Sergey and the willingness to follow through for the 3-5 years it took Amazon to reap dividends, is there anything Google can do?
You too, huh? That's what I do now. Our company's been a paying user of Google's APIs for a couple years, and it's been a nightmare the whole time: Inadequate features, bogus data, weird malfunctions, etc.
It's a pity that he chose to withdraw it, it would be great if high profile people like Steve could say stuff like this and stand by it without having to fear for fall-out. After all, the big winners from a piece like this are Google and Amazon, Amazon obviously have some big problems (see Nirvana's post above) and the sooner it gets to the attention of their top level execs the better.
Stuff like this can rot your company from the inside out, and being transparent about it (and even public) can help a lot.
Wow. I know so little about the internal workings of Google and had such a good impression of them until today. The Wave post and now this -- not the post which was constructive and insightful, no company is perfect and it's important to examine flaws -- but for the decision to pull the post. Shameful. Steve is only wrong with one point: Google's reputation for arrogance seems actually well-deserved.
I don't get the impression that he was "forced" to back off, but rather that he accidentally posted something that was meant for internal consumption in public. I think it's perfectly within his rights to delete the post - most people don't talk the same way with their co-workers as they do in public, and it's perfectly understandable.
Haha, actually I just happened to have it open in a separate tab when I read people saying it 404'd, though I do have a habit of saving loads of random things to my ~/Public/ NFS share when browsing HN and reddit.
Is Steve Yegge Google's new secret recruiter agent? :)
A few weeks ago he publicly quit his "cat pictures" project (http://www.youtube.com/watch?v=vKmQW_Nkfk8) to pursue more noble a quest in data mining. I loved what he said, and at first glance this seemed like a jab at the newly released Google+. But it's actually a bigger knock on Facebook since the "cat pictures" app is Facebook's primary gig, and so far it's only a side gig at Google. I wonder how many FB peeps started to wonder if there really is any meaning in cat pictures.
Now it's Amazon -- "Amazon does everything wrong, and Google does everything right", except for 3 things, one being "platforms." But his Amazon jabs are not as subtle as the cat pictures one -- "Their pay and benefits suck, although much less so lately due to local competition from Google and Facebook. But they don't have any of our perks or extras."
Maybe Steve is Google's new unofficial recruiting agent. He makes reference to it here, "I actually did a spreadsheet at one point but Legal wouldn't let me show it to anyone, even though recruiting loved it."
When you think about it, he's the perfect person to have run a psyop designed to get the Facebookers and Amazonians to lay down their cat pictures and join the Googlers building the next generation platform, while partaking in all of their perks. Google can just play it off as, "oh, that's just crazy uncle Steve on one of his rants again". I don't know what it is, but I think it's great on multiple levels :)
The rant is absolute gold. It is well written, it's entertaining, it's funny, it's insightful. Most importantly, it's right (about platforms at least, and from what I've heard, about Amazon and Google's culture). It is as near to perfect as a rant can probably ever get.
I can see "What did you think of Steve's Google Platform rant" as an interview question.
Agree. The only Yegge rant/essay I can remember getting all the way through without struggling to stay awake. It's amazing how much more effective a writer he is when he's not trying to construct an elaborate metaphor. Maybe it has something to do with his belief that he was writing to a smaller, more focused audience.
Werner Vogels did an on-stage interview recently at the Kings of Code conference in Amsterdam. A question from the audience was: "Does the Amazon shopping site run on AWS as well or on a more private/shielded AWS-cloud?". Werner answered that they use the same infrastructure as everybody else and that they could not justify doing anything else. It gave me tremendous trust in the AWS platform.
I remember the question more in terms of "Does AWS give preferential treatment to Amazon vs other customers?" to which the answer was, of course, "No, it's not workable at such a scale." I imagine there was a large amount of hardware sharing early on and that could be construed as sharing infrastructure; a number of the answers in that session were rather evasive.
yes but we all figured this out earlier because EC2 and S3 downtime would never correspond with Amazon.com downtime - which made it obvious that the 'use the infrastructure we use' line was complete bullshit.
When I left in early 2007 they were working on the transition. More recently I heard that they were substantially if not totally on the AWS infrastructure. So if Werner said it recently it probably is true.
I'm sure sometime in 2007 or 2008 a directive went down that people had to build new stuff on AWS. EC2 is a reasonably good fit for much of the Amazon.com code, as it's just generic hardware. I'm sure in the past 4 years more and more stuff has been written to use S3 as a data store. The core stuff, Gurupa, etc, would have to be re-architected to work with things like SQS and other services.
I'm not saying that nobody in Amazon wanted to use AWS, just that we didn't know about it until the press release, and so there wasn't any opportunity to use it... and of course, all the code from the 1990s was built in a different way so it would have been nontrivial to migrate it.
At AWS Summit back in June they said that all (US only?) pages are now rendered via servers on AWS. The databases are still big-iron type boxes due to them being on, IIRC, Oracle and I/O being what it is on EC2.
>You can set the default font size and zoom size in Chrome (chrome://settings/advanced then "Web Content").
Increasing the default font size makes some text a lot bigger while other text stays small. On Mailman archives, for example, the body of an email ends up smaller than all the other text on the page (maybe because the body is in a fixed-width font).
Specifically, if you set the default font size to "Very large", the text in the body ends up less than half the size of the other text.
On hacker news, the "reply" links, which are (rightfully IMHO) smaller than normal text, become much larger than normal text.
The other way to increase text size in Chrome, the Zoom In command in the View menu, is not useful to me either: when I use the Zoom In command to get the text size to where I want it, the text usually runs past the right end of the window, with the result that I have to scroll horizontally back and forth for every line of text I want to read.
On some pages, this problem occurs when I use the Zoom In command only twice (repeated uses continue to increase the text size) and the text is still pretty small after two uses of the Zoom In command.
I have not been able to find any usable way to have the text as big as I want it in Chrome.
You can't set the DPI in Chrome. I'm guessing its what they wanted to mean there.
When you need a non-standard DPI you just can't read Chrome's fonts. If you boost the font size other elements are not properly proportioned.
When I worked at Myspace, there was one (small) team dedicated to creating and maintaining internal services. The platform was called "slayer," short for service layer. It was built very well, for the most part. All the documentation and calls were in one place. And the few teams who used it built cool products (including my own) that leveraged data from a wide variety of services.
I think the simple reason that our products were better was because we could easily see all the data sources available to us every time we checked the documentation to do some simple things (say, retrieving a user's data). We can get friends data from here, music data from here, analytics from there. And what do you know, putting all that data into one place can make a cool product or feature. Without that, you spend so much time worrying about what your own product and team is doing that you forget about working together.
Wow, thanks @vnorby! That was my team. We started out in the beginning of 2007 with myself and 2 other devs and we were just the "API Team". Our goal was to simplify and standardize data access for all front-end features. At that time, this was a monumental task as most features lacked common code besides the infamous MaintenanceConfig. There was basic SQL call wrappers for querying data and some core handling of the large number of federated profile/mail DBs, but besides that, features tended to be built ad hoc.
This posed a problem to scaling the massive web traffic load on these databases. It also left open dangerous patterns of duplicate data calls where each control on a page was making its own calls for the data it would bind to.
Man... I could go on for days about the path we took from the wild wild west of code slinging up to the nice accessible, maintainable, freakin' BEAUTIFUL Server Slayer platform. Instead, let me just leave you with the logo we designed for this internal platform: http://imgur.com/Pvpy7
API Development Mgr.
MySpace 2/2007 - 3/2010
I was an intern at Amazon this summer and they extended a full time offer. I read Steve's rant with great interest. Since many people in comments have confirmed the points raised by him about Amazon, I am not feeling good right now :( I still have 18 days to accept the offer. I am currently interviewing with Microsoft. I have applied to Facebook just now. Sadly, I screwed up my Google phone screening last week. It was just not my day :( I am confident of getting MS offer. Do you people suggest I reject the Amazon offer? Or should I work at Amazon and form my own opinion? I can always change jobs.
EDIT: I am not able to reply to comments at all! It gives me dead link message. I have been trying for almost 30 mins now. Frustrating.
I was kind of in a similar position a couple years ago. I didn't do an internship at Amazon, but I was considering joining full-time, and was really unsure of whether to accept (I had great offers from a couple startups, which I was mostly focused on at the time, but a friend at Amazon was really pushing for me to join).
In the end, I decided to go with Amazon, thinking like you are that I could always change jobs if I didn't like it.
And yeah, I hated it. Absolutely hated it so much that I quit two months after joining. The problem was that the other startups I was interested had filled the position I'd been looking at (I'm more of a data analyst than a software engineer, and data analyst positions are a little more rare), and now every other place I'd interview at would think I was a total flake. I'd interview somewhere, and I'd have to spend 30 minutes explaining to multiple people why I left Amazon so soon and how they'd know I wouldn't do that again at their place.
I'd have great technical interviews, and I would get told this, but people would be worried about what kind of employee I was simply because of this one mistake I made joining Amazon.
So yeah. Hopefully you'll have a much better experience than me, so that even if you don't like Amazon you can always change jobs, but just throwing my own experience out there as another data point.
The lesson here is don't quit two months into a new job before finding a replacement position. "The position isn't what I thought it would be" sounds much different if you are still there than if you've quit. Very few people will begrudge an incompatible match if you are seen as sticking it out responsibly.
Keep in mind that Amazon is a big place, and your mileage can vary greatly depending on which team you are in. Personally, there are some good and bad points with my team (and pager duty always sucks), but overall I'm not discontent. I'm not sure about the pay-scale claims though. I had thought that I was being paid pretty well, and cross checking against external sites seemed to confirm that.
You can also just take the job at Amazon and switch to the MS offer if you get it and don't like what you see at Amazon. Its considered incredibly rude, yes, but our group has had that pulled on us a couple of times.
I did multiple internships at Amazon and now I work here full-time. I love it here. But, like other people have pointed out, your experience can be very dependent on which team you join. Personally, I wouldn't want to work full-time on the team that I did my first internship on. The work there just wasn't fun. But my internships put me in a good position to know which teams suck and which teams are great, and so I chose a great team to join. Hopefully you are in a similar place because of your internship. Did you enjoy your team? If not, did you see any teams that you would like to work on?
My AWS team was good. I enjoyed my work as an intern. However I was warned that work in the group is operations intensive. I could see that myself in those 12 weeks. As an intern I was not given any operations work. Obviously it will change when I join as a full timer. As noted below I am looking at other AWS teams, Kindle silk browser team. I need to find out about these teams.
Yeah, I've heard that some AWS teams can have heavy operational load. If it's important to you to avoid that, you could consider somewhere in WAP/BuilderTools. That's where I work (so yes I am biased), and in my experience the operational load tends to be pretty light throughout the org. On my particular team we almost never get paged. Plus we get to build neat things in this org (remember how Stevey mentioned that Amazon's "versioned-library" system is good?).
Silk is probably a neat team to look into as well. They're building a cool product, they're still a small team, and they have good leadership. The director in charge of it used to be the head of Builder Tools and he's great.
But yeah, talk to a lot of teams and ask them about the things that are important to you (operational load, current/future projects, code quality standards, whatever other things you can think of to ask) and see if any of those teams sound cool to you. I won't lie and say that every place in Amazon is perfect, but if you choose well I think it's possible to find a great team to work on.
At the risk of being slightly offensive, college hires are high on energy and enthusiasm but low on ability to produce reliable code (on average). They can produce a lot of code, but they tend to have blind spots when spotting failure scenarios, resulting in "gotcha!" outages or bugs. Its not a big deal if they have a more experienced developer reviewing their commits, but if you're iterating fast on something that's going to be a flagship product, it becomes less tolerable.
If your ok wearing a pager Amazon is the best place to get the scaling experience on your resume. They put college hires on giant SDE mission critical systems with no training, because they dont have senior engineers. Except the highest engineers that do not get swapped out and need not comply with schedules. My friend works there. He is always either love it or hate it. He likes most of other programmers but a lot are really bad coders. The technology is cool but the management is clueless and stupid, they cant tell good code and they make up schedules all the time. My friend laughs at production code and code reviews. The managers like the worst programmers the best because they are biased for action and don't care if they push out stuff that breaks as long as they dont get the ticket or get credit for fixing it later. The manager is a huge fat guy who always talks about the meeting with Jeff Bezos and makes them go to socialize with recruits. Their softwares were copied from some other Amazon project and most of the engineers spend their time trying to put out fires for "Jabba" because it is so bad. I interviewed there and got an offer from the fat guy who told me it was more exciting than my other offer because the other guys just doing reporting and data. But I want to do that and data-driven analysis. Amazon says that its data-driven but the boss says it's boring?
Like others have said, decide on the merits of your internship.
I left recently (a few months ago) and much of Yegge's rant rings true - but like all big companies, it is not universal. My main caveat when others ask me about working for Amazon is - know exactly which team you'll be on. That will be the difference between a hell on earth scenario vs. a pretty sweet job.
From your internship, you have much more information than most people coming into the company. Use that.
And even if it does turn out to be the wrong decision, the golden handcuffs are only on for 12-24 months. Amazon on your resume is incredibly powerful and opens a lot of doors, so you won't really have suffered in the long run for it. Towards the end of my tenure I had recruiters banging down my door, so your options even if Amazon turns out to be a bad fit are, well, pretty limitless.
any advice for people considering a move to Amazon but haven't had the benefit of internship or view from the inside. it's clear that group to group variance is enormous - hell on earth vs pretty sweet - but getting clarity on the particular group is key to decision. it's possible to get some of that through the recruiting process but not the same as spending time there.
also curious as to whether the hellishness everyone talks about applies cross-org (eg for PMs, TPMs, etc.) as well as engineers.
Be-prepared for the worst. They are some specific groups which do good work, and have good management. If you luck out, you can have fun working at Amazon but if you end up getting into painful groups with extreme operational load or bad management - just keep your head down, slog it out, suck up to your boss. You will end-up learning a ton by being at Amazon, if you are just out of school. It will help you immensely in your next job search.
Amazon changes faster than any other company I know. In Amazon years, Yegge left centuries ago. In addition, your Amazon experience depends mostly on what team you're in. You should base your decision on your internship.
Thanks for the suggestions guys.
Internship experience was quite good. But then it was just for 12 weeks. I enjoyed writing code. Since I have less time to decide now, I might just accept the offer and test the waters. I am inclined to choose one of the good AWS teams or the Kindle silk browser team (hoping they have plans to
turn it into a browser OS in future)
There are also a lot of _really_ interesting but less public-facing teams (AWS and Kindle tend to get a lot of press).
I had been pretty set on AWS when I accepted, but ended up in a different org and love the work I'm doing. You might talk to your recruiter or anyone you know at Amazon about your interests and see if they can suggest additional orgs/teams to consider.
I agree with skyo and aphexairlines. I've found Amazon a fantastic place to work and am, frankly, baffled by the flak it's taking here in the comments. My experience at Amazon has been fun and rewarding, and I'm thrilled to be a coder at such an awesome company.
I guess your mileage may vary, but I've found AMZN to be an awesome place to be a programmer.
There is one thing that Google has done well that no other company (Amazon, Microsoft, Facebook) seems to understand. Hire experts. They call this hire Ph.D.'s, but that's slightly inaccurate because having a Ph.D. does not make you an expert. They understand that building systems at large scale requires people who have a deep understanding of distributed systems that goes much beyond "My code is on SourceForge" mentality, or "Git is better than SVN because it is a distributed repository".
To this day, I am still shocked as to how many devs have no clue on what I'm talking about, yet they are in charge of Internet-scale systems. Here's a list of symptoms, I've heard over the years:
- I'll put something quick together.
- I implemented Paxos last night.
- I found an optimization in the two-phase commit protocol.
In my opinion, being expert means becoming humble and doubtful about your code when implementing large-scale systems. If your code runs on thousands of machines and serves 100K+ people and you think you rock as a developer/architect then you're doing something wrong.
Facebook doesn't get this. Look at their systems. They barely work. Good thing it doesn't matter. Yet. But it will eventually.
Amazon gets a little of this. Bringing Werner showed signs that they started to get it. They are still in this mix where a small group of people gets it and continues to bring in experts and push amazing things out. We'll see how long this will last.
Microsoft clearly doesn't get it. But that's ok, because they have no Internet-scale systems anyway. They built MSR which is capable of building such systems, but they make sure MSR remains isolated from their code. MSR seems happy to have no role in the company and to continue to publish amazing research.
Lots of containers, "Microsoft's online operation puts big data into perspective. Bing's infrastructure is comprised of 250,000 Windows Server machines and manages some 150 petabytes of data. Microsoft processes two to three petabytes per day. "You really have to figure out how to process that kind of data to keep your index fresh," Nardella says." ( http://www.informationweek.com/news/software/bi/230700013 )
I could continue to go on but Microsoft is clearly running Internet-scale systems.
His point wasn't that Google has no platforms, he specifically mentions a few groups in Google that do get it right and anybody that has used the gdata APIs for those products would agree that they really are quite nice to use as a third party developer when compared to a typical web API.
His point was that there shouldn't be so much variation on this from team to team and they should strive to make these platform services a cultural core part of the company.
I totally agree with his point, though I'm coming from the outsider perspective. I was really jazzed to hear they finally released an API for Google+ and then crushed to realize it was completely worthless for almost any task. They've recently released an updated API, adding in some very basic search stuff.. but the API is still worthless. Hopefully within a year or so they'll have an API that isn't completely worthless, but it would have been nice if they had one from the start and if they internalized the API culture Steve is talking about, this would have been a no-brainer because the API would be an integral part of the service from top to bottom instead of something being slowly bolted on later.
Android in itself is a successful mobile operating system and has a great install base.
However, I will not call it successful in context of the article above. Android as an operating system has not done anything to drive people to use Google's other (paid?) services - which is what you aim from a platform. You build your company's other products around it - like what Apple does by creating their own paid iOS apps to an extent. There have been numerous articles where people speculate if Chrome or Android is Google's future with Chrome coming out ahead all the time.
The fact that vendors and manufacturers put in their own layers of UI and apps etc. on top of Android makes it Google's platform even less. Oh, and I have not touched Kindle Fire as yet!
The fact there is in fact a debate about what should be the flagship platform (Chrome vs Android) for your company is not a good sign.
Lastly, what's the deal with Android not having Chrome as it's browser?
Larry would do these big usability studies and demonstrate beyond any shred of doubt that nobody can understand that frigging website, but Bezos just couldn't let go of those pixels ...
When I interviewed at Amazon, they were at pains to point out that the company is data driven. One person told me that even Bezos would put a lot of weight in numbers that disagreed with is intuition. Is Steve's anecdote an outlier, or is Amazon not really data driven at all?
when a company says their website design is data driven you can pretty much take for granted that they are bullshitting you. and when they are not, they are wasting the opportunities to find more distant maxima because they are obsessed with finding strictly local maxima.
It's like the bible, once you collect enough data, you can find a passage that supports whatever belief you are trying to defend. Being "data driven" is one of the company slogans ("Its day one!") and there's a lot of people who believe that stuff. On some levels its very true. Some groups are very data driven. In other situations, due in part to Sarbanes Oxeley, you couldn't get at data that was being collected and relevant to your efforts because you had to get a VP to sign off on it.
Data was used to bolster opinions, but unless it was hard and fast proof, it was often ignored as well.
I don't think Larry's results were considered "real" data.
Being able to level criticisms at anyone within the company is one of Google's great cultural strengths. At no point would you ever be fired for having an opinion and expressing it loudly. A long rant to all of engineering CC'd to Larry Page is pretty common and often unleashes many centi-threads of discussion.
"Google+ is a prime example of our complete failure to understand platforms from the very highest levels of executive leadership (hi Larry, Sergey, Eric, Vic, howdy howdy) down to the very lowest leaf workers (hey yo). We all don't get it. The Golden Rule of platforms is that you Eat Your Own Dogfood. The Google+ platform is a pathetic afterthought. We had no API at all at launch, and last I checked, we had one measly API call. One of the team members marched in and told me about it when they launched, and I asked: "So is it the Stalker API?" She got all glum and said "Yeah." I mean, I was joking, but no... the only API call we offer is to get someone's stream. So I guess the joke was on me.
Microsoft has known about the Dogfood rule for at least twenty years. It's been part of their culture for a whole generation now. You don't eat People Food and give your developers Dog Food. Doing that is simply robbing your long-term platform value for short-term successes. Platforms are all about long-term thinking.
Google+ is a knee-jerk reaction, a study in short-term thinking, predicated on the incorrect notion that Facebook is successful because they built a great product. But that's not why they are successful. Facebook is successful because they built an entire constellation of products by allowing other people to do the work. So Facebook is different for everyone. Some people spend all their time on Mafia Wars. Some spend all their time on Farmville. There are hundreds or maybe thousands of different high-quality time sinks available, so there's something there for everyone.
Our Google+ team took a look at the aftermarket and said: "Gosh, it looks like we need some games. Let's go contract someone to, um, write some games for us." Do you begin to see how incredibly wrong that thinking is now? The problem is that we are trying to predict what people want and deliver it for them.
You can't do that. Not really. Not reliably. There have been precious few people in the world, over the entire history of computing, who have been able to do it reliably. Steve Jobs was one of them. We don't have a Steve Jobs here. I'm sorry, but we don't."
Interesting comment on Google+ as a platform. I love google products. There will be lots of innovation (gmail, google voice, g+ etc) if google provides good APIs to external developers and treat these APIs as first class citizens.
Facebook doesn't even come close to eating their own dogfood. They extensively make use of private APIs, and their
commitment to platform developers is legendarily poor. I do agree that Facebook's success going forward will be increasingly dependent on their platform, however.
This. The fb platform is fine for small start-ups who don't have any expectation of SLAs, or huge partners like Zynga who drive their profits or traffic. But I'm at a $600m ecommerce company and we've found their platform to be a disaster. APIs don't work, questions are answered months later by interns who know next to nothing. I know they spend a ton of money/time on it, but it's seems mostly internal facing at the moment.
True. But I think that Facebook is making effort to dogfooding its Graph API, notably, its mobile website and mobile apps are all built off its Graph API (Yes, there are few private API calls, but I don't think that's a big deal as long as "private APIs" don't have functional collision with public ones).
Steve is a smart guy, and I'm pretty sure he realizes that copies have been made and will be available forever and then a bit longer still.
The bit that I don't get: Even if Steve's release was accidental, if you write something like this even when it is for internal use only, you can still count on it being reposted in a public place. 'All of google' is a large number of people, all it takes is one copy and the genie will never go back in to the bottle.
If you want to keep something to yourself don't store it on a company website or write it out in an email.
Company confidential typically translates into 'delayed, uncontrolled publication' or 'evidence to be used against you' depending on the circumstances.
If you can't stand by your statements in full view then you probably shouldn't make them to 10K+ people, especially not when you're a well noted blogger.
There must have been thousands or tens of thousands Google-internal blog posts, Buzzes, emails and now Plus updates about people's perception of what's horribly wrong with some aspect of Google. AFAIK none of those leaked widely. Why would this be different?
Because Steve is very visible. Random googler 'x' giving his opinion is one thing, a guy with the stature of Steve Yegge doing the same is quite another.
Especially one where he pretty much writes that Google's #1 is not 'Steve Jobs'.
Really, I think that no matter what that this would have found its way to the general public somehow. That said, I think it's great that he speaks his mind like this, even if it is intended for an internal audience only.
Internal blog posts written by Yegge earlier didn't leak afaik. Incendiary technical posts written by people in positions of power didn't leak. I mean, not even hints of them, let alone the full text. Maybe the engineering culture has dramatically changed in the last few months, but it used to be the case that full copying of internal technical discussions to external forums would have been totally unthinkable.
Hmm.. Great level of detail in steve yegge's post for a rant....Infact one of my pain points with google+ is not being able aggregate(#tags) and publish feeds from my blog.
slightly OT: does anyone else think there seems to be a trend of ranting recently, i mean Ryan Dahl,ted dziuba, and now steve yegge??
This post reminds of me of why I couldn't believe Google would launch Honeycomb with almost no apps optimized for it, when Microsoft managed to have 2000 apps at the launch of WP7.
Also, why they didn't try to bring the content owners on board for Google TV, and why I think they will be missing a huge opportunity to turn Google TV into a "console platform" . But I feared they won't "get" this, and this post is setting my expectations even lower for that.
I knew Google didn't have much experience with an OS, compared to Microsoft or Apple, and I think they are learning, but they need to learn much faster, and they really need to put some "design thinking" into everything they do, from the ground up. They are starting to learn about good design/polish on the surface, but it really needs to happen at the core of the product from day one.
So this is somewhat related, somewhat off topic from the subject at hand, but...
As for bringing content owners on board - as far as I can tell, they did. Their developer support was also very responsive. A+ on forming a dialogue with developers.
Their problem IMO is that they don't appear to feel it in their bones how important product differentiation is. Maybe they get it, but I don't think it's sunk in.
Allow me to elaborate. What's the difference between an embedded device, a phone, a mini-tablet, a tablet, and GoogleTV? Well...
* Embedded devices might have a pre-2.x Android that never got updated. But that's okay, nobody develops apps for them anyways.
* Phones probably have 2.1, maybe 2.2.
* A mini-tablet could be 2.1 or 2.2, and has the mobile device UI.
* A tablet might have 3.0 or 3.1 on it.
* GoogleTV has 3.0 on it, but its market app might filter like it's 3.1. How do you differentiate this in code? Version specifiers, specifying notouch (which will break if googletv ever supports any kind of touchscreen, on a large screen size (which is smaller than a tablet, which has a extra large screen), etc.
Want to develop for iOS? Great. Would you like iPhone or iPad? Or both? Need to make sure it works on 99.9% of the devices that can download it? No problem. And hopefully, sometime in the future, maybe Apple will see fit to enable the AppleTV for developers.
Circling back to address your statements, if Google's aim, or one of them, is to make GoogleTV into a gaming platform, I don't have much confidence in Google's ability to deliver on that goal, because GoogleTV is little more than a revision of Android plus some optional APIs, and Android is architected as a multi-device platform. It's not a single device with multiple revisions, as is the case with the iPhone 3G/3GS/4/4S sequence, or even the Nintendo DS and its subsequent revisions. There are reasons that Android isn't as compelling a game platform as iOS is, and that is a big one.
With respect to building a multimedia application platform, GoogleTV has potential if for no other reason than it's one of the few set-top boxes with an app store, period, and a programming interface that isn't thoroughly obtuse, but the GTV's design and usability are very weak, almost pre-alpha, even, as if it were scarcely more than a straight-up port of Android's touch-optimized interface with an inadequate amount of polish. It's nothing your average TV-watching user is going to grok, if the keyboard+mouse remote didn't clue you in.
Really, what it comes down to is that, even for hardware, Google just doesn't seem to want to release something "perfect". They just want "shippable" -- or I daresay "just barely shippable" - if you can call it that. Even if they have critical bugs, so long as developers can work around them, even if they haven't nailed down the UI, and make a sweeping change right before public release, that's still "good enough". And "good enough" is the enemy of "great".
Until Google puts design thinking into their products from the ground up, as you put it, they aren't going to be able to lead the marketplace.
I have one odd guess about why Google can get a decent "platform". They hire "hackers". Their recruitment process involves 99% computer science and almost none software engineering. So the people there, being amazing at the most complex computing tasks, just aren't seeing the "big picture".
I notice that he doesn't think much of Amazon's hiring practices, but doesn't really address the fact that Google's aren't really that great either. When it works, it works, but the hiring committee system they use has some failure glaring flaws as well.
The unmentioned take-away here is not simply the focus on Platforms, but the reminder that 'Circles' are a weak feature to build a social network on. Why? because user's had already build organic circles across multiple social spaces (e.g. professional-only on Linkedin, perhaps family or college-safe on Facebook, close social on gmail, etc).
What's the advantage to multiple platforms for multiple circles? you don't accidentally post your internal company rant to the whole world. You don't post pictures of red cups and beer bongs on Linkedin and you don't talk about work on Facebook. This is how users were operating before G+ launched, and is precisely why users aren't diving in.
It's too bad he screwed up the internal posting. It's a great read for us outsiders but utltimately it just amounts to industry gossip. But internally the embarrassment might overshadow the impact of what Steve was trying to say.
Google+ still has a chance. But time is running out. Having just used it with a class for a semester, it was great (because all my students use Facebook so they weren't distracted!)but there are some huge gaps. Will everyone be gone before they are fixed. Why oh why, didn't they introduce shared circles from the start. Try to get 50 students to add each other, it is just not possible. This is the customer service Amazon point that was made so well in the article. I think it was great that it went public, there are lots of great points to think about.
Ha! Yep. I thought it was a bit too honest for a public post by someone who's still employed there.
Of course, maybe he'll be moving on. His very first line was comparing his tenure at Amazon (6.5 years) to "and now I've been at Google for that long". I don't think that's a coincidence, even if he doesn't consciously realize it yet.
HN is always trying to fire Steve. He's frustrated that such a good company can be so bone-headed. Fair enough. He seems also pretty comfy there. That said...
Steve: if you're reading this, go do something better. Google is feeding your wallet and ego, but life is more important than that. Go. Do your own thing or join something like Khan Academy -- there are a million places you could put your talent that would make the world a better place.
Amazon engineer here, just a couple of observations after a few years at the company.
As many people said, there's a wide variability in experience at Amazon depending on the team. And I would say even more, depending on where you sit in the graph. The bottlenecks at the center have more clients, higher TPS, more stringent latency requirements. And their support burden is worse and the engineer's life is worse. It's hard to move everyone forward together. Once you add enough constraints the problem gets too hard to solve. But like working at Microsoft, you pay these prices in order to have high impact, a high number of customers, and high influence. A big question for large service federations like Amazon is how to smooth out these bottlenecks. Like Stevey's rant about code size though, first you have to admit you have the problem, service size.
I joined with a team that was not service oriented. It was like a collection of cron jobs that ran single threaded applications directly updating the DB. It was painful and very hard to alter these stateful applications without breaking things.
I moved to a team that ran a collection of services and it was so much better, like night and day better. The path forward for us became obvious when we started thinking about how to migrate between APIs and decompose our services still further (and by the way, our support burden is comparatively low).
What makes service oriented architecture at Amazon great is that it is cheap. The other two Amazon advantages Steve mentioned are not coincidences, they are what you need to make service rollouts low-friction. They are what makes it possible to shoot first and rollback later. With rare exceptions they are used by the entire company.
Remember Sinofsky's "don't ship the org chart"? It is a lie. You cannot avoid it. You always ship the org chart. So the real question is, what is the org going to look like so that we ship something good-looking? That's the real purpose of Steve's rant. No matter how much politicking or boosting you do for this important service-oriented architecture, it doesn't work unless you have a service-oriented org chart. And Google does not, apparently.
The big big question for the internet and decades in the future is, you say you're going to organize the world's information. What is the organization going to look like? I think it'll be more interactive. The API will be there, there will be writes. It will be less centralized, with the appropriate authorities owning data and providing an interface to their small piece of the world's information. I think that's eventually going to mean you own your identity and provide as much interface as you care to. The arc of the internet is long but it bends toward decentralization (assuming we keep it out of the hands of the fascists).
For me Amazon is a microcosm of that future, and it's going to be interesting to lead the way there.
Very informative and well-written post, thank you. Nice evolution of the MLK quote.
What I'm wondering next is, What is the practical take-away for startups and relatively small efforts that are looking to scale? Regardless of tools-stack, what should a forward-thinking developer do? Is the answer to design around a RESTful API specification right from the beginning, then building layers of server-side and client-side code exclusively using that API? etc. etc.
about software that is alive because it's extensible. That is true of your startup too. You don't want to be a "site", you want to be a "service". And that means you want to be an authority for a unique kind of data, that you want your users to create and use.
I think the Google+ data is pretty unique and cool. I like the user experience. But you can't call it a service, which is bad news until they get their crap together.
I'm a strong believer that flowing data puts pressure on software to work correctly. You want a public API because you don't assume that you and your team are world class geniuses who have exhausted the search space of valid use cases for your data... but your customers can, close enough. (A very Amazon virtue: start with the customer.)
You want to have a well-designed interface for yourself and your users because it's so painful to scale, migrate, control security, etc. without it. So sure, I would say start with it as early as you can stand. Make it public as soon as you can. Allow your users to contribute and build on your data and service.
You'll probably treat your public-facing interfaces with different levels of scrutiny than internal-only ones. This is convenient, but it might be a mistake. You don't want to put off security or user data integrity until it's too late.
Having multiple services means that you can scale them independently. This costs some overhead but you'll be able to right-size your hardware, say with appropriate fleets in EC2.
Sorry that's all kind of generic, but that's about as deep as I would go without a real-world example to talk about.
The High Scalability blog is one I would recommend at the leading edge of this thing. I see posts on the front page alone that cover all I've been talking about and more.
Thanks for both the links and the advice - this is making more sense.
It would be fantastic if someone - maybe you, since you've got a high-level 10,000' view down to the on-the-ground detailed experience - could consolidate this into an article and provide a guide on how to build software as a platform from the get-go. Any chance of that? :)
which came first, the product or the platform? I remember when twitter switched over their public site and services to run on their API. Instagram just built theirs earlier this year. If the platform has an outage, so does the product. It's tough to justify a platform until you have traction, and unfortunately the industry track record reflects this.
Steve, you rock! Don't do the Jerry Maguire and recant your memo to everyone. If Google's executives have risen so high in their own self-estimation that they can't smell the dogpoop sticking to their shoes, then you are better off riding your own wave that started here. Follow your heart and the original inspiration for this rant. I believe in Google, and hopefully you will get a raise instead of a pink slip. Google is a good company that a lot of people want to keep rallying behind. Sometimes it takes a lone wolf, the sound of a gunshot, to shock the cows out of the self-induced trance inspired by their own mooing. Everything you said was true, and those who CAN and WANT to know, KNOW it. Your rant rides to a vast body of water - let's see if the big horse drinks.
I found this post on hn-daily so I feel I'm a bit late to the party but still this is one of the most profound and interesting things I've read lately regarding technology and had me pondering on hours how this approach can even really benefit my small small company.
Anyway, after reading this I feel really hungry to read more of such posts which tell you what the turning points were of a company and why you should be doing it too or not. Anyone have any links to similar such-must-read posts?
I don't completely buy the argument (the marginal utility of learning from the first and second iteration isn't always as meaningful as you might think) -- but I partly buy the argument. And it's sort of relevant here. I.e., it's hard to be both inventive and an integrator. Though once you're aware of the problem it might not be that hard.
The fact that he didn't mean to post this is proof enough that G+ sucks. And he's spot on about everything he said. Google doesn't get platforms at all. Look what happened to Blogger, arguably their most successful platform (which they didn't even build).
Is it really proof? I have used G+ only a handful of times, but posting has been incredibly simple -- to classify who should see your post you click in a box and select the groups who should have access to it. One of them is "Public."
I'm struggling to see how someone intelligent enough to work at Google could not figure this out. Perhaps it was just an error caused by posting too quickly, or it wasn't an error at all.
I don't completely buy the argument (the marginal utility of learning from the first and second iteration isn't always as meaningful as you might think) -- but I partly buy the argument. And it's sort of relevant here. I.e., it's hard to be inventive and an integrator. Though once you're aware of the problem it might not be that hard.
I worked at Amazon from before Steve left to sometime later. I remember being excited when Larry Tessler was hired, and dismayed at the way he was treated. Everything Steve says about Amazon is true, only, it was much worse. Amazon was, by far, the worst employment experience I've ever had. I'm not saying that lightly, I worked for a dozen startups, a couple of which crashed hard in the most gut wrenchingly painful way you could imagine. (Though by far most of my experiences were positive.)
Amazon was a purely political environment where, if you weren't watching your back you'd get stabbed and become a rung in someone else's ladder. In our group, the manager had zero engineering experience (literally had gone to college to be a prison guard, somehow ended up "managing" programmers, though barely computer literate.) In fact, it was so bad that when I'd finally had enough, and quit (because my transfer to the AWS team was blocked by the prison guard) I vowed never to work for anyone else, ever again. Which means, I had to do a startup.
Anyway, the SOA effort was in full swing when I was there. It was a pain, and it was a mess because every team did things differently and every API was different and based on different assumptions and written in a different language.
But I want to correct the misperception that this lead to AWS. It didn't. S3 was written by its own team, from scratch. At the time I was at Amazon, working on the retail site, none of Amazon.com was running on AWS. I know, when AWS was announced, with great fanfare, they said "the services that power Amazon.com can now power your business!" or words to that effect. This was a flat out lie. The only thing they shared was data centers and a standard hardware configuration. Even by the time I left, when AWS was running full steam ahead (and probably running Reddit already), none of Amazon.com was running on AWS, except for a few, small, experimental and relatively new projects. I'm sure more of it has been adopted now, but AWS was always a separate team (and a better managed one, from what I could see.)
Regarding Bezos's micromanagement: I do remember, one fall, in the run up to christmas, surfacing an issue with the site several times. My manager told me that his boss didn't want to change it, but I knew it was a bug. I went above his bosses head and told that guy (who was a Bezos report) about it. I even cced Bezos on an email about it, and of course, the VP chewed out his underling who chewed out his boss, who chewed out me.
Then, at 3AM, the night before I was supposed to fly out to visit my parents for thanksgiving at 10AM, I was awakened and made to fix the problem. The problem I'd wanted to fix 2-3 months earlier. The problem I'd gotten chewed out for trying to surface but been told "won't fix" all the way up and down the chain of command. Because Bezos had gone to buy something on the site and had seen the problem himself. So, my thanksgiving trip was ruined, of course, and I had to do it- RIGHT THAT MINUTE- in the middle of the night.
The icing? After fixing it and going back to bed, and coming in the next day (which was a vacation day, mind you, as I was supposed to fly that day...) I got chewed out by my boss for coming in at 10am.
I don't know about you, but if you get woken up at 3am and spend 2 hours coding, you should be allowed to show up for work the next morning at 10am.
Bezos was right that it needed to be fixed. However, he must be a B player because his direct report was a C player who wouldn't let me fix it when it was discovered.
Yeah, I wouldn't recommend you go work at Amazon.
Sorry if I've gotten off topic. It's rare that you can find candid descriptions of what it's like to work somewhere.... since Steve felt free to be candid, I figured I'd share my experiences. I also worked for other large companies, like, for instance, Microsoft. Microsoft was weird in a sort of cult like way, and had its own management problems, but was much more enjoyable... and really treated their employees a whole lot better. At MSFT, hardship was having to share your office with another programmer. At Amazon, I was literally in a hallway, with a dozen other people, with major foot traffic walking past my desk (And right behind my chair) all day long, a lot of noise and a very large window over my shoulder reflecting right into my monitor... all day long.
Worst Job Ever.
Thank you for indulging my venting.
 It wasn't just me either, by the time I left, %60 of the team had already gotten internal transfers or resigned. I was being loyal, and went to HR to try and get some advice or mediation, but despite being promised confidentiality, the notes of my meeting with the HR rep were forwarded to my boss.
 At amazon they have this crazy idea that engineers should have pagers. I'm sure it sounded great at the time. I didn't have the pager that week, but that didn't matter to the boss, who knew I'd been the one to find the issue. So he called me. I think the phone rang for a good 20 minutes before I woke up.
Never let your employer give you a pager, unless you're an ops guy.
 After I left, and after my team was literally decimated by the hostile environment created by our boss, I found out he got promoted! Yep, now he's managing managers.
 Why was the boss up at 3am? Well, Bezos called him, but he'd been up already... he was a hard partier who, just between you and me, also was selling drugs on the side. Most of the stoners in PacMed were getting their bags from him.
I interviewed at Amazon and got an offer recently, but I have to admit, it did kind of sound like this kind of job. I really liked the offer stage, where I asked for 4 weeks vacation (what I have now) instead of their standard 2 weeks. "That's not negotiable! It wouldn't be fair if you got better benefits just because you're better at negotiating than others on your team!"
For me, it's hard to make even 4 weeks work when I have to count programming conferences as vacation. My ideal job would offer me twice that vacation (or pay for 4 conferences a year, their choice). So far, it seems nobody will do this in the US.
(And you wonder why people are always posting to HN about how they can't hire anyone. The problem is not that people don't want to work for you. The problem is that you can't afford them.)
I've looked at the European statistics a while ago, and the average working hours are pretty much the same wherever you go, regardless of what's the maximum per week, how many vacation days you get and how many holidays the country has…
And I think the general first-world deviation isn't that big either, apart from the Koreans (and to a minor degree, Americans).
Out of curiosity, is there much of a start-up culture there? If so, do founders (and first employees) adhere to the same guidelines? At least here in the U.S., founding/working at a start-up basically assumes long-ish hours.
Sweden has 5 weeks of vacation and a 40 hour standard work week, and pretty successful companies such as Spotify, Skype, Voddler, SoundCloud, Flattr, etc, were founded here. I doubt most of those founders only worked 40 hour work weeks though, as an entrepreneur you decide your own hours, and overtime for regular employees is not uncommon.
It probably varies a lot depending on company culture. A friend working at a startup recently got hi-5's from the bosses when he said he had worked 11 hours a day the entire previous week, no talk about taking compensation leave to rest or anything like that. At my company (not a startup) an 11 hour day would be pretty extreme, and if my boss was aware he would probably insist I come in late the following day.
I think the the start up culture is less prevalent here in the Netherlands than in SV but it certainly exists.
From my personal experience I can say these guidelines are not strictly adhered. The young, university educated people I hang out with all work more then 40 hours and take about 20 vacation days and work 40-60 hours, more if necessary.
However I think direct comparison is pretty hard. What does count towards the total amount worked? For example including social drinks in their total biasing the amount upwards.
I just checked and you are right, it is actually five weeks. Sorry about that. (I have my own business so the rules don't apply to me. Let's just say I have grounds for an epic lawsuit against myself :))
The legal minimum in the UK is now 5.6 weeks; That's still amongst the lowest in Europe. I simply cannot comprehend how even the best paid workers in America expect less holiday than the lowest-paid European labourers.
As for taxes, I'm Norwegian, live in the UK and looked into moving to California. At my income level taxes would end up within 2-3 percentage point of each other regardless of which of the three places I'd live.
Difference being I'd get far more services for my tax money in the UK or Norway.
There certainly are places in the US where you'd pay far less taxes than in almost all of Europe, but far from everywhere.
At Oracle UK I used to get up to 42 days, of which 10 could roll over to the following year. We were periodically overworked and under-compensated anyway (which is why I left). Our US colleagues hated were really envious.
If I recall correctly, the US is the only developed country without mandatory minium paid employment leave (federal employees excepted). Which small-government fans might accept readily, but it also has amongst the lowest actual average vacation times… Apparently free citizens want to work.
(One statistic had the Canadian average lower, though)
Strangely enough, this doesn't seem to have a straight-forward correlation with yearly hours worked. Italians have about the same number as Americans, but 20 mandatory days and quite a lot of Catholic holidays. Koreans and the Greek seam to top that list, although I'm currently not a big believer in Greek statistics…
That being said, I've yet to actually take a vacation day at Amazon, despite regularly getting automated e-mails about it from HR. I send a polite OOTO e-mail to my team and that seems to be sufficient. This may very from team to team and manager to manager.
2 weeks vacation plus 6 days personal days when you start. After a year, they bump it up to 3 weeks. They raise it to 4 weeks after 6 years of employment. Not too terrible, really, but not great either.
You know, I think when I was hired, I went from 3 weeks of vacation to 2 weeks... and I didn't even think about it, because I was too busy dealing with the fact that they didn't want to pay me anywhere close to what I was making before. Which was, by the way, a below market salary paid by a startup, to begin with! I finally got them to meet it with a "hiring bonus" that would match my previous salary for the first years I was there... I left before that ran out.
Other mistake I made-- I'd been working for startups for so long, that I really, really wanted a nice, stable job, where I would be able to put in 40-60 hours a week, and leave my work at home. That's something they pitched me on, too. So, I compromised... I figured, less stress, a little less compensation.
Turns out, it was much more stress. Even if your hours are lower, really bad management can make your life terrible. (and it wasn't just my boss, it was pretty much the whole of engineering management, near as I could tell.)
According to "Showstopper!", Microsoft would allow developers to go MIA for a bit after completing a tough project. That seems like a fair policy if you have a mature set of developers who deliver on their commitments.
There are significant parts of Amazon where this does happen - but it really varies from department to department, and manager to manager.
The depressing thing is, when you do get some time off after pulling long hours for a tough project, it's all done under the table. Amazon is extremely cheap when it comes to off-time, so managers essentially have to put their ass on the line to let their reports get well-deserved downtime.
Kudos to the bosses that do it, but one of the reasons that eventually convinced me to leave was that... things like this shouldn't have to be done with a nudge and a wink.
I interviewed for a support role at AWS last year, and that was bad enough. 1.5 hrs of a technical screening call, followed by 6 hrs straight (like, no breaks whatsoever) of face-to-face interviews with 6 separate people, only to be told that I needed to improve my networking skills, and that I should take some networking certifications and apply again next year. The beautiful thing? I never claimed to be a networking guy in any shape or form, and it wasn't part of the job description for the role I applied for in the first place. Sounds like I dodged a bullet...
I concur, I interviewed with them back in April this year 1hr tech call then 8 hours non stop interviews 9am-5pm (each with at least 2, sometimes 4+ people) Even lunch break was an interview! I didn't get an offer it in the end, their reason - not enough Java/J2EE - And not once on my cv/resume had I mentioned I had experience in that?!
And yes, one guy came in and introduced himself as the 'bar-raiser' sat back in his chair and expected me to be somewhat impressed by this.
"We set a high bar! B players hire C players! Only hire A players!"
The way it works at amazon is, if anyone doesn't like you, you're out. It doesn't matter if its relevant or not. It doesn't matter if the person who doesn't like you knows nothing about programming. My boss- the one with the criminal justice degree- would often veto people because they "weren't good programmers". Of course, he had no clue who was a good programmer and who wasn't because he couldn't program!
Sometimes, a person will be angling for the position you're interviewing for. Only, that person will also be included in in the interview loop. They have an incentive to say no, because they want the job.
Inside Amazon, this is called "keeping a high hiring bar". So, they go thru great expense and hassle to bring people in, and then pat themselves on the back when they arbitrarily rule someone out. Saying no, means they're doing their job, keeping that bar high! They once said no to a guy I'd worked with previously, who, as far as I'm concerned, was a much better programmer than me. (Better looking, gets along with people better, etc as well.) I mentioned this to the hiring manager, and he said "We have to keep a high bar!"
How many people do you think want to interview with Amazon again after going thru a 6 hour process like that?
Since their process is completely arbitrary, sometimes they get really great people (god only knows why they stick around-- I think a lot of engineers don't really know their own worth) but they also get a lot of people who randomly rub the right people the right way and get hired. It was completely arbitrary, it seemed to me.
I believe the theory is that the A players, secure in their own skills, want to be able to delegate work to people who are as competent as they are, whereas the B players want to surround themselves with people who make them look good by comparison.
A prospective hire who is an A (in whatever field) wants to work with their kind, and so is less likely to sign up at a company full of B-level people.
Also, as mentioned above, it is harder for many B-level people to recognize and value an A level person in the hiring process. An A may come across as arrogant by describing things as good or bad to a B when they're simply knowledgeable and confident because of that.
And by that mechanism, C players use the "only hire A players" rule to claim that A players are "not good enough", though such objections don't get raised about other C players.
There were some A programmers at Amazon, and they were respected, but they weren't the ones who made the hiring decisions. Since any B or C can veto any hire, A people often didn't get hired in favor of B or C people. (and A people who already worked there, eventually, got excluded from hiring loops because they're "needed elsewhere.")
what prevents A players from hiring B and C players
They know it will not end up good for anybody. Also they understand hiring another A player or if possible an A++ player is good for overall health of the company.
prevents B players from hiring A players
Ego and in a big corporation, the fear of the hire going ahead of you.
Also another deadly combination is the B player who hires another A player thinking they themselves are A+ player and spoils the fun for everybody.
proponents of the mantra would say that this means you're an "A" player.
there is some research that shows that your own competence directly affects how good a judge you are of your/others relative competence, i.e. people who are low competence will rate themselves routinely as 9-10 / 10 but people who are high competence will rate themselves 5-6 / 10 ...
I remember being "Top Graded" as an "A Player" when I was at Rackspace. In addition to everyone quickly beginning to hate me, I caught an article on Top Grading in the next few days which said that A players have an average tenure of 3 months, mostly due to the fact that we shake things up and are unafraid to challenge anyone, which eventually gets tiring. B players are loyal and anyone who has actually read on how all this is supposed to work realizes that C players are just in the wrong job, possibly even at the right company. They're unhappy and they stop trying, unless you can redeploy them.
Yeah, the "bar raiser" is a concept that you will hear about when you interview there. Mine was the last guy after a very long day (sixth interviewer), who actually introduced himself to me as "the local bar raiser", and then got me up writing algorithms on a whiteboard for an hour. Like I said earlier, I can do that stuff but I'm no network guy.
> How many people do you think want to interview with Amazon again after going thru a 6 hour process like that?
Not me that’s for sure, and I thought it was very arrogant of them at the time to suggest that I go off and getting some network training on my own time and expense and apply again next year. Like I’ve nothing better to do.
> Since their process is completely arbitrary, sometimes they get really great people (god only knows why they stick around-- I think a lot of engineers don't really know their own worth) but they also get a lot of people who randomly rub the right people the right way and get hired. It was completely arbitrary, it seemed to me.
This seems to be true for the vast majority of businesses.
Boot polishing manager's shoes works wonders in many companies. In a lot of places especially large corporates, Managers build their own gang. Loyalties run in the hierarchy throughout their stay in the company.
Now you might be the greatest guy on the team, but if you don't accept the manager as the king you are screwed. Your effort goes down in the drain. You work real hard to prove yourself and you get branded as a bad team player. Yes you are expected, to give away your work to the managers favorite 'kids' in the team.
I see this thing originates very early, even during the interviews itself. Such managers have knack to identify such people. And they generally get hired.
Needlessly to say such managers once in the company won't rest until they have ruined everything they will ever touch. And people whom they hire replicate the same. This continues until the whole company is left to rot.
I can't believe Amazon still conducts their interviews in 6 hour blocks. I interviewed there in December 2000 (yup, 2 weeks before the bust) and I was flown in to interview with a crap-ton of other people.
We interviewed for 4 hours, then broke for a 45 minute lunch (where we were basically interviewed/watched by employees), then interviewed for another 3 hours. Then several of us were taken out for dinner by employees where, duh, we were quasi-interviewed for our social skills. That kind of day is crazy and I never want to do it again.
Yes I agree, probably the only difference is that they would make you come in on six different days for your six interviews, and maybe spread them over a few months, and then still tell you no over something apparently random. I refuse to interview there despite being approached by them twice, I've heard enough stories from my friends to put me off.
Sounds like the "screening day" I went through at a large multinational here in the Netherlands. 5 25 minute interviews, lots of talking, presentations, got an offer, just so they could decide "Oh yeah, we have people with nothing to do, sorry, can't hire you"
As an ex-Amazonian, I have to second your opinion. It was by far the worst employment experience I had at a tech company. In my 10 year tenure, I fortunately didn't come across any company as bad as Amazon, when it comes to how it treats its employees. The management doesn't have any value for the lives of their developers, and use them as tissues. Use and throw seems to their policy. If you can take their abuse, and don't value your personal life, you can survive there long enough. You are expected to work like slaves, always on call. Office cubes were cramped, there is no free soda, drinks. Even coffee they stocked in the kitchen was cheap. They celebrate frugality at the cost of quality of working conditions they provide to their developers. No wonder, one of the SVP's life misson when he joined Amazon from Microsoft was to make Amazon a place where developers would love to stay. Average turn-over at Amazon is around 18-24 months. Most of the line managers were clueless and sometimes completely non-technical. I wondered why smart engineers would even consider working there, when they can work in awesome companies in the valley where they celebrate/cherish people they hire, and actually care about them. Most of the kids who are hired right out of school, wisen up, and leave in 2 years. I worked at Microsoft too. Microsoft with all it faults still takes amazing care of its employees. Great perks. Amazon just pays salary, and its medical insurance is a joke when compared to Microsoft. One other biggest gripe I have about Amazon is that it leverages so many open-source technologies but they don't give back (much) to tech community or industry as such. It is not in their DNA. Their attitude is similar when it comes to its people. My advice for anyone considering Amazon, should seriously talk to current and Ex-Amazonians, and get a real-picture of what you can get out of Amazon. Folks who don't have the faintest idea about working for Amazon seemed to have downvoted a similar opinion of mine in the past on HN. For clueless folks who think, I am some dis-gruntled employee, I can gladly quote/refer to Yegge's post now. Quitting Amazon was one of the wisest decisions I made.
Amazon doesn't just pay salary. I got salary, "signing bonuses", and stock. The overall compensation seems to be pretty good from what I can tell online. Then again, I could be lucky since my stock grant was near the bottom of the recession.
Amazon is still a great place to learn, if you are willing to take the brunt of operations and don't mind having no life. Dismal working conditions, over-working, heavy operations load (group specific), having no-life, working over holidays, poor line managers, cover-your-ass politics aside - It is one of the few places where you truly get to see how large scale web-based/distributed systems are conceived, built, and operated. It could be a great career launch pad, if you are just out of school. It will be like drinking from a fire-hose. If you are single, and in a good group with the right set of peers then it could work out well for you. If elsewhere is a super hot startup (Quora/Palantir/Dropbox and ilk or good tech companies like Google, FB, Twitter, Linkedin or even Zynga (pre-IPO makes it hot in my opinion) then I would seriously consider the down-sides of working for Amazon, and living in Seattle.
> The problem I'd wanted to fix 2-3 months earlier. The problem I'd gotten chewed out for trying to surface but been told "won't fix" all the way up and down the chain of command.
I mostly don't have responsibilities (family) and 6mo living expenses and supreme self-confidence (aka the perhaps non-rational belief that'll I'll find work or at least make a living no matter what). Because when people try to pull shit like that. I email Bezos and all the people who said won't fix, (paraphrased) "Fuck you, you ignored me months ago when I brought this up. Now I'm ignoring you when you ask me to drop everything and fix this right now! You should fire these incompetent fucks but you will probably fire me. That's fine, this company doesn't deserve me. Happy Holidays"
Yes, that's kind of interesting, isn't it? If those horror stories are true (and we have no reason to doubt they are), it kinda shows that the way you treat your employees doesn't really matter to your success.
It certainly matters a lot to them; it matters from a moral point of view; but from a practical point of view the only individuals whose happiness matters are the customers.
Of course, if your employees are so unhappy that they make your customers' life miserable, you have a problem. But Amazon is still very far from that.
On the contrary, the way Amazon treats their employees does harm them substantially, they just haven't paid the price visibly to the public (or quite as hard as they will, eventually).
Attrition at Amazon is at horrific rates. I know the actual number, though I'm pretty sure that'd violate my NDA to reveal. It's high. It's really high. Guess a really truly terrible number. It's probably higher than that.
The stream of people leaving the company isn't a trickle as it is a well-managed places. It isn't even a modest stream. It's an outright deluge, particularly in this market where everyone else is desperate and willing to pay (protip: Amazon, as a rule, is not).
This is starting to show itself in many places in the company. In a lot of places there are no longer any senior engineers left who know how the system works. In their place are fresh-faced college grads struggling to contend with a system they neither have the experience nor the documentation to maintain, much less extend. The average tenure of the Amazon engineer is embarrassingly short, and coupled with the company's notorious lack of documentation, it means that technical debt is accumulating at an alarming rate.
There are constantly projects to completely revamp/redesign some portion of Amazon's systems. In my observation this is less about an honest improvement over the old system (sometimes there IS no improvement) but rather because nobody knows how the fuck the old thing works. The truly sad thing is, they have trouble keeping engineers around long enough to even see that redesign through.
If you know where to look on Amazon's site, you would see lots of evidence of this already. Extremely deep integration into systems that literally no one still with the company understands. Tons of mission critical code whose original author is long gone, no documentation exists, and in fact the code isn't owned by any team. I've seen many hacks to work around these problems, though I doubt they'd be super apparent to the common Amazon shopper.
The problem here, like many other companies in a similar stage, is that very little of Amazon's management has a technical background at this point. Bezos certainly does, and I still think he's one of the best CEOs in the industry right now, but many of his underlings... not so much. A lot of management do not see this accumulation of technical debt. Difficulties working with said debt is perceived as either "natural" difficulties of working with technology, or worse, incompetence. Amazon's internal existence is a depressing cycle of: hire people, people spend eons learning how the previous guys did it, people write code, people get fed up and leave, hire more people, people spend eons learning how the previous guys did it...
If any Amazonian management is reading, I have one thing I really want to drive home: stop being so fucking "frugal" with equipment. It is a travesty that my development desktop was a Celeron worth $300 on eBay. Not because I like having the newest shiny, because I couldn't even run multiple dev environments on it, like I had to for my JOB, and building my code took 12 full minutes, instead of, say, 3. Stop shitting on your devs with dinky 5 year-old monitors and give them some screen real estate. There are plenty of studies that outright prove the productivity boost that comes with bigger monitors.
"On the contrary, the way Amazon treats their employees does harm them substantially, they just haven't paid the price visibly to the public (or quite as hard as they will, eventually)."
If it hasn't hit them yet, it might after the rant.
Given the Dilbert Employer From Hell publicity generated by the rant and the subsequent discussion, I'd say that they might have trouble filling in for the people that leave. Heck, even some of their current employees might read the rant and realize how crappy their current situation is.
Off on a tangent:
"I couldn't even run multiple dev environments on it, like I had to for my JOB, and building my code took 12 full minutes, instead of, say, 3."
Local dev environments? My current workstation has a mere 2GB memory and an Athlon X2 which was all the rage in 2005 :) The builds fly, because they are delegated to a compile farm. The added benefit is that I don't have to muck with the build tools settings.
Locally in Seattle, Amazon has a really bad rep. Only on places like hackernews where everyone is excited about AWS (despite its many, huge, annoying flaws, remember when ebs when down - AGAIN?) do people not realize this.
Amazon has lost a lot of key tech talent, it's been happening since about 2006 when the economy picked up a lot more.
Haha it's so sad when companies can't even buy decent equipment for an employee they're spending 30-50x that much on per year. I'm currently spending half my time at this job developing enterprise Java in a VirtualBox instance on an old Windows XP machine with 2GB of RAM. I'm just hoping they pay for the JRebel license before my demo license expires.
I did some interviews with amazon, when they told me that their devs get a 22 inch monitor, I almost dropped the phone. They said that they wanted to keep a "lean startup environment", bullshit. That alone stopped me from going further along in the interview process with them.
When I was there, new hires got 24" monitors. Not too bad - but hilariously enough the old hands had to live with 17-19" old Dells (though they got two of them, as if that really helps that much).
I just don't get it. Monitors are items that survives multiple tech generations, have huge demonstrable benefits (moreso than speedy laptops or pretty offices), and don't even cost much at all! (certainly less than SSDs or high-end MacBook Pros!)
Forgive me for being dense, but is 22" insufficient or were you just suggesting that you didn't believe Amazon? Here in Memphis I've seen devs work on setups ranging from 13" to 24" depending on the team.
>Attrition at Amazon is at horrific rates. I know the actual number, though I'm pretty sure that'd violate my NDA to reveal. It's high. It's really high. Guess a really truly terrible number. It's probably higher than that.
Maybe this explains why I've been contacted by Amazon recruiters three times over the past three years...
I still periodically try out some of the regression tests that I'd done back when I worked there... there are bugs that have been in the site for about 4 years now. I think when my team was reduced by %90 from people leaving, they just disbanded it and nobodies doing that work now. Certainly the major initiatives haven't moved forward.
I don't think Bezos has a technical background... I thought he was a hedge fund guy before moving out to Seattle. But I agree with everything else you said.
The funny thing was, when I got hired I was told that they were going to let people use Macs and that it would be a few months. I had my own laptop I was willing to bring in and use, and though they were trailing macs with a few people, I was told I'd be fired if I used my personal mac for work.
So, I had to use a piece of crap HP laptop. The thing was always in the shop. There were many days when I basically lost an entire days worth of work because it would break. They replaced it several times. (and I was babying it.. .it lived on my desk for the most part.)
So, not only could they have had zero costs by letting me use my own machine, but they lost more than the cost of the laptop several times over in lost productivity by me not being able to work when the machine they made me use was in the shop.
And when I left, they still hadn't approved macs (or maybe the IT department decided they were "too insecure" or some BS.)
While I was there, they were constantly starting initiatives and then abandoning them. Like the restaurant menus. The movie schedules. The scanning of mail order catalogs!? They'd start some project, do a press release, then disband the team and never advance the code again... it would just sit there and rot.
I think one of the reasons that most of management there is not technical is that non-technical people are threatened by technical people in that role. Technical people have quite an edge when managing programmers. I think engineers who express an interest in moving to a management role are often perceived as a threat.
Regarding laptops, the situation has improved a lot from what you describe. Instead of crappy HP laptops, we now have thinkpads like every other tech company. And if you want a mac laptop, they'll give you a new one.
Of course there's room for improvement (SSDs, linux desktop, bring your own OS) but IT is aware of the pain points and making the appropriate cases for expenses and head count.
John Doerr (big-time VC) was at some of Amazon's early off-site meetings and he would always talk about how gnarly it was "inside the sausage factory". Meaning that when you knew what was really going on inside a company, nobody would want to work there.
I don't think Bezos has a technical background... I thought he was a hedge fund guy before moving out to Seattle.
So what can you say about this post posted here 3 years ago. http://news.ycombinator.com/item?id=465882. The blog post was down, archive.org didn't help also :). But as far as I remember the blogger was praising about bezos leadership skill. Also comments on HN supported that. I am reading HN for about 3 years. In first two years I never saw this kind of amazon bashing.In fact there was many post praising about amazon's internal culture. How on earth things change so dramatically in last one year. Is there some kind of PR war happening here? Honest question.
I had the fortunate opportunity to present to Bezos once. That guy is sharp as a tack - asked some very tough, but fair questions, all of which suggested he got what we were presenting and grokked at least the bulk of the technology underlying it. It was not at all a "uh huh that's nice go do it" scenario at all, and I was pleasantly surprised.
He may not write code, but I think it would be a mistake to claim he isn't a technologist.
If the rest of the company's management had half the managerial competence of Jeff Bezos, I'd run back to that company with arms wide open.
PR war? Check out Amazon Glassdoor reviews for engineers! This sentiment has been consistent. I am a little surprised that people were praising Amazon's culture here. This also explains I was down-voted in the past. One thing I really learnt well at Amazon was how not to treat your developers, and what mistakes you shouldn't make to build great, and long-lasting teams.
There is a PR war, and it's been waged by Amazon since the mid 1990s when they went public. They had terrible numbers, and so they reframed themselves as a "tech startup" to get in the dot com boom.... and it worked.
There has been, and continues to be, massive propaganda efforts from Amazon to try and pitch them to people, and to position Bezos as a visionary in the style of Steve Jobs. In fact, I saw an article the other day comparing the two.
It's nonsense. Bezos, in any other context, would not be a bad person. He's got good management skills, and he has a desire for keeping the quality bar high. But the problem is, he doesn't give a damn about other people.
He's got a very utilitarian viewpoint of other people. Every interaction with them, from his perspective, seems to be about how he can best profit from them. He sees people as resources to be exploited.
I'm a pure capitalist, I don't have a problem with trade, but he's more like a predator.
At least, this is what my interactions with him, and the culture he created at Amazon tell me.
You can sustain such an illusion only for so long, however. In seattle, as far back as at least 1998, everyone know that Amazon was a terrible place to work and an even worse place to do business with (as a supplier, etc.)
I knew that, but I didn't want to believe it, when I took the job.
I do accept responsibility for the stupidity that I displayed in doing that, and in sticking around after I should have left as others have pointed out. I could have avoided this, and should have, by simply holding myself in higher esteem... and never taken that job.
I can't speak authoritatively since I didn't work on that component, but Amazon takes the integrity of these things very seriously. I would be extremely surprised if any of these widgets are "tainted", as it were.
For all the crap I've thrown at Amazon in this thread, if there's one thing they are clean of it's working against their customers. It is, by a very long shot, the most customer centric big company I've ever seen.
I kind of agree. They are at a stage, where their treatment of developers doesn't matter much. Walmart treats it employees miserably but they are doing quite well, and rakes ginormous profits. The way a company treats its employees says a lot about management. Amazon's top level management is super sharp. They are not idiots. It is not like they don't get it. The fact is they don't give a shit. As long as you are a success story, no-one really cares. If it ain't broken don't fix it. If there is an objective way to measure developer happiness across all top tech-companies, I wouldn't be surprised if Amazon ends up dead last.
Amazon internal propagand emphasizes that Amazon is a startup. "It's day one!" is a phrase I heard way too many times. They have "door desks" -- which actually cost them more than regular off the shelf furniture would-- but they pretend like they're being frugal to perpetuate the perception that they're a startup. (When I found out about the door desks costs, I was sworn to secrecy, it is very important for morale.)
I think the result of this is that a lot of employees believe it.
I think people generally, want something to believe in.
If you give them something to believe in, and it seems plausible, and especially if its tied to their income, they'll believe it.
And they'll work harder for it.
It worked on me-- that's why I didn't just go back to sleep that night. That's why I stayed on for several months after that, until things became untenable for me. Hell, I was going to stay with the company, I had met the AWS team, had gotten an offer for a position there and was in the process of transferring, and only quit when that transfer was blocked!
In a way, "well run" could mean that you get a lot of work out of your employees, even if they are miserable. I think optimizing for employee happiness can help you, but it isn't necessarily the only way to have high productivity.
Google never actually claims they're a startup, they just say they want to be like a startup.
There're varying degrees of success at this, ranging from "if I squint really hard, I could almost see it" to "Yeah...I don't think so." But I give 'em props for trying, as most companies with 30k employees don't even make the effort.
BTW, I could go all the way up to the VP level within the Search bigwigs and they'd be able to answer this.
I have to agree with your last point. IBM is a "well run" company; they take very good care of their shareholders. Some of the things they have to do in order to take care of shareholders is one of the reasons why I no longer work there. But I still hold on to my IBM stock....
I think there are huge numbers of low level, new, or just... B and C level developers who come in to fill the ranks. A lot of the best devs at Amazon, when I was there, were indians who had to keep working at Amazon as it was the only way they could stay in America. I felt a bit sorry for them (and of course, from their perspective, Amazon might have been great compared to the alternative.)
This country really needs a damn visa for technologists, or something.
Anyway, at some point software development became a very popular career choice and so there is an endless supply of warm bodies graduating from colleges each year, all of whom know the Amazon brand and think working there would be really cool.
My first job was at a company that I'd say was much, much worse than Amazon. Smaller, no real engineering practices, and they'd just chew through developers paying them as little as possible. Yet they made money!
I was migrating a legacy system to a new platform and we got a call from an irate customer. Apparently, he had just paid us last week but now his account was shut off. The odd thing was, no one I talked to even knew what product he was talking about, or what website he was on. I checked with our payments person, and he had sent us a check, but no one knew what it was for! Eventually I tracked it down to some legacy discontinued product that had been handed off between three successive engineers who left the company, then forgotten.
You don't have to treat your employees well, or even make a good product, to be successful. You just have to get people to give you money.
I've thought a lot about this. In part because, you can't generally say anything bad about Amazon without being attacked. "You must be disgruntled" etc. I only made my post because I had the cover of Steve Yegge saying very similar things (Though I went into more detail.)
Most people believe Amazon's press releases. In 2006, they said that AWS powered Amazon.com. It was a flat out lie. But how could I prove it? Fortunately, others there at the time have posted in the thread as well. But come back to HN in a couple weeks when AWS has done their next press release, and say that, and you'll likely be down voted to oblivion.
The thing is, Amazon, and Jeff Bezos are damn good at spin. You see glowing articles that talk about Jeff as if he were a visionary, boldly leading his commerce site into the future of web services. (As I understand it, AWS was pirate operation, which got cover from a politically endowed VP in the company, and they were able to get it far enough along that Jeff saw the value of it, when he'd previously wanted to knife that baby.) Their manipulative ways extend to other people as well.. and when you're getting most of your stuff from them, and you've had good customer services, you naturally inclined to want to believe in them.
People believe Amazon must be good in all ways, because they are good in one way.
Amazon is really, FREAKING, good at fulfillment. Amazon prime, their return policies, their streamlined ordering policies... at this point, ordering things from other websites has so much more friction that they just feel old. "You mean I have to enter my credit card? Why don't you just sell this thing on Amazon.com and let them do it right!"
I don't know how Amazon treats their stockholders. They treat their employees terribly (but they do tend to hire a mix of type-A aggressive and meek. The meek just are grateful to keep their jobs and the Type-As love the political sport). But they treat their customers damn good.
And they have the fulfillment thing nailed cold. I give them respect for that.
But you are disgruntled. You've got excellent reasons for being so. I always wonder why people will use things like that as stoppers for the discussion, the fact that someone is disgruntled alone should not be cause for dismissal, the underlying reasons are what matter. And you've gone over and beyond the call of duty in my opinion here and I am frankly surprised that Amazon manages to operate if they treat their employees like this.
I think you are very right about the customer support thing. That is the one reason why I spend hundreds of dollars a year at Amazon. From the customer perspective (the only I have) you feel like a god. They nailed that one on the head.
Example: My girlfriend sat on my Kindle and broke it. I called and said that it was broken. Without any questions they just offered to send me a new one for free! After something like that I will always go back to Amazon (and tell my friends about it)...
That's amazing to me. I thought such things were never done in software anymore because: why not leave the company and do the same thing in your own startup? Same hard work, high risk, etc, but with giant upside. Was it because of something wrong with Seattle's startup culture?
There are a lot of really great products that simply cannot be built by a scrappy startup, and require the ginormous scale of a place like Amazon to pull off.
Not only for deep funding pockets, but also for existing relationships. Say you had an idea that would dramatically improve online retail - you can either develop a white-box solution and try to shop it around (and have them clone it out from under you), or you can build your own online retail empire (good luck), or you can join one.
It's part of what got me to stick around AMZN as long as I did. Myself and some colleagues were very much of the internal-entrepreneurial mindset. We developed lots of prototypes, some of which received rave recognition throughout the company. I left after I realized my management chain (can't speak for others) had little to no real interest in turning them into products. They were more than happy to give lip service, trophies, and have me put together presentations on how innovative and scrappy we were, though.
A startup doesn't have Amazon's network of datacenters or hardware resources.
(I've never worked at Amazon, but I'd also heard that AWS was a small skunkworks project that basically got cover from Amazon's CTO, Werner Vogels, who protected and nurtured it until it was too big to kill.)
There is no effective Seattle startup culture. I worked in the Seattle area for 7 years, and startups are not really a big thing. Going to work at microsoft is a big thing. You make more money there anyways.
A lot of this is due to the lack of a VC infrastructure I think. no sand hill road there.
It's probably really hard to run a company with tens of thousands of employees and achieve market success while also having everyone inside like and respect you. From a systems standpoint, it's hard to argue with Amazon's recent successes (AWS, Kindle Fire). If they aren't an A company in tech then no one is.
This is not to dispute your observations in any way, shape, or form. Just that it's a huge T-Rex from the outside in terms of objective metrics like products shipped, even if it does have dysfunctional internal organs.
I have been a victim of this down-voting in the past :) Even till end of 2007, majority of Amazon.com was not powered by AWS. If I remember correctly, website team tested out serving traffic on EC2 machines during 06-07 timeframe, and categorically declared that Amazon can't run on cloud without crossing major technology hurdles.
When I worked in retail my name and zip code was incorrect in the company records. When I asked who I should contact to fix this, my store manager told me I'd need to contact HR but to never ever do that. I'll always wonder what would've happened if I had contacted them.
They actually do pay shitload of money to senior and especially principal people, mostly in the form of stock grants. They have really strange vesting schedule too: something like 5% first year, 5% second, 45% third, 45% fourth. To compensate for the dropped income they give you sign-up bonus for first and second years.
I left before my first vest as soon as interesting start up showed up (start up didn't survive, but at least it was fun).
Thanks for sharing. Makes me feel even luckier for failing to get an an offer after being flown in from the east coast in for an interview, around 3 years ago. The gloomy Seattle weather was the first turn-off. The smug (American-?)Indian guy that interviewed me with his legs on the table, chewing a gum and barely looking at me was the second. Glad to dodge this bullet.
Whenever people ask me if they should work at Amazon, I always say maybe in AWS, but never in anything to do with the retail website. I'm glad I did it, I certainly learned a great deal, but whenever a recruiter from Amazon calls these days I just laugh in their face.
Also, when I left two years ago they weren't using AWS for anything internally. S3 got a lot of use, but anything considered essential to keeping the site up had to run on real hardware.
That first month after I quit, it was such an amazing feeling not to have to go on call. I agree, never take a pager unless it's an essential part of your job.
Interestingly, 3 times in the last 2 days, I've had the amazon.com website give me a 404 on a link on one of their pages. I don't remember ever getting a 404 on their site. In all the years I've been using them, which is a long time.
Your rant paints a bleak picture, and I hope my experience of the last 2 days was coincidence.
> of course, and I had to do it- RIGHT THAT MINUTE- in the middle of the night.
There is your problem right there. Why in your sane mind would you even consider fixing it at that moment? You should have told them to FUCK OFF - right at that minute - and gone back to sleep. Right there and then a loud and sound go fuck a rake and fuck off.
I think that in general, when you’re in a toxic work environment, you either realize it’s toxic or you don’t. If you don’t realize it’s toxic, then you are likely to assume that anything the boss blames on you really is your own fault, so you try to be a good team player, which is generally inconsistent with telling the boss to fuck off. If you do realize it’s toxic, then you will be looking for another job—but you don’t want to do anything that would get you fired before you can quit with dignity.
You're absolutely right. It would have meant I lost my job. When Bezos is posting on a ticket, everyone knows it. All the pressure rolled downhill right onto me. This means that, even if I did tell them to fuck off, I wouldn't have been able to get back to sleep. On some level I would have felt I was shirking my duties, and after all, I'd lobbied hard to get it fixed, months before.
I think, ultimately, it is kind of like an abusive relationship. People stay in them because they are manipulated by the abuser. Amazon has a manipulative corporate culture. It's a little bit like a cult.
I'm actually a bit hesitant to talk about this, even years later, because I expect to be attacked for it. (But I'm still pissed off, years later. And I don't really hold grudges, normally.)
I _hope_ I would I told my boss to check his email. Then I'd send him, cc: Bezos, a copy of the email from two months ago. I'd note that I'd done _my_ job, and that I wouldn't be _told_ to do someone else's, for free. If this meant I wasn't their kind of employee then they weren't my kind of employer.
I don't know that I'd actually have the stones for it. But that would be the right choice. I imagine you'd agree, better to get fired, then and there, than be pissed about it for years.
Nirvana, I'm very impressed by your latest answer which shows a lot of maturity and knowledge about yourself. It is so very easy to write "well, I would have told them to fuck off", but in my experience very few people do that in reality, regardless of what they say when not in that specific situation.
I agree that it is quite like an abusive relationship which is of course why you should get the hell out of there. Nothing you say or do will change the other part in the relationship (amazon in this case) and you should just learn your lessons and move on.
Although your employment at Amazon is not something that you look back on with fond feelings perhaps you can agree that it is something that has taught you a lot and in that regard was a good thing for you?
I wouldn't have told them to fuck off, but I'd have thought long and hard about the politics of the situation and what sort of edge I have (if my situation was as dire as yours was made to be). It seems like that could have been your moment.
You don't like politics, but it seems like at some point you have to come to terms with the necessity of politics to effect change in a situation, that is to say if it's worth it. You clearly have an opinion on how things should be done. Bottling that sort of stuff up is toxic.
I think in a healthy, functioning, company there is some politics. The thing about amazon is, it doesn't matter to anyone that I had pointed this out months ago. From my boss up to the person who reported to Bezos, every one of them would be embarrassed by it, but what could I do? Threaten to tell Jeff Bezos? He doesn't care. He was in the ticket and they were all pointing the finger at me. Me coming back and say "But, I pointed it out months ago"... would result in "therefore its your fault because you weren't persuasive enough!"
You can't make people take responsibility. Hell, Bezos would probably say I should have made the change anyway "You failed to take initiative". But if I had made the change, I would have been fired "You're not a team player".
Asscovering is the rule of the day and its very easy in that environment.
Making the code capable of the correct (but apparently not desired behavior), with a simple flag to turn it on is often the right solution (when you've received insurmountable push back, "Disagree and Commit!"). At that point, you document it in an oncall wiki and when someone finally decides it's actually a bug (or the people that said no 'go away'), it's sitting there with a good audit trail so you can tell your teams oncall one or two words and they can flip it over in a few minutes (after some QA). Note: I only learned this after surviving a really bad manager. I'm not saying you should have known to do it.
Having worked for companies like this, I know exactly what you mean. Even the anger, 3-4 years after leaving one of them, is still there. It's a bit crazy, but then, this is somewhere you spend 1/2 of your waking life....
I have mentioned this in the past, on HN, though much more briefly, and was attacked for it. (Though this was on a previous HN account.)
I don't consider HN to be a very receptive environment, especially if you're saying anything perceived as "negative" about certain companies, including Amazon, Google, Facebook etc. Though it varies widely, of course.
Re: the abusive relationship, that's exactly how a lot of bad employment situations work. The parallels are pretty much perfect. This post really opened my eyes about how this kind of situation is set up: http://issendai.livejournal.com/572510.html
I was at Amazon for about six and a half years, and now I've been at Google for that long. One thing that struck me immediately about the two companies -- an impression that has been reinforced almost daily -- is that Amazon does everything wrong, and Google does everything right. Sure, it's a sweeping generalization, but a surprisingly accurate one. It's pretty crazy. There are probably a hundred or even two hundred different ways you can compare the two companies, and Google is superior in all but three of them, if I recall correctly. I actually did a spreadsheet at one point but Legal wouldn't let me show it to anyone, even though recruiting loved it.
I mean, just to give you a very brief taste: Amazon's recruiting process is fundamentally flawed by having teams hire for themselves, so their hiring bar is incredibly inconsistent across teams, despite various efforts they've made to level it out. And their operations are a mess; they don't really have SREs and they make engineers pretty much do everything, which leaves almost no time for coding - though again this varies by group, so it's luck of the draw. They don't give a single shit about charity or helping the needy or community contributions or anything like that. Never comes up there, except maybe to laugh about it. Their facilities are dirt-smeared cube farms without a dime spent on decor or common meeting areas. Their pay and benefits suck, although much less so lately due to local competition from Google and Facebook. But they don't have any of our perks or extras -- they just try to match the offer-letter numbers, and that's the end of it. Their code base is a disaster, with no engineering standards whatsoever except what individual teams choose to put in place.
To be fair, they do have a nice versioned-library system that we really ought to emulate, and a nice publish-subscribe system that we also have no equivalent for. But for the most part they just have a bunch of crappy tools that read and write state machine information into relational databases. We wouldn't take most of it even if it were free.
I think the pubsub system and their library-shelf system were two out of the grand total of three things Amazon does better than google.
I guess you could make an argument that their bias for launching early and iterating like mad is also something they do well, but you can argue it either way. They prioritize launching early over everything else, including retention and engineering discipline and a bunch of other stuff that turns out to matter in the long run. So even though it's given them some competitive advantages in the marketplace, it's created enough other problems to make it something less than a slam-dunk.
But there's one thing they do really really well that pretty much makes up for ALL of their political, philosophical and technical screw-ups.
Jeff Bezos is an infamous micro-manager. He micro-manages every single pixel of Amazon's retail site. He hired Larry Tesler, Apple's Chief Scientist and probably the very most famous and respected human-computer interaction expert in the entire world, and then ignored every goddamn thing Larry said for three years until Larry finally -- wisely -- left the company. Larry would do these big usability studies and demonstrate beyond any shred of doubt that nobody can understand that frigging website, but Bezos just couldn't let go of those pixels, all those millions of semantics-packed pixels on the landing page. They were like millions of his own precious children. So they're all still there, and Larry is not.
Micro-managing isn't that third thing that Amazon does better than us, by the way. I mean, yeah, they micro-manage really well, but I wouldn't list it as a strength or anything. I'm just trying to set the context here, to help you understand what happened. We're talking about a guy who in all seriousness has said on many public occasions that people should be paying him to work at Amazon. He hands out little yellow stickies with his name on them, reminding people "who runs the company" when they disagree with him. The guy is a regular... well, Steve Jobs, I guess. Except without the fashion or design sense. Bezos is super smart; don't get me wrong. He just makes ordinary control freaks look like stoned hippies.
So one day Jeff Bezos issued a mandate. He's doing that all the time, of course, and people scramble like ants being pounded with a rubber mallet whenever it happens. But on one occasion -- back around 2002 I think, plus or minus a year -- he issued a mandate that was so out there, so huge and eye-bulgingly ponderous, that it made all of his other mandates look like unsolicited peer bonuses.
His Big Mandate went something along these lines:
1) All teams will henceforth expose their data and functionality through service interfaces.
2) Teams must communicate with each other through these interfaces.
3) There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team's data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.
4) It doesn't matter what technology they use. HTTP, Corba, Pubsub, custom protocols -- doesn't matter. Bezos doesn't care.
5) All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.
6) Anyone who doesn't do this will be fired.
7) Thank you; have a nice day!
Ha, ha! You 150-odd ex-Amazon folks here will of course realize immediately that #7 was a little joke I threw in, because Bezos most definitely does not give a shit about your day.
#6, however, was quite real, so people went to work. Bezos assigned a couple of Chief Bulldogs to oversee the effort and ensure forward progress, headed up by Uber-Chief Bear Bulldog Rick Dalzell. Rick is an ex-Armgy Ranger, West Point Academy graduate, ex-boxer, ex-Chief Torturer slash CIO at Wal*Mart, and is a big genial scary man who used the word "hardened interface" a lot. Rick was a walking, talking hardened interface himself, so needless to say, everyone made LOTS of forward progress and made sure Rick knew about it.
Over the next couple of years, Amazon transformed internally into a service-oriented architecture. They learned a tremendous amount while effecting this transformation. There was lots of existing documentation and lore about SOAs, but at Amazon's vast scale it was about as useful as telling Indiana Jones to look both ways before crossing the street. Amazon's dev staff made a lot of discoveries along the way. A teeny tiny sampling of these discoveries included:
- pager escalation gets way harder, because a ticket might bounce through 20 service calls before the real owner is identified. If each bounce goes through a team with a 15-minute response time, it can be hours before the right team finally finds out, unless you build a lot of scaffolding and metrics and reporting.
- every single one of your peer teams suddenly becomes a potential DOS attacker. Nobody can make any real forward progress until very serious quotas and throttling are put in place in every single service.
- monitoring and QA are the same thing. You'd never think so until you try doing a big SOA. But when your service says "oh yes, I'm fine", it may well be the case that the only thing still functioning in the server is the little component that knows how to say "I'm fine, roger roger, over and out" in a cheery droid voice. In order to tell whether the service is actually responding, you have to make individual calls. The problem continues recursively until your monitoring is doing comprehensive semantics checking of your entire range of services and data, at which point it's indistinguishable from automated QA. So they're a continuum.
- if you have hundreds of services, and your code MUST communicate with other groups' code via these services, then you won't be able to find any of them without a service-discovery mechanism. And you can't have that without a service registration mechanism, which itself is another service. So Amazon has a universal service registry where you can find out reflectively (programmatically) about every service, what its APIs are, and also whether it is currently up, and where.
- debugging problems with someone else's code gets a LOT harder, and is basically impossible unless there is a universal standard way to run every service in a debuggable sandbox.
That's just a very small sample. There are dozens, maybe hundreds of individual learnings like these that Amazon had to discover organically. There were a lot of wacky ones around externalizing services, but not as many as you might think. Organizing into services taught teams not to trust each other in most of the same ways they're not supposed to trust external developers.
This effort was still underway when I left to join Google in mid-2005, but it was pretty far advanced. From the time Bezos issued his edict through the time I left, Amazon had transformed culturally into a company that thinks about everything in a services-first fashion. It is now fundamental to how they approach all designs, including internal designs for stuff that might never see the light of day externally.
At this point they don't even do it out of fear of being fired. I mean, they're still afraid of that; it's pretty much part of daily life there, working for the Dread Pirate Bezos and all. But they do services because they've come to understand that it's the Right Thing. There are without question pros and cons to the SOA approach, and some of the cons are pretty long. But overall it's the right thing because SOA-driven design enables Platforms.
That's what Bezos was up to with his edict, of course. He didn't (and doesn't) care even a tiny bit about the well-being of the teams, nor about what technologies they use, nor in fact any detail whatsoever about how they go about their business unless they happen to be screwing up. But Bezos realized long before the vast majority of Amazonians that Amazon needs to be a platform.
You wouldn't really think that an online bookstore needs to be an extensible, programmable platform. Would you?
Well, the first big thing Bezos realized is that the infrastructure they'd built for selling and shipping books and sundry could be transformed an excellent repurposable computing platform. So now they have the Amazon Elastic Compute Cloud, and the Amazon Elastic MapReduce, and the Amazon Relational Database Service, and a whole passel' o' other services browsable at aws.amazon.com. These services host the backends for some pretty successful companies, reddit being my personal favorite of the bunch.
The other big realization he had was that he can't always build the right thing. I think Larry Tesler might have struck some kind of chord in Bezos when he said his mom couldn't use the goddamn website. It's not even super clear whose mom he was talking about, and doesn't really matter, because nobody's mom can use the goddamn website. In fact I myself find the website disturbingly daunting, and I worked there for over half a decade. I've just learned to kinda defocus my eyes and concentrate on the million or so pixels near the center of the page above the fold.
I'm not really sure how Bezos came to this realization -- the insight that he can't build one product and have it be right for everyone. But it doesn't matter, because he gets it. There's actually a formal name for this phenomenon. It's called Accessibility, and it's the most important thing in the computing world.
The. Most. Important. Thing.
If you're sorta thinking, "huh? You mean like, blind and deaf people Accessibility?" then you're not alone, because I've come to understand that there are lots and LOTS of people just like you: people for whom this idea does not have the right Accessibility, so it hasn't been able to get through to you yet. It's not your fault for not understanding, any more than it would be your fault for being blind or deaf or motion-restricted or living with any other disability. When software -- or idea-ware for that matter -- fails to be accessible to anyone for any reason, it is the fault of the software or of the messaging of the idea. It is an Accessibility failure.
Like anything else big and important in life, Accessibility has an evil twin who, jilted by the unbalanced affection displayed by their parents in their youth, has grown into an equally powerful Arch-Nemesis (yes, there's more than one nemesis to accessibility) named Security. And boy howdy are the two ever at odds.
But I'll argue that Accessibility is actually more important than Security because dialing Accessibility to zero means you have no product at all, whereas dialing Security to zero can still get you a reasonably successful product such as the Playstation Network.
So yeah. In case you hadn't noticed, I could actually write a book on this topic. A fat one, filled with amusing anecdotes about ants and rubber mallets at companies I've worked at. But I will never get this little rant published, and you'll never get it read, unless I start to wrap up.
That one last thing that Google doesn't do well is Platforms. We don't understand platforms. We don't "get" platforms. Some of you do, but you are the minority. This has become painfully clear to me over the past six years. I was kind of hoping that competitive pressure from Microsoft and Amazon and more recently Facebook would make us wake up collectively and start doing universal services. Not in some sort of ad-hoc, half-assed way, but in more or less the same way Amazon did it: all at once, for real, no cheating, and treating it as our top priority from now on.
But no. No, it's like our tenth or eleventh priority. Or fifteenth, I don't know. It's pretty low. There are a few teams who treat the idea very seriously, but most teams either don't think about it all, ever, or only a small percentage of them think about it in a very small way.
It's a big stretch even to get most teams to offer a stubby service to get programmatic access to their data and computations. Most of them think they're building products. And a stubby service is a pretty pathetic service. Go back and look at that partial list of learnings from Amazon, and tell me which ones Stubby gives you out of the box. As far as I'm concerned, it's none of them. Stubby's great, but it's like parts when you need a car.
A product is useless without a platform, or more precisely and accurately, a platform-less product will always be replaced by an equivalent platform-ized product.
Google+ is a prime example of our complete failure to understand platforms from the very highest levels of executive leadership (hi Larry, Sergey, Eric, Vic, howdy howdy) down to the very lowest leaf workers (hey yo). We all don't get it. The Golden Rule of platforms is that you Eat Your Own Dogfood. The Google+ platform is a pathetic afterthought. We had no API at all at launch, and last I checked, we had one measly API call. One of the team members marched in and told me about it when they launched, and I asked: "So is it the Stalker API?" She got all glum and said "Yeah." I mean, I was joking, but no... the only API call we offer is to get someone's stream. So I guess the joke was on me.
Microsoft has known about the Dogfood rule for at least twenty years. It's been part of their culture for a whole generation now. You don't eat People Food and give your developers Dog Food. Doing that is simply robbing your long-term platform value for short-term successes. Platforms are all about long-term thinking.
Google+ is a knee-jerk reaction, a study in short-term thinking, predicated on the incorrect notion that Facebook is successful because they built a great product. But that's not why they are successful. Facebook is successful because they built an entire constellation of products by allowing other people to do the work. So Facebook is different for everyone. Some people spend all their time on Mafia Wars. Some spend all their time on Farmville. There are hundreds or maybe thousands of different high-quality time sinks available, so there's something there for everyone.
Our Google+ team took a look at the aftermarket and said: "Gosh, it looks like we need some games. Let's go contract someone to, um, write some games for us." Do you begin to see how incredibly wrong that thinking is now? The problem is that we are trying to predict what people want and deliver it for them.
You can't do that. Not really. Not reliably. There have been precious few people in the world, over the entire history of computing, who have been able to do it reliably. Steve Jobs was one of them. We don't have a Steve Jobs here. I'm sorry, but we don't.
Larry Tesler may have convinced Bezos that he was no Steve Jobs, but Bezos realized that he didn't need to be a Steve Jobs in order to provide everyone with the right products: interfaces and workflows that they liked and felt at ease with. He just needed to enable third-party developers to do it, and it would happen automatically.
I apologize to those (many) of you for whom all this stuff I'm saying is incredibly obvious, because yeah. It's incredibly frigging obvious. Except we're not doing it. We don't get Platforms, and we don't get Accessibility. The two are basically the same thing, because platforms solve accessibility. A platform is accessibility.
So yeah, Microsoft gets it. And you know as well as I do how surprising that is, because they don't "get" much of anything, really. But they understand platforms as a purely accidental outgrowth of having started life in the business of providing platforms. So they have thirty-plus years of learning in this space. And if you go to msdn.com, and spend some time browsing, and you've never seen it before, prepare to be amazed. Because it's staggeringly huge. They have thousands, and thousands, and THOUSANDS of API calls. They have a HUGE platform. Too big in fact, because they can't design for squat, but at least they're doing it.
Amazon gets it. Amazon's AWS (aws.amazon.com) is incredible. Just go look at it. Click around. It's embarrassing. We don't have any of that stuff.
Apple gets it, obviously. They've made some fundamentally non-open choices, particularly around their mobile platform. But they understand accessibility and they understand the power of third-party development and they eat their dogfood. And you know what? They make pretty good dogfood. Their APIs are a hell of a lot cleaner than Microsoft's, and have been since time immemorial.
Facebook gets it. That's what really worries me. That's what got me off my lazy butt to write this thing. I hate blogging. I hate... plussing, or whatever it's called when you do a massive rant in Google+ even though it's a terrible venue for it but you do it anyway because in the end you really do want Google to be successful. And I do! I mean, Facebook wants me there, and it'd be pretty easy to just go. But Google is home, so I'm insisting that we have this little family intervention, uncomfortable as it might be.
After you've marveled at the platform offerings of Microsoft and Amazon, and Facebook I guess (I didn't look because I didn't want to get too depressed), head over to developers.google.com and browse a little. Pretty big difference, eh? It's like what your fifth-grade nephew might mock up if he were doing an assignment to demonstrate what a big powerful platform company might be building if all they had, resource-wise, was one fifth grader.
Please don't get me wrong here -- I know for a fact that the dev-rel team has had to FIGHT to get even this much available externally. They're kicking ass as far as I'm concerned, because they DO get platforms, and they are struggling heroically to try to create one in an environment that is at best platform-apathetic, and at worst often openly hostile to the idea.
I'm just frankly describing what developers.google.com looks like to an outsider. It looks childish. Where's the Maps APIs in there for Christ's sake? Some of the things in there are labs projects. And the APIs for everything I clicked were... they were paltry. They were obviously dog food. Not even good organic stuff. Compared to our internal APIs it's all snouts and horse hooves.
And also don't get me wrong about Google+. They're far from the only offenders. This is a cultural thing. What we have going on internally is basically a war, with the underdog minority Platformers fighting a more or less losing battle against the Mighty Funded Confident Producters.
Any teams that have successfully internalized the notion that they should be externally programmable platforms from the ground up are underdogs -- Maps and Docs come to mind, and I know GMail is making overtures in that direction. But it's hard for them to get funding for it because it's not part of our culture. Maestro's funding is a feeble thing compared to the gargantuan Microsoft Office programming platform: it's a fluffy rabbit versus a T-Rex. The Docs team knows they'll never be competitive with Office until they can match its scripting facilities, but they're not getting any resource love. I mean, I assume they're not, given that Apps Script only works in Spreadsheet right now, and it doesn't even have keyboard shortcuts as part of its API. That team looks pretty unloved to me.
Ironically enough, Wave was a great platform, may they rest in peace. But making something a platform is not going to make you an instant success. A platform needs a killer app. Facebook -- that is, the stock service they offer with walls and friends and such -- is the killer app for the Facebook Platform. And it is a very serious mistake to conclude that the Facebook App could have been anywhere near as successful without the Facebook Platform.
You know how people are always saying Google is arrogant? I'm a Googler, so I get as irritated as you do when people say that. We're not arrogant, by and large. We're, like, 99% Arrogance-Free. I did start this post -- if you'll reach back into distant memory -- by describing Google as "doing everything right". We do mean well, and for the most part when people say we're arrogant it's because we didn't hire them, or they're unhappy with our policies, or something along those lines. They're inferring arrogance because it makes them feel better.
But when we take the stance that we know how to design the perfect product for everyone, and believe you me, I hear that a lot, then we're being fools. You can attribute it to arrogance, or naivete, or whatever -- it doesn't matter in the end, because it's foolishness. There IS no perfect product for everyone.
And so we wind up with a browser that doesn't let you set the default font size. Talk about an affront to Accessibility. I mean, as I get older I'm actually going blind. For real. I've been nearsighted all my life, and once you hit 40 years old you stop being able to see things up close. So font selection becomes this life-or-death thing: it can lock you out of the product completely. But the Chrome team is flat-out arrogant here: they want to build a zero-configuration product, and they're quite brazen about it, and Fuck You if you're blind or deaf or whatever. Hit Ctrl-+ on every single page visit for the rest of your life.
It's not just them. It's everyone. The problem is that we're a Product Company through and through. We built a successful product with broad appeal -- our search, that is -- and that wild success has biased us.
Amazon was a product company too, so it took an out-of-band force to make Bezos understand the need for a platform. That force was their evaporating margins; he was cornered and had to think of a way out. But all he had was a bunch of engineers and all these computers... if only they could be monetized somehow... you can see how he arrived at AWS, in hindsight.
Microsoft started out as a platform, so they've just had lots of practice at it.
Facebook, though: they worry me. I'm no expert, but I'm pretty sure they started off as a Product and they rode that success pretty far. So I'm not sure exactly how they made the transition to a platform. It was a relatively long time ago, since they had to be a platform before (now very old) things like Mafia Wars could come along.
Maybe they just looked at us and asked: "How can we beat Google? What are they missing?"
The problem we face is pretty huge, because it will take a dramatic cultural change in order for us to start catching up. We don't do internal service-oriented platforms, and we just as equally don't do external ones. This means that the "not getting it" is endemic across the company: the PMs don't get it, the engineers don't get it, the product teams don't get it, nobody gets it. Even if individuals do, even if YOU do, it doesn't matter one bit unless we're treating it as an all-hands-on-deck emergency. We can't keep launching products and pretending we'll turn them into magical beautiful extensible platforms later. We've tried that and it's not working.
The Golden Rule of Platforms, "Eat Your Own Dogfood", can be rephrased as "Start with a Platform, and Then Use it for Everything." You can't just bolt it on later. Certainly not easily at any rate -- ask anyone who worked on platformizing MS Office. Or anyone who worked on platformizing Amazon. If you delay it, it'll be ten times as much work as just doing it correctly up front. You can't cheat. You can't have secret back doors for internal apps to get special priority access, not for ANY reason. You need to solve the hard problems up front.
I'm not saying it's too late for us, but the longer we wait, the closer we get to being Too Late.
I honestly don't know how to wrap this up. I've said pretty much everything I came here to say today. This post has been six years in the making. I'm sorry if I wasn't gentle enough, or if I misrepresented some product or team or person, or if we're actually doing LOTS of platform stuff and it just so happens that I and everyone I ever talk to has just never heard about it. I'm sorry.
Although the etiquette of posting it here is debatable this post is gold, it is not (totally) an ordinary disgruntled coder rant. It's worth reading even for the small list of problems that he gives that Amazon faced when trying to go to an all-services architecture.
But if I had to summarize the main point, I would choose: "The Golden Rule of Platforms, "Eat Your Own Dogfood", can be rephrased as "Start with a Platform, and Then Use it for Everything." You can't just bolt it on later." Start with the platform. This is so obvious, yet a lot of middle and higher managers ignore this either because (i) they are totally ignorant (see Peter's Principle), sadly the case that I usually face, (ii) they pragmatically ignore it, because they are doing greedy optimization for the next 6mos-year and developing the platform is just a "waste of time", or (iii) they ignore developing and making available the platforms they already have because they think it's their "competitive advantage".
The way I read his post, Google's case seems to be (iii). They have great internal tools and platforms for many years now, why they wouldn't develop good APIs around these and make them available is a mystery to me. Wouldn't they have eaten AWS for lunch if they platform-atized their Map-Reduce tools, say around 2004?
It's not that. The procedure for open-sourcing Google-owned code is very easy: you e-mail Chris DiBona and he almost always says yes. There've been a bunch of major pieces of the Google infrastructure open-sourced (eg. cTemplate, Closure, Protocol Buffers, Guice).
The problem is really technical. Because of the open codebase and "edit anything" culture, basically every piece of infrastructure at Google, unless it was designed at the start for open-sourcing, has dependencies on every other piece of infrastructure. Untangling them takes far more time than you could 20% on. That's why you don't see more open-source platforms from Google.
But all the same issues apply, i.e. if you can't disentangle your code from proprietary interfaces enough to open-source it, you probably will not be able to put a service API on it that third-party programmers will be able to use without a lot of handholding. (And Google doesn't do handholding, as just about everyone knows by now.)
No, it's not the same issues. I'm not a programmer, but I know that offering a well designed API to a service has nothing to do with its code being closed or not.
When I was learning to program, I was very interested in 3 Google's core products API: Search, Adsense and Adwords but got turned off because their APIs are very crippled. I understand that Google do not want to expose their core products (cash cows) to abuse, however that's exactly what Steve argued in parent's quote. If the closeness (nothing to do with code) is already in Google's mindset, how do they become a "platform oriented company"? Steve says that it will take a dramatic cultural change to catch up. Steve also chooses Amazon's example to prove: when the years of explosive growth were over, Jeff Bezos had to think of some new expansion strategies. He was betting on the cloud, whatever that means, or on being a platform, and he implemented his vision with an iron fist, because paradigm shift is hard, you have to consistently push people into doing it.
But ... in the one case we are aware of, of a whole company, Amazon, using a service oriented architecture, they did it after the fact. The did bolt it on later, or rather, they (according to Steve) ripped everything up and re-did it in this way. I'm sure it was absolute hell to do this, but that is what they apparently did. So it isn't a requirement to build a platform first, then build everything else. It might be nicer to do it that way, if it's the best prioritization of resources at the time, but that's not what happened in the case being discussed.
I would call that very dangerous and very likely a premature optimization. Nobody cares you are a platform until they use your product, and if you spend all your time building a platform, there will be no product to use.
The path requires far more finese than "always create a platform". You need to balance over-engineering with the ability to re-evaluate previous decisions.
I agree Google has wandered far off this path, but imnot sure they are on any more well defined path than Yahoo. They just happen to be earlier.
This applies to startups, less so to more mature companies who can and will throw more resources behind a project. After the prototyping phase, once you're reasonably sure of the direction you're going to go in, it isn't a bad idea to keep extensibility in mind from the start. It's more like premature architecting, if anything, than premature optimization, which is much less offensive (and not even necessarily bad).
Isn't it the same with scalability? You won't know if you need a product to be scalable until you have actually launched it and seen its success.
Yet, every product developed at Google seems to be developed with absolute scalability in mind from the get-go, wasting lots of effort invested into scalability in the case of the product failing to get significant customer adoption.
But Google will only consider a product a success if it achieves sufficient scale, while it would (apparently) be happy to have a successful product that is not a platform.
Since 100% of successful Google products will be large, it makes sense to design for scale from the get-go. But if some of Google's products won't end up being platforms, it might make more sense to bolt that on later.
Thanks for reposting. It's a testament to Google's flat-seeming corporate culture that team members are encouraged to speak their mind so frankly.
The key paragraph for me is this one: Any teams that have successfully internalized the notion that they should be externally programmable platforms from the ground up are underdogs -- Maps and Docs come to mind, and I know GMail is making overtures in that direction. But it's hard for them to get funding for it because it's not part of our culture. Maestro's funding is a feeble thing compared to the gargantuan Microsoft Office programming platform: it's a fluffy rabbit versus a T-Rex. The Docs team knows they'll never be competitive with Office until they can match its scripting facilities, but they're not getting any resource love. I mean, I assume they're not, given that Apps Script only works in Spreadsheet right now, and it doesn't even have keyboard shortcuts as part of its API. That team looks pretty unloved to me.
This is my perennial Google grumble in a more elegantly stated nutshell: Google is a magical playground of wonderful things, few of which are finished. It's magical because the parts that work do so at great speed and with almost spookily good results. It's maddening because some things are automagically interoperable and others are head-deskingly separate or incomplete. The main thing I use Google Docs for is word processing, and though it's great to have stuff in the cloud it's just absurd - absurd - that when I move to an Android device the UI is unavailable, or that the full UI lacks support for things like user-defined text styles.
Thing is, Docs owuld be fine if I was just using it for a personal journal or some glorified notepad. But now that I'm a student again, I'm writing letters and model legal briefs and things like that, and it's just a pain in the ass for that, so every day I flirt with reinstalling MS Office...2003. The stuff I need to do was all in Office >10 years ago, and I would even put up with Clippy again just to have things like outlining, styles and templates.
Steve Yegge should get a seat on the board, pronto.
Steve and I overlapped at Google and I've always felt his missives were pretty clear and actionable. (unlike some which were simply 'this sucks') That this one made it outside the 'plex is probably a mistake, I hope he doesn't pay to high a price for that.
Of course there is the risk that he might get something changed inside of Google (I'm thinking unlikely) it would be a pretty amazing thing if the Google infrastructure was available as a platform (and no AppEngine does not count)
Who downvoted this? We should probably have a real conversation about it.
Personally, I'd like to think that if I posted an essay or especially a rant that I later thought was a mistake, and decided to retract it, other hackers would respect my decision and not reproduce it. Sure, it's still cached somewhere, and assholes on 4chan will repost it just to fuck with me. If you really want to, you can probably find a copy. But I'd like to think that our community is classier than to spread it around deliberately, knowing it's something I'd rather not put my name to.
What's the benefit to the community the other way, aside from voyeurism?
> What's the benefit to the community the other way, aside from voyeurism?
It's one of those fantastic, really wonderful Stevey's rants, on a par with "the emacs problem". I'm really incredibly happy to have had a chance to read it. So yes, it's probably bad etiquette, but OTOH will it hurt Google in any way? Certainly not. So, hey, thanks for the mistake M. Yegge, and continue the good work.
I'm a multiple paying customer. I use Google Apps, AdWords. I can't use Google Plus under the same ID as Apps, because Google appear to think that paying customers are less valuable than free users. And we (Apps Users) went for ages without any explanation other than "we're working on it".
To do any work using AdWords and Google Apps and Google Analytics, and Webmaster Tools I end up using three accounts and two browsers.
If Google did Platforms, then the first one to fix is "who the F* am I?" (Authentication and Access Control) and make it get used everywhere.
Hell, Google can't even work out what to name things. So you get scammers exploiting Google.com naming to convince marks that the scammer really works for Google. This is also a Platform issue - Google.com should be for Google stuff - not abusable to allow, for example, spoofing a search results page so you can claim that Google has given you special access to modify search results (one SEO scam that I keep encountering). Non-Google stuff should be on an identifiable domain, which will eventually permeate user consciousness as being "not Google content".
I speak as a pure outsider and consumer of Google stuff. But I'm sufficiently vexed by Google Apps/Accounts/Profiles to want to lose the paid for services as much and as soon as possible. I get better (or no worse) treated when I don't buy. :)
And Stephen's point about Google arrogance - yes, I think Google is arrogant. I was an AdWords Help Forum Top Contributor until Google decided that small businesses should only receive AdWords support from other users, not Google. That's seriously annoying. I stopped contributing when it became clear that Google thought small businesses should be denied any customer service - you really can't have third parties answering questions about why Google isn't accepting a specific credit card, or even why a specific disapproval has been given in an account you can't see. That was pure arrogance - dumping on volunteers and crapping on small businesses. I'm told it's different now but I still have such a bad taste in my mouth from the experience I don't want to get involved again. Google can be arrogant, 100%.
I've worked with a number of tech/advertising corporations. The parent poster is right. The real product is eyeballs, and the customer is another corporation called the advertiser.
For example, The New York Times offers some value to the owners of those eyeballs, but note how they work: they lay out the advertising first, then what's left is what they call the "news hole" and they put some stuff there. The news hole lets them farm the eyeballs. (The ripe juicy professional-managerial variety.)
This is not something programmers like to think about, so they tend to wear ideological blinders. They don't simply observe the money flow: who is buying and who is selling? The eyeball owners are not participating in a market transaction as either buyer or seller. Their attention is the product.
We do mean well, and for the most part when people say we're arrogant it's because we didn't hire them, or they're unhappy with our policies, or something along those lines. They're inferring arrogance because it makes them feel better.
I LOL'd when I read this. How ironically arrogant.
A lot of this is great, but it's clear that the author has not actually followed the process of launching AWS. Bezos did not wake up one day and decide to start selling his datacenter space. AWS was developed, clearly after this person left Amazon, for Amazon developers. The engineer (CTO?) responsible for this woke up one day and realized, well, fuck, we could sell this. Pairing some of the stories here with that basic knowledge actually explains a lot of the SOA startups popping up in EC2. Companies are beginning to form in the shape of departments at Amazon, which is interesting, I'm not sure it's awesome.
That said, let's not fool ourselves. There is nothing more wrong with The Internet right now than EC2. It is poorly executed and Amazon's position as a market leader has made them incredibly lazy about improving it or contributing to the core technologies (Xen!) which are responsible for the most complex bits of it.
Part of me feels that this is actually written to the general public, and the whole public/private thing is a cover up.
This is highly unlikely. This sort of internal conversation happens a lot internally. There's no need to take it public. What would it serve? Some sort of escalation of the problem? Unlikely. It's more likely to get you a stern email than it is to get it heard.
Steve has no problems getting the ears of developers. I can't see why he would want to make it public.
There's no need to take it public. What would it serve?
Well I can speculate: Because some issues seem like real debates when you have them internally, and then you tell a bunch of outsiders and they go "uh, it's a no-brainer" and that tells you something you didn't know before: that you can't see the wood for the trees.
The thing that surprised me most about the OP is that Google actually sees itself as a product company. With the exception of search and maps (and perhaps not even search so much now) they actually aren't strong with their products, and (aside from the gargantuan scaling issues that they have to solve) they don't give the impression of working to improve their products. How much has gmail evolved over the years? Calendar? Reader? Sure, for all I know they are all tinkering furiously under the hood, but that is not what the outside world expects from somebody positioned as a product company.
"You know how people are always saying Google is arrogant?" Yup, bidding funny numbers like pi for the Nortel patents was incredibly arrogant. It certainly wasn't humble. There was no humility there. The representatives from Google acted like a group of teenagers giggling and making fart noises in the back of the classroom. I'm sure they thought it was funny at the time, but this is a prime example of what people mean by arrogant. The public perception is that Google people are geeks, and geeks and arrogance go hand in hand. Watch Fallon's Nick Burns sketch on SNL sometime if you need an illustration.
Its out of context, but please bear with me. Is it ok if amazon has an internal library(hypothetical) that is a collection of all its online books that they sell, can they have access to it , i mean normal guys have to pay for just getting a chapter out of a big book. For Amazon guys is there any concession , can they check on some cool book just like that?
I only got down the first few paragraphs but it sounds like most of the complaints are "retail vs tech company" stuff. Retail has razor-thin margins so of course they will all be cheap as hell. If you think Amazon is bad, try working for Walmart HQ.
I did read the rest of it and I still say the complaints he has against Amazon sound more like complaints against working in retail. If you like having a nice working environment, stay far away from retail because they're all like that. There's no money to be anything else.
P.S. When I can trade HN karma for time off from work I'll start to care about it.
I think this is a bunch of BS. Google didn't have to create a platform, it took control of the world's biggest platform. Google benefits from most things built on the web sans Facebook. Now it's leading the way in the most promising platform of the next few years with Android. Chrome is a platform. Google+ is a platform for content creation that solves the problem of the Facebook crawl wall. It also sets the stage for a more complete solution to your problems (aka searches) via increasing its knowledge on individuals.
I don't think Google will accomplish its goal with plus however, because it's not being aggressive enough in collecting user data and integrating it with search. I think the Universities are in the best position to do this as they did with email and the web. The killer app will be a light bulb that makes extremely useful suggestions based on context.
Isn't this the second highly public data point (that I know of) of him slashing and burning G+ and Google and then backtracking and saying how Google is the best place to work for (the previous one: http://news.ycombinator.com/item?id=2811818). That one, he claimed, was a misunderstanding, this one is a late night permissions error. I am sorry but for someone of his caliber these sound like made up excuses.
I think he sees the problems, goes off the deep end, then either sobers up or is muzzled by Google's PR machine. Or Google may be thinking any publicity is good publicity.
>Isn't this the second highly public data point (that I know of) of him slashing and burning G+ and Google and then backtracking and saying how Google is the best place to work for
No its not, because thats not what happened this time. He is pretty clear that he likes google and but sees some flaws. Did you even read the post? Hes not backtracking, he was just being critical about something to an audience he thought would be able to understand him. I could trash aspects of the product I work on to my coworkers too, that doesn't mean I don't think that it isn't overall good.
I read the post a second time much more carefully and it seems clear now that he did target an internal Google audience from the tone, i.e. it was a genuine mistake. So I take my previous comment back.
As for your comment about thrashing a product but loving the workspace: Yegge's criticisms run deep, they are not just about a stupid feature in a product; rather they are about the company's DNA.
This document offers no solutions at all, it's hard to follow, and it was played in the wrong forum.
1) No solutions - What exactly should Google do? What string of thought should we start with to make any sort of improvements?
2) Hard to follow - Yegge shocks you by seeming like he's insulting Amazon, he tells you some anecdotes to give himself creedence, and he starts to get to his point about accessibility and platformification a million paragraphs in.
3) Wrong forum - Why is this on the public internet? If it wasn't, Yegge wouldn't need to spend the first half of the article establishing his credibility. If he would talk to his peers, then they could discuss the meaty technical and strategic issues without meandering around in a nostalgic haze for thousands of words.
Yegge is not Bill Gates, and this is no Internet Tide Wave memo. It would be an embarrassment for Google to have this out there, if it weren't instead just an embarrassment to the author. It sounds like Yegge is more interested in stirring the pot and publishing unrefined thoughts than working on actual solutions.