5 ms·
Hey, my name is Keith Adams, and I'm an engineer at Facebook. I work on the HipHop virtual machine, a dynamic compiler and runtime for the PHP language. It is
by kmavm 14y ago
Hey, my name is Keith Adams, and I'm an engineer at Facebook.
I work on the HipHop virtual machine, a dynamic compiler and runtime for the PHP language. It is the hardest challenge I've tackled professionally, and the people I'm working with are brilliant and work like animals.*
I think the larger significance of our work on HipHop is in the context of software as a whole. PHP is one of those "developer productivity languages," like Python, JavaScript, LUA, etc. And, though I was skeptical before I came here, developers really are more productive in these languages. It would blow your mind what world-class people working in this medium can accomplish in compressed timeframes. This means that increasing these languages' performance is incredibly leveraged; to the extent we're successful at making PHP faster, we change the set of problems that PHP can address. Moving a problem from the "must be solved in C++" category to the "can be solved in PHP" category frees up our fellow developers to get more done with their finite professional lives.
*Edit: By "like animals", I mean, "with a survival-level sense of urgency." It doesn't necessarily mean long hours.
- tluyben2 14y agoThanks for posting this! That's what I was looking for I guess; people who actually have concrete points why they like this. I think Facebook is doing a great job at gathering talent and that's something I would like to learn about. I like your work definitely. Guess a lot of engineers would; I'm curious to know how much significant work you'll be doing if you apply now (jump through the hoops), get in and want to work on HipHop (as recent graduate). What are your options within Facebook; how far can you grow?
- lbrandy 14y agoFacebook, with few exceptions, allows you to pick your team. If you really want to work on something, you can. As for your last question, I joined a year ago, and from my experience, the meritocracy is extremely alive and well. You can go far, and get there very quickly, if the fit is right, and you are kicking ass. Reading between the lines of your posts, I think you might have a pretty inaccurate view of facebook, as it currently is. Facebook has fewer engineers than you think, and it's -really- easy to have massive impact on features, or even the org as a whole, from day 1. Most of the teams responsible for major features/products are quite small. Some are frighteningly small. In many places, there are huge, ambitious, crazy ideas currently on the shelf waiting for 2-3 new people to join the team to take on.
- tluyben2 14y agoYes I think I have an inaccurate view; that's why I'm posting here to find out from the people inside and there are some really insightful points here.
- jquery 14y ago> work like animals. This is good because?
- catshirt 14y agoit's either evidence they're passionate or they're forced to work long hours. given the context i'm assuming the former. which is certainly a good thing...
- powertower 14y ago"Passionate" does not necessarily mean you work long hours "like animals". Obsessive usually does. Working pass the normal cut-off is a lose-lose proposition for anyone that puts in honest levels of work during the day. You burn yourself out, diminish your capacity, make mistakes, and most of the time don't even realize it. This can go on for years, sometimes even decades. Most of the referenced-here "passionate" behavior is probably a combination of unhealthy focus (the obsessive type or the type you use to forget about your issues), self-image, having-to-prove-something, and outside-pressure (expectations for you, matching your co-workers, etc). The better option is to work intelligently and maintain a healthy amount of self-awareness at all times. Then leave it, shut-off, or go enjoy something that matters. You'll produce 200% the results of your "passionate" co-workers.
- larsberg 14y agoMost large mammals other than humans sleep or relax a large portion of the day and are only active a relatively short time for hunting (work) and eating. So one could interpret his statement as saying that they work short, focused hours and then go home to relax. My info is anecdotal from my wife, who has spent a significant portion of her life working with bears. But from the zoo keepers I've met, that mammal breakdown is true for most of the felines and primates as well.
- deleted 14y ago[deleted]
- marvin 14y ago
- Slix 14y agoOne thing that turns me off of seriously pursuing a career at Facebook is PHP. I haven't learned PHP yet (and I'm only in college), but I've heard bad things about its design, and it seems to be overshadowed by Ruby and Python in my programming news sources. Is PHP a dying language? Even if it is, it makes sense for Facebook to continue using it instead of throwing out all their code. But it seems like it might be a waste to spend time at Facebook using PHP if the rest of the tech and start-up world has moved on.
- jc4p 14y agoI'm going to apologize in advance if any of this seems too stern or rude. You seriously don't have the correct mindset about this. You are thinking in a way that a lot of other people share, but it's not practical. In the real world you have to learn new technologies and languages consistently. Every day something new comes out or gets improved that makes doing a difficult task easier, and people/companies that can adapt and not be left behind do well. If I were in your position (which I guess I kind of am, I'm also college-age but I've spent just under half my life doing some level of professional programming) I would be learning EVERYTHING I can or at least everything mainstream I can so that if I come by a cool piece of code online or at work I can tell exactly what it does. It's true that PHP isn't as a strictly written language as some of the other languages (by this I don't mean syntax, I mean that doing two analogous operations have completely different names/attribute orders in the standard library) but it's still used by tons and tons of people. PHP isn't dying. I hate the term "dying language" because there's always something else out there that's good for that each specific language. I'm assuming that Flash is also "dying" in your POV but just today I had to whip up a quick SWF to allow copying something to a user's clipboard because it was the simplest and quickest way to allow one-click clipboard access that I could think of and I have spent time learning Flash/AS in the past so I had that knowledge. Now, when you say: it seems like it might be a waste to spend time at Facebook using PHP if the rest of the tech and start-up world has moved on I have no idea what you mean. Do you mean that Facebook not restructuring their entire codebase to a cooler and more popular language is a waste of Facebook engineers time? Or do you mean that you learning PHP to work at Facebook would be a waste of your time? I don't understand how either of these two statement could be argued so if you meant something else I'd love a clarification. There is absolutely nothing that Facebook can not do with PHP that they could do with Python or Ruby. Any business logic can be written in a myriad of ways. And I believe to be a strong candidate for a "wow" employee after you graduate you should be able to drop head first into any codebase and at the very least quickly get a simple grasp of what's going on. If Facebook gave you an internship today would you reject it because you've heard bad things about PHP? Sorry about the rant, but I've spent a lot of time working to hire other developers and it really irks me when I hear something like "oh so and so's a dying language, it's useless to learn it" because it shows that you don't have the drive and love of technology that my ideal person would.
- EternalFury 14y agoOne shall find happiness at all costs, anywhere it can be found. But, I wish for brilliant, hardworking people a better endeavor than a CRUD Web site.
- dinkumthinkum 14y agoPHP is one of those "developer productivity languages?" I mean, this way be just a huge sin I'm about to commit, but really? I think most of the world see this whole HipHop deal as you guys had all this PHP and you need to optimize it. The idea that the syntax and style of the PHP language is one of the most well suited languages to solving general computing problems ... I just find that hard to take seriously.
- kmavm 14y agoPlease don't mistake me: PHP-the-language is not well-designed. And we absolutely would never have gone down this road if we didn't have a metric ton of PHP to run and continue developing. There are a few things PHP gets accidentally right, though, and one of them is the execution model. Each request starts with a brand new empty PHP environment; runs in a single thread to completion; and must keep persistent state off to the side in a database or memcache or what have you rather than in language-level objects. This turns out to have been a really good set of decisions. It lends itself to a nice tight development loop: instead of save/recompile/restart the server/test, you basically save/load the page. It's easier to remember what the heck you were doing when you get feedback on the code you wrote in 500 milliseconds.