HN user

146

67 karma

http://quora.com/Albert-Sheu

Formerly software eng at Facebook, Twitter, and Quora.

Posts0
Comments32
View on HN
No posts found.

It's been completely reliable when there were actual problems. The web interface was pretty intuitive to us as well. I really like the login flow.

Our PagerDuty is integrated right now with Scout, Pingdom, and our own custom alerting system.

So far most complaints we've had while using the service for the first week were our own faults: for example, our monitoring was too sensitive, which was fixed by using the regexp filters, and by eliminating spurious errors from reporting on our side. One thing that PagerDuty did was that it basically forced us to fix these reporting issues so that we weren't woken up at 5AM unless it was a real emergency.

The SMS interface got a little confusing when we had two errors at once. For example, a frequent case is getting two pages at once, "Service X is DOWN" and "quora.com is DOWN". I think what I tried doing was:

1. Receive the first report (site).

2. Receive the second report (service).

3. ACK both reports using the second report's code.

4. Fix the service.

5. Attempt to resolve the second report, receive a "code already used" error.

Resolving things via SMS is a little bit clumsy (it's what I usually default to). A link to the PagerDuty login would be cool, but I don't know if it would fit in the 160 character limit.

For the most part, schema changes can be done without breaking the existing code base (add columns, add tables, etc.) These schema changes can just be run on the databases before the code depending on it is pushed. Much more rarely though, there might be code that depends on a certain schema (the kind that say, alter table might do). In this case we can push out code that is compatible with both versions (at the very worst case, using table descriptions to differentiate between the two), run the schema change, and then eliminate the backwards compatibility.

There's not that much different in terms of operating procedure between continuous code deployment and scheduled code deployments; it's just much faster and less prone to merge errors.

The Russians were barely able to slow down Facebook back in 2009. Unless someone on 4chan has a bigger botnet and just decided for lulz to DDoS Facebook, 4chan would not even come close to generating enough traffic to register on the #2 website on the Internet.

One thing is that it took a long, long time for women to break into medicine and start being taken seriously as doctors. Tech is still relatively young, so I'm hoping that we can start making movements towards that level of parity faster than then several generations it took medicine.

Twitter does not do any outright advertising but they put an incredible amount of time into their PR management, as well as making sure that their coverage in the news was kept high and positive all through 2009.

Their early claim to fame also was when they broadcasted the #sxsw Tweetstream in a hallway during SXSW 2007, after which their traffic launched substantially and effectively bootstrapped the service into the powerhouse it is today. They most certainly didn't sit on their asses hoping that the merits of their product would grant them traffic.

Nah. You can usually (but not always) tell who asks the question by checking the first person who's following the question, or by checking the question history by clicking on the timestamp.

That's really interesting to know, actually. I've only been with companies that had MySQL installations (Facebook and Twitter) and so jumping in was really easy, but on the other hand I do like to do things right. A few questions, though:

0/ How would I be able to tell if the limitations of our DB are because of MySQL and would be solved by PostgreSQL? That is, common pain points in MySQL that we wouldn't recognize immediately until we switched? (Edit: mostly looking for performance-related, but anything is fine.)

1/ Is there a PostgreSQL consulting firm that has the same reputation that Percona does with MySQL?

2/ Is there a good place to start when there's an issue or question I have with PostgreSQL (aside from IRC)? With MySQL I've been either going to the docs, or to Google, but it's been spotty with either.

Argh, that is really annoying though, and our servers really should be able to figure out that the two links, apostrophe or not, should lead to the same question. I'm a bit late to the game; was the original link up top unchanged?

Edit: should be fixed now.

> That's only useful for dumb languages

The compilers/interpreters I know that don't do this are PHP and Perl (C/C++ will do it if you use -Wall, which you should be using anyway).

So yeah, you're pretty much right. /snark

Stack Does Gaming 16 years ago

My favorite part about GameFAQs is that it's hardly about actual FAQs anymore. It's mostly walkthroughs, guides, maps, other content that doesn't really match a Q&A format. The forums are another popular location, but I wouldn't call them "FAQs" either.

There is a Q&A product called "Answers" attached to GameFAQs that doesn't seem to be as popular as their Walkthroughs offerings. For some games, however, they seem to be moderately well populated:

http://www.gamefaqs.com/ps3/928790-final-fantasy-xiii/answer...

I think the thing is that Facebook is learning from this. If there was actually a viable competitor at the time, the whole hype surrounding the incident might be enough to push and bootstrap enough users onto its competitor. We saw this to a limited extent with Diaspora, but given that there wasn't anything to actually sign up for, its hype has mostly fizzled by now.

Right now, Facebook is practically the only game in town, they don't have to worry about these mass migrations. But if Google manages comes up with an even comparably good clone of Facebook, it may become an issue.

True, I honestly don't think C# or Java were even in the race. I think the only real alternatives I would've been happy with would've been either Scala or some flavor of ML or Haskell, all of which definitely satisfy the speed and type-checking factors that were mentioned.

Let's put it this way: if any of those languages had half the library support that Python did, then it would've been a decent fight. But as it goes right now it's not even close.

EDIT: Sorry, the library support only applies to ML and Haskell, and I forgot about Scala. I'll have to think about this one; I'm not sure the reasoning for that was entirely well fleshed out.

> And lets get honest here - Pittsburgh is great but if you're finally making it to the big time, why would you want to stay in a declining rustbelt city?

Luis (the reCAPTCHA founder) wrote a blog post about this recently. Basically to summarize, staying in Pittsburgh helped picking up CMU talent, and Pittsburgh doesn't suffer from a lot of distractions that come with the Valley.

http://vonahn.blogspot.com/2010/06/startups-and-cmu.html

Very importantly to note though, Luis has a professorship, a fiance, and a life built out in Pittsburgh. Similarly, I've heard that a lot of the Google Pittsburgh engineers are family men/women who don't want to leave the area.

> Spare yourself this yammering rant. They chose Python because that's what everyone else at the company was cool with. End of story.

I don't think it's a bad idea to evaluate the alternatives, even if you are very comfortable with a specific language. Granted we were pretty cool with Python and that is definitely a major factor in the decision, but it can't be the only one.

For example, we were all very comfortable using SVN (another technology Facebook uses and is now locked in with). But we didn't use Subversion; we decided to use Git, because the advantages of using a DVCS outweigh our personal sense of comfort.

TCP's congestion control algorithm is mostly reactive, while UTP aims to be predictive. What this basically means is that all the TCP connections that Bittorrent opens up are all pushing the network to failure before backing off, and given how many connections Bittorrent makes, wreaks havoc on your quality of service. UTP on the other hand will attempt to predict the congestion control limits, and (I'm guessing) play nicely and slowly reach up to that limit.

> They aren't able to keep a lot of logs due to the volume.

That's pretty much untrue.

Anyway, I don't imagine it's too hard to grep the logs for the last day's worth of POST and 'accept .*' and undo all the follows constructed from that.

I've worked at Facebook, and have a pretty strong relationship with the people at Palantir. I can outline some of the differences.

1. The food is much better at Facebook, but there's a much wider variety of non-perishable foods and drinks at Palantir.

2. Palantir has multiple game rooms with every piece of equipment possible, including the high-end Rock Band kits and dual projectors. Facebook has a 60" monitor and a Roland electronic drum kit hooked up to the X-Box, and is mostly community-maintained.

3. Facebook has parking, and a San Francisco shuttle.

4. Facebook's standard issue computer is the high-end Macbook and a 30" monitor. Palantir's standard issue is a desktop with multiple (3-4) monitors.

5. Palantir has a team called "Ops" that basically does any non-engineering grunt-work that helps your job, like moving your desk or equipment, getting snacks, etc.

6. Both offer free dry-cleaning.

7. Palantir has a lot of comped off-site events, like spa treatment, movie nights, and so on.

I couldn't say I could choose one over the other. In my opinion, the differences are relatively minor compared to whether you want to work with Enterprise vs. Web, large vs. small, evil vs. slightly less evil, or the company you'd keep.