Skip to content

Instantly share code, notes, and snippets.

@gmoore
gmoore / steve-yegge-google-platform-rant.md
Created September 16, 2021 23:55 — forked from kislayverma/steve-yegge-google-platform-rant.md
A copy (for posterity) of Steve Yegge's internal memo in Google about what platforms are and how Amazon learnt to build them

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,

Keybase proof

I hereby claim:

  • I am gmoore on github.
  • I am gsmoore (https://keybase.io/gsmoore) on keybase.
  • I have a public key whose fingerprint is AD98 C49E DE19 BAE1 1E93 BE8A 9C5F 35B7 25D4 DCC5

To claim this, I am signing this object:

$(document).ready(function() {
call_your_function(with_an_argument);
});
@gmoore
gmoore / gist:973748
Created May 16, 2011 01:09
While in Baltimore...
I want...
Steamed crabs!
Obrycki's
Walk east on Pratt Street for about half a mile
1727 E Pratt St, Baltimore, MD 21231
http://www.yelp.com/biz/obryckis-crab-house-and-seafood-restaurant-baltimore
http://www.obryckis.com/
@gmoore
gmoore / Console output
Created May 4, 2011 14:59
Jersey 1.6 with Grizzly 2
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.fracturedatlas.athena.web.resource.container.SaveRecordContainerTest
May 4, 2011 10:55:00 AM com.sun.jersey.test.framework.spi.container.grizzly2.web.GrizzlyWebTestContainerFactory$GrizzlyWebTestContainer <init>
INFO: Creating Grizzly2 Web Container configured at the base URI http://localhost:9998/tix
May 4, 2011 10:55:00 AM org.glassfish.grizzly.http.server.NetworkListener start
INFO: Started listener bound to [localhost:9998]
May 4, 2011 10:55:00 AM org.glassfish.grizzly.servlet.ServletContextImpl log
INFO: Initializing Spring root WebApplicationContext
@gmoore
gmoore / App config class
Created May 4, 2011 14:53
Jersey 1.6 with Grizzly 1
public class AthenaWebConfig extends PackagesResourceConfig {
public AthenaWebConfig() {
super ("org.fracturedatlas.athena");
getMediaTypeMappings().put("json", MediaType.APPLICATION_JSON_TYPE);
}
}
Started POST "/exchanges" for 127.0.0.1 at Thu Apr 28 20:25:52 -0400 2011
Processing by ExchangesController#create as HTML
Parameters: {"items"=>["32772"], "commit"=>"Exchange these tickets", "order_id"=>"32771", "authenticity_token"=>"msenMBOEhOgjPSTvxDDaoClOtM/1Uvzk6ceck5E3cxM=", "utf8"=>"✓", "tickets"=>["32780"]}
User Load (0.8ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
GET http://localhost:8080/orders/orders/32771.json
--> 200 OK 105 (25.9ms)
GET http://localhost:8080/orders/items/32772.json
--> 200 OK 107 (25.6ms)
GET http://localhost:8080/tix/tickets/32780.json
--> 200 OK 213 (22.5ms)
ruby-1.9.2-p180 :031 > ticket
=> #<AthenaTicket:0x00000102c4b8c0 @attributes={"price"=>"5000", "event_id"=>"229376", "performance"=>2011-08-19 15:13:00 -0400, "event"=>"A Little Testing", "state"=>"sold", "performance_id"=>"229383", "venue"=>"Broadhurst Theatre", "section"=>"Balcony", "id"=>"458771", "buyer_id"=>"32779"}, @prefix_options={}, @buyer=#<AthenaPerson:0x00000102d778e8 @attributes={"last_name"=>"Erdman", "email"=>"[email protected]", "organization_id"=>"7", "first_name"=>"Taylor", "id"=>"32779"}, @prefix_options={}>, @default_current_state=:sold, @errors={}, @remote_errors=nil, @validation_context=nil>
ruby-1.9.2-p180 :032 > ticket.id
=> "458771"
ruby-1.9.2-p180 :033 > ticket.expired?
=> false
Started POST "/store/checkout" for 24.103.41.198 at Fri Mar 18 14:46:59 +0000 2011
Processing by Store::CheckoutsController#create as HTML
Parameters: {"commit"=>"Purchase", "confirmation"=>"1", "athena_payment"=>{"athena_customer"=>{"last_name"=>"Musical", "phone"=>"5712417836", "first_name"=>"Billy", "email"=>"[email protected]"}, "athena_credit_card"=>{"cvv"=>"984", "card_number"=>"4111111111111111", "cardholder_name"=>"Foo Mc Foo", "expiration_date(1i)"=>"2017", "expiration_date(2i)"=>"3", "expiration_date(3i)"=>"1"}, "billing_address"=>{"company"=>"Fractured Atlas", "city"=>"NEW YORK", "country"=>"United States", "postal_code"=>"21201", "street_address1"=>"248 W 35th ST", "street_address2"=>"FLOOR 10", "last_name"=>"Musical", "first_name"=>"Billy", "state"=>"New York"}}, "authenticity_token"=>"zdvqbBXLPcnnwilvqzoPtrhhTKvWikdNE2/qDEDYEDw=", "utf8"=>"✓"}
Order Load (0.3ms) SELECT "orders".* FROM "orders" WHERE "orders"."id" = 2 LIMIT 1
PurchasableTicket Load (0.2ms) SELECT "purchasable_tic
I manually edited /public/javascripts/artfully.js to point to the current hostnames
Artfully event:
http://athena.fracturedatlas.org:8001/events/53
user:[email protected]
pass: (ask me for it)
Radiant setup: