What does “building engineering teams at scale” mean to you (as an engineer or team lead) and your organization? Is it about the infrastructure - connecting people at scale globally? Or is it the team - their interaction, culture? Or about the team’s environment — that allows them to learn, unlearn, relearn? Or maybe a healthy combination of all the above?On Facebook’s 16th anniversary, we had the opportunity to host 240 engineers across Africa, and hangout with Ziad Traboulsi, Director of Engineering at Facebook, as he shared and highlighted key lessons from approximately 20 years of being in the industry; having founded and sold his startup in the early 2000s, then at Facebook across various roles and teams for close to 10 years.Here are some of the lessons he has picked up along the way in his dynamic career:
A lesson of perseverance — it takes time and effort to learn and grow, and if you want something seen, start by building it yourself. Ziad mentions how, in his earlier years in coding, he wanted something very specific; he wanted to wake up every day and go to school with a specific MP3 playing - looks minor in retrospect, but you’ve got to remember that app stores, smart alarms, etc. were not prevalent back then! But this solution didn’t exist, so he decided to learn it himself; it took him ~1.5 months to write a few 100 lines of code, but remember → perseverance.Tap into your passion — remember technology is simply a means to an end and not an end by itself. What’s at the core of what you are interested in technology? Is it in building solutions to local problems, in infrastructure, in understanding your consumer’s behavior? Ziad talks about his interest in understanding people’s behaviours, which is why studying behaviour and economics was important for him, because it made him better understand how people get to interact and draw value from tech-enabled solutions — he gives an example of a life-changing experience of man who had a heart condition, joined a Facebook Community group, which he was profoundly grateful for because of how much he had learned by being part of the group.Have fun, but also remember to take on challenges — optimize for both! Don't optimize to only have fun at something, take on (at least) 2 components 1) what you are good at and, 2) what you are passionate about (that’s where the challenge lies), and optimize for both.Take ownership — nothing at Facebook is someone else’s problem, Ziad says. Be the change you want to see. A lot of power comes with a lot of responsibility too, so when you take ownership, you’ll be taking a lot of risks too, but don't be afraid to fail!
For Engineering Organizations:
Promote “Openness and Transparency” — Do you have a culture that allows any engineer to check anyone’s code? Can any engineer review anyone’s code? It’s good to also note that a lot of power on engineers’ hands, with power comes responsibility.Do you provide an environment that keeps questions flowing across all matters of the org? Ziad gives an example of an open Q&A at Facebook that allows questions and answers from and to anyone in the company including the CEO.Do you have an infrastructure that promotes information flow internally amongst engineers? It could be an Intranet, or via Slack, Messenger, etc.Create a decision-making environment that has minimal obstacles — empower engineers to make the right choices for themselves as this will also translate to the right choices for the company.Can engineers make decisions without a lot of obstacles? For example, can they access all codebases in the organization, say, during the induction period? How smooth is the transition from one team to another if an engineer is looking for change within the organization?Build a culture around “assuming good intent” — this ultimately brings engineering teams closer.Empower engineers to not be afraid to fail — Ziad highlights an earlier motto that Facebook had “Move fast and break things” which has now evolved to “move fast with stable infrastructure” that adds to the confidence of engineers to not be afraid to fail and learn.
Ziad acknowledges that building engineering teams at scale also has its fair share of challenges; growth challenges, change challenges, product diversity challenges - he shares 2 key pieces of advice:Re-invent as many times as you can to serve growing needs: Solutions from 10 years ago are quite different now. How you acquire talent, hire, onboard, etc has significantly changed. Strategy and tactic that got you to 100 users, will be different from what gets you to 1,000 then to 1M users; same to your employee growth, and storage, and servers and engineering team growth.Iterate faster: Dependent on the user needs and the product, invest in infrastructure that allows for faster iteration towards an environment where code is compiled, built, tested, deployed in real-time.
Success in building engineering teams at scale is highly pegged on the company’s culture and the engineering team’s culture. So in conclusion, I will leave you with some of these questions to ponder on:What is your company’s culture? Do you have a healthy culture? Is your culture working? Do you help advocate for it? Is it translated into concrete directives, privileges, and programs that the company supports? Has your culture helped in recruiting and retaining the right people into your company?
Notable quotes by Ziad Traboulsi:
“Code wins arguments, and metrics drive the team.”“Connectivity cannot just be a privilege, it needs to be an opportunity for everyone to tap into.”“Pay attention to your culture, it will be a catalyst to help achieve your goals.”Ziad leads the Mobile & Connectivity Partner Engineering Team at Facebook, a dynamic team of Marketers, Designers, PMs, Data Analysts, Engineers. He is currently primarily working on an initiative to bring access to the Internet in the developing world, has been to >20 countries in the continent, and loves the energy, creativity, entrepreneurship and self-starter culture of technologists in Africa.