Developer Aspirations

YAPB - Yet Another Programming Blog

Wednesday

10

June 2015

Starting @ Facebook

by Colin Miller

This is now your company

Several of my friends have asked me how my time at Facebook has been so far. This is my second week and I'm just starting on bootcamp. Prior to this I worked at LinkedIn for 4 years as a backend engineer and later on as an Android developer. I've also worked at Yahoo! and the New York State Government which gives me some idea of both different Silicon Valley companies along with more mundane government jobs. I wanted to talk a bit about my first experiences here as a n00b (which is actually what they call new hires) and how I'm finding Facebook to be different than anywhere else I've worked.

Standard disclaimer: These are my own thoughts and opinions and do not necessarily reflect those of my employer.

Culture

Many companies talk briefly about their 'culture' during interviews or during your first day at work. Usually this goes along the lines of employees 'acting like an owner' or that the company is fun loving and full of hard workers. Normally this is the time that I sort of glaze over, because in my experience these things rarely pan out. Acting like an owner is a horrible term that's not really well defined and often conflicts with how you deal with your day to day. After the passing nod to culture, most companies move on to ramping you up and assigning you work based on the team that you were hired for without much more thought.

Follow your heart but take your brain with you.

Man, this is not true at Facebook. If there's one thing I can say so far is that Facebook takes culture seriously. It is the culture of an engineer-driven company. It's almost like a more mature version of college. It is a hacker culture about doing cool things and being awesome and learning about awesome things without being a dick or a troll. Everyone here is encouraged to be your 'authentic self'. From what I can gather, this basically means that there's no need to have a work persona verses your actual persona. You just act like you while at work; flaws along with the positive attributes. It's encouraged to speak your mind, to challenge the norm, to have hard conversations, and be the cause of change.

I really hate the term 'act like an owner'. I've often been put on a project I really didn't like and was told to act like an owner. I didn't get to choose what project I was on and I don't get to decide the roadmap (some manager chooses that), so how can I act like an owner? What does that even mean? It can be really frustrating in your day to day if you feel cornered like that.

Nothing at Facebook is somebody else's problem

At Facebook, they have a poster on some of the walls that says "Nothing at Facebook somebody else's problem". What's meant by that is if you see something broken and you can fix it, just fix it yourself. At the very least report it and get it known to someone who can fix it. And this applies not just to your code or the product, but to even more mundane things like cleaning up a spilled drink or picking up trash around campus. I feel that these words better express what is supposed to be meant by 'act like an owner' in a more realistic way. Of which, it's a lot easier to 'act like an owner' when you get to choose what projects you work on. As a n00b, I don't even have a team yet. I'm going through bootcamp and after a month or so of this I'll get to choose the project that interests me the most. That's how you start building a real sense of ownership.

Imposter Syndrome

We all have insecurities about ourselves (unless you're a complete narcissist I guess). One thing that has come up for me in the past is what the people at Facebook actually acknowledged as "Imposter Syndrome". Basically it's a feeling that you're just pretending, you don't really belong somewhere, and eventually someone's going to figure this out and fire you. In a way it drives people to push themselves and excel to prove that they're worth being somewhere. On the other hand, it can also lead to stress and burnout as you constantly worry you don't belong.

Flail harder

I appreciated that this is acknowledged and addressed at Facebook. Facebook's values are to work fast and focus on impact, but not at the expense of your health or your work/life balance. Sure there will be times that you're on call or have to work longer hours to meet a deadline, but the culture of fear so far seems to not be there.

Privacy Focused

This should be expected, but privacy is huge at Facebook. I have been glad they've given it as much attention as they have since I've been at bootcamp. There is a zero-tolerance policy for breaking the privacy of others such as by snooping on someone's personal info or reading their messages or accessing anything that you don't have permissions for. If you break this, yjbnkglnriccivffljuntbgfblejrvbbhhveniecnivhfhbgiclbcnvvgtjeuejdvou immediately get fired and sued; and at a company like Facebook this is how it should be. Some friends have joked to me that now I can go and read all of their stuff. In reality, there are so many safeguards in place that I'm pretty sure if I even tried to do something like that (not even being successful), goons would show up and escort me out of the building. I like it here, so as an employee the only personal things I'll be reading are on my own account, and that of the test users I make.

Internal Tools

An interesting part of working at an engineer-driven company is access to some really kick-ass internal tools. There are things to find code easily, simple ways of accessing internal machines that are still secure, and I can create multiple sandbox machines of the site that I can test my changes on. Sandboxes are actually even nicer because they're accessible to all employees and make changes easier to review. Not only can I put up a diff of my code and an explanation of what it does, I can link to my sandbox that's running that code and the reviewer can just look at it from there.

The internal wikis are really well written and laid out, and there's a ton of things to read and opportunities to learn. Previous large companies that I've worked for have all had interesting internal tools to make the lives of their engineers easier; Facebook just seems to take it further than I've seen before. I suspect that because nothing is someone else's problem, a lot of the features came out of a need someone had that they filled. Others picked it up because it was useful. What's also great is that a lot of the technology here has been open sourced such as the hack language and HipHop.

Dogfooding

Many companies have the idea of dogfooding, or using the products that you yourself create. Most don't really live up to that idea however. Using Facebook while working at Facebook is not optional. In fact, one of the first things you do upon starting here is marking your personal account with the fact that you work there.

Facebook groups have replaced email for the most part, and after it was explained to me I realized why it's a really good thing. Email has problems everyone knows, but it's hard to really point out what they are exactly. Something that groups solves compared to email is notification. If someone starts a thread asking a question and they post it to a mailing list with 100 people, all 100 of them will get that email. Not only that, all 100 will get and every reply-all that comes after, even if they don't care. It fills up your inbox and increases cognitive load. Groups however, alleviate that by reducing the number of notifications you get. If you have a group with 100 people in it, that initial post will notify all 100 of you. However, if you don't participate in the conversation, you won't be bothered again. Only people who have commented on a post or explicitly turned on notifications for a post will get future updates relating to that topic. Since most emails are those reply-alls rather than starting new conversations, this drastically reduces the noise you see which is great.

Messenger is also heavily used. If you have a question for someone and their desk is in another building, pretty much everyone is on messenger and can be reached that way. There are also a ton of internal apps and tools that range from finding where people sit to what's for lunch today. I've never used Facebook more than I have since I started working at Facebook.

Conclusion

I have only been an employee at Facebook for less than a week, so I'm sure I'll learn more as time goes and possibly things will seem better or worse. Some may call this the "honeymoon" phase of my employment. I do know that I haven't been as excited and happy starting a new job anywhere else like I have at Facebook. I'm looking forward to the challenges ahead. My excitement and passion for what I do are sparking, and that's the best place for me to be.

comments powered by Disqus