What is it like to be a Production Engineer at Facebook?
-
How different a role is it from a software engineering role? In terms of compensation, how would you compare the two? What are the prospects of getting a software engineering role in another company after you leave this role at Facebook? Is it really close to Software Engineering as the job description claims to be? Will I be making a mistake taking this role over a software engineering role at another company, considering that this is my first job?
-
Answer:
First, a disclaimer: I interned as a PE last summer, and enjoyed it enough that I'm coming back after graduation. Also, I'm in no way an official spokesperson of anything but my own opinions. It would be nice if someone with more job experience also threw in their two cents. (Cough, the people following this question.) Since I enjoyed the role, it would be easy for me to give an unqualified "yes, you should" but I will try to give you a slightly better answer. Here's what I did on a day to day basis: live with large infrastructure. That may sound a bit trite, but PE encompasses a much wider variety of things than a traditional software engineering role. Unlike a traditional SWE, it is usually not a Production Engineer's job to take lists of features and convert them to lines of code. (Though I did quite a bit of that this summer, given my software engineering background.) If you're looking for the safety of specifications or enjoy spending long hours piecing together monolithic blocks of code, this might not be what you're looking for. This does not mean you aren't constantly writing code. It is always a PE's job to be thinking about how built and to-be-built systems work in, well, production. That means understanding the nuts and bolts of the services you 'own'. When something goes down, a PE is often the best person on a team to understand why, even if they didn't write the code in the first place. If you like poking around systems and fixing things on the fly, you will enjoy this. If this sounds terrifying, you won't be happy. If it sounds scary, and you still want to do it, you're a Production Engineer. If you're not chugging out features, then what are you doing? The need for a role like PE at Facebook or SRE at Google arises out of an operations problem: how do you run some software on some machine to provide some service? On the scale of one or a few machines, this job involves an admin doing lots of manual setup and maintenance running a bunch of commands. On the scale of many data centers holding thousands of machines serving a billion people, the problem of operating software becomes an interesting puzzle of its own. You can't solve it in the piecemeal fashion that works just fine on one computer. PEs write the code that wrangles these systems. Even in the few short months of my internship, I gained a ton from being thrown into a PE roll. The job is an excellent education in how software services work, and sometimes don't work, at scale. There are only a handful of places in the world where you can see software operate at that magnitude, and Facebook is one of them. In my personal opinion, the operations experience you can gain as a PE is an excellent way for a more traditional SWE to round out their skill set. If you don't know now how to go about actually operating a real piece of software in a datacenter, you will by your 6 month mark. About pay: Salary at FB is, of course, based on performance. The same scales are used across all engineering divisions. You should talk to your recruiter, because they will be able to give you a much better answer. (Also, expect it to be honest. I never got the sense that FB recruitment would say something un-candid to persuade someone.) On making a mistake: I've tried to give you a more roundabout answer that describes what I saw the PEs around me doing during my time at Facebook. If it sounds interesting to you, then I would say you're not making a mistake. Also, it's pretty easy to move around in this industry both inside of a company like FB and outside of it. Like any job, this one has it's ups and downs. Some might say the operations work is a downer. I say if you're doing too much ops work, it's about time you wrote some software to do it for you. I didn't expect to write this much, so I'm going to stop now.
Joe Gasperetti at Quora Visit the source
Other answers
I've been in Production Engineering @FB for almost 2.5 years now, so I will attempt to add some details, but Joe Gasperetti already did an amazing job with his answer. If there is one important word that Joe left out, I would say that it is this: Linux. Production Engineers live and breathe in the world of Linux. There may be a few exceptions, but they are, well, few. If you do not enjoy having to interact with the OS at least a moderate amount, PE may not be for you. Production Engineers are very holistic in their talents and interests; primarily PEs are knowledgeable in a healthy combination of coding, Linux / OS functionality, and networking. Typically it's okay to be weaker in one if you are pretty strong in the other two. I personally know a few PEs who are ridiculously good at all three. Personally, I ask interview candidates how they would ideally like their time divided between coding/scripting, doing OS-related things, and networking. PE Managers try, to the best of their abilities, to match up a good candidate's ideal %-breakdown to the needs of the department and company. If you like to do a lot of coding, we can probably accommodate you. HOWEVER - Are you going to be able to spend 100% of your time doing software development? No, definitely not. I've heard there are a few positions that go as high as 80%, possibly higher for interns. If you do not have much of an interest in Linux and networking, I would suggest that PE may not be a good fit for you. If you averaged out all Production Engineers based on the % of their daily time spent programming, I would wager it falls somewhere between 40% to 60%. (I invite other PEs to chime in if they disagree.) Be honest with your recruiter and any PE managers about your interests and the amount of time you'd like to spend coding. In particular, your question 'What are the prospects of getting a software engineering role in another company after you leave this role at Facebook?' concerns me - if your interest is solely in software development, you should pursue a software engineering role, not a PE role. Production Engineers on average are very good programmers; as good as, or better than, many full-time software engineers at most companies around the world. You will have ample opportunity to keep your programming skills sharp. But programming simply CAN'T be your ONLY area of high-interest to be successful as a PE. I will say this, though. If Production Engineering ends up being your first job, you will have an amazing advantage over, literally, 99.99% of the tech community around the world. You will gain valuable and rare experience, and your knowledge will shoot through the roof in many areas that pure software engineers are never exposed to. If you have a deep level of tech curiosity, if you're the type to tinker, or at some point you installed Linux for fun and the experience, if you've ever stayed up until 3 in the morning because you really wanted to figure out why your desktop PC was grinding to a halt, PE will definitely match your tech persona. Just keep the dialogue open with your recruiter. And I'm sure there are many PE's who would be happy to talk with you about the role - it's unique, amazing, and been the best professional experience of my life. (As well as quite an honor.) Final word - we are very core to FB engineering - we interact with almost every other engineering group / dept. on a regular basis. We are a surprisingly social bunch given our insane levels of geekdom; if you like getting to interact with tons of new, super-smart people every day, you'll fit right in. We are a welcoming crowd - you will make friends for life in PE. Good luck whatever you decide!
Larry Schrof
Related Q & A:
- What education is necessary to become a genetic engineer?Best solution by study.com
- What are the non-technical things a civil engineer can do?Best solution by Quora
- What does it take to be a Biomedical engineer?Best solution by theinstitute.ieee.org
- What is it like to be a computer hardware engineer?Best solution by Yahoo! Answers
- What is it like to be a Civil Engineer for a career?Best solution by Quora
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.