At Facebook, our engineers collaborate to create an open environment where ideas win and are executed quickly. Each week, our engineers will give you a look into what it's like to ideate and build at Facebook in our new "Meet a Facebook Engineer" Q&A series. Check back weekly to hear from different engineers about what problems they're passionate about solving right now, what they're up to at Facebook and what advice they have for you.
Q: What problem are you most proud of solving at Facebook?
A: During my first year at Facebook, I was the main engineer building video calling into the site. Though there were many challenges both technical and design-related, I am most proud of our focus on making video calling as easy as possible. Our solution does not require people to have separate accounts with separate logins in order to make a call; we integrated the feature directly into the site in a way that’s natural and intuitive; we reduced the number of clicks required for installation down to a bare minimum; we insisted on and delivered a tiny binary several times smaller than other solutions, in collaboration with Skype; and we simplified the calling UI down to the bare minimum needed to make calls.
While many hard engineering problems are indeed technical, I feel it’s most important to focus on resolving the challenges involved in designing usable products. I was fortunate to work with talented designers and engineers who were committed to making Facebook's video calling technology accessible to everyone. This, more than any particular technology or clever algorithm, made the feature great.
Q: What problem are you most passionate about solving right now?
A: Recently, I’ve been getting more involved in the Messages product at Facebook. Looking at how people communicate on the internet today compared to five years ago, it’s amazing to think about our fundamental shift away from email into lighter-weight, more immediate forms of communication like SMS and IM. It’s a huge deal, but it’s also the type of significant change that’s easy to miss because it’s pervasive in our lives and it’s generational.
Q: How do you see messaging evolving?
A: Increasingly, we connect with friends through direct means like phone calls and emails as well as indirect means like status posts and check-ins. We manage many different channels to communicate with the same people. Should I email Amy? Use SMS? Facebook Chat? We need to move towards a world where we no longer need to manage the channels and mediums of communication whenever we want to reach someone. I should be able to reach Amy whether from my mobile phone or computer without thinking about how (or whether) she’s connected to the internet at the moment. Plus, she shouldn’t need to constantly check three or four different apps in order to make sure she hasn’t missed anything. I think Facebook has a great opportunity to solve this problem, and I’m excited to help figure that out.
Q: How much time do you spend actually coding?
A: Most of my day is spent writing code and collaborating with designers and engineers on building new products. Facebook structures teams so that engineers can move fast and make a big impact, and I love that this lets me spend the bulk of my energy on producing code that ships. I think the most rewarding part of my work continues to be that I get to release new code onto the site every week. Almost without exception, I’ve released new code onto Facebook every week of the past year. This is not uncommon — it’s the norm at Facebook.
Q: Why do you choose to be at Facebook now?
A: The internet started as an anonymous place that felt, in a way, full of dangerous, dark corners. The anonymity and vastness of it brought out the worst in some people and made it easy to become disconnected from the best of humanity. Facebook, more than any other site, has brought real people back into the forefront of online life — real names, real histories, a sense of community, and belonging. I’m thankful for the privilege of helping build a part of it.
Q: What advice do you have for other engineers?
A: Technology is usually the easiest part of software engineering. It’s easy to focus on all the cool tech that can be built, especially since most engineers find technical challenges to be the most concrete and intellectually stimulating to solve. However, most software fails due to a poor understanding of what people want and what people need. I encourage engineers to focus on honing their understanding and insight into real user problems and to continually look for insights into clever, people-centric design.