Apr 18 2018

Inside Facebook Mobile

At Facebook we love sharing our knowledge of building scalable mobile apps. Our developers aim to provide a first-class experience for everyone, no matter the device, network connection, or version users maximize to access Facebook's apps. We focus on three core objectives: making the app sustainable, fast, and easy to use. We accomplish this through mobile tooling and automation that continually drives improvements in speed and reliability in order to maintain a high quality bar across all mobile platforms.
Now we are excited to introduce the Inside Facebook Mobile podcast. In addition to remaining active in the open source community and conference circuit, the podcast offers another channel that allows us to highlight the technical work of our global engineers who will discuss everything from low-level frameworks to end-user features. Throughout these podcasts, two Facebook engineers, Pascal and Emil, and in later episodes Mihaela, will interview mobile developers in the company.
We invite you to join us by subscribing at iTunes, Spotify, Google Podcasts, Pocket Casts, Breaker, or Overcast. If you have any feedback, questions, or suggestions please get in touch with us at mobilepodcasts@fb.com. If any future guests pique your interest to learn more about the technical challenges we are solving, please check out facebook.com/careers, and see what opportunities are available to potentially work with them.
For our first episode, we spoke with Mihaela, a software engineer based in London who builds Android UI frameworks and works on Facebook's Litho team. She shares her unconventional path to Android development, low-level details of the Litho framework, and what excites her the most about the future of Android development.
In our second episode, Emil and Pascal talked to Will Bailey. Will has a long history at Facebook building tactile experiences and open source libraries. Now Will works at Instagram. Apart from hearing about Will's history at Facebook, we focused on the intersection of design and software engineering, something all of us are very passionate about.
We just released Sonar, an extensible mobile app debugger. In this episode, Pascal interviews Emil who started the project 18 months ago to find out what inspired him to build it and how Sonar is used across Facebook today.
Episode 3 is now available, featuring guest Julia G. Julia works as a technical program manager in release engineering. This means that she makes sure that all of Facebook's Android apps are released on time, which means once a week for most of them, while making sure that every version improves over the previous one in stability and features. Tune in to learn how this works when dealing with billions of users on thousands of different devices: iTunes, Spotify, Google Podcasts or Pocket Casts.
In episode 4, Mihaela joins Pascal for the intro to discuss the latest news in Facebook open source including Litho and Flipper. We then move on to the interview in which Pascal chats with Alisa and Stef who work on AR Studio and AR Engine, two products that allow creatives to build effects for various Facebook apps. Tune in to hear how Alisa and Stef ended up in their current roles, how a feature makes it from inception into a product at Facebook, and how community feedback is taken into account: iTunes, Spotify, Google Podcasts or Pocket Casts.
Episode 5 features Balazs, who joins Mihaela and Pascal to shed some light on what it's like to be an engineering manager at Facebook. Balazs talks about some of the projects he's worked on as an Android engineer after he joined Facebook and shares how and why he transitioned to management, starting this new role in the Fresco team. Balazs is now managing a team that is focused on performance and he shares some insights on the unique challenges his team is solving and how he fits in that as an engineering manager. As usual, the episode starts off with a quick discussion on the latest Facebook Open-Source news and upcoming Android talks.
In episode 6, Lillian joins us to talk about Facebook Stories and how it took shape from a new sharing surface developed by three engineers to the mature product it is today. You'll learn about the challenges her team faced while trying to scale Stories from a prototype and the performance implications of introducing new types of content as well as functionality at the top of News Feed. If you've listened to our previous episode featuring Balazs, who's been an engineering manager for some time, you can now hear about this role from the perspective of someone who's just recently become an engineering manager and is now going through the transition from an Android engineer to a manager.
Catch up with Software Engineer Ariane in episode 7, where she joins Pascal and Mihaela to talk about performance logging. Tune in to hear why instrumenting performance markers is important for a healthy app, what makes a good metric and how to build sustainable logging systems.
In episode 8, Mihaela and Pascal chat with Mona from Instagram New York. We talk about Mona's journey from working on web in California to scroll performance at Instagram in New York and how performance overall is approached from measuring, tackling regressions and establishing a company-wide performance culture. In addition to this, we go through some of our listener questions about team structure, time and release management and pick this up later in our interview where we discuss differences in our overall approach to engineering and QA between Facebook and Instagram.
In episode 9, Pascal and Mihaela chat with engineer Emma about Redex, an open-source bytecode optimizer for Android apps. Emma talks about the importance and trade-offs of such optimizations and walks us through the basic steps of how Redex works and the different types of detection patterns it uses. If you are interested in trying Redex for yourself or curious to know how it's different than other similar tools, Emma discusses how to adopt Redex in your app and how to write your own detection pattern.
In episode 10, you can listen to Tal, a Technical Program Manager based in the Tel Aviv Facebook office, who joins Pascal and Mihaela to talk about Facebook Lite. Tal discusses the challenges of building, maintaining and releasing an app that has tight constraints of memory, network and disk usage in sight. You'll learn about what Facebook Lite is, why it's important to make it easy for everyone to be able to access it from their phones and you'll hear interesting insight about how phone constraints change how someone accesses internet services.
Subodh, a software engineer leading the QUIC team in Menlo Park, joins us for episode 11 and talks with Mihaela and Pascal about Android networking. If you've never given much attention to the network protocols your app is using, listen to Subodh explain why you should give it a second thought. You'll hear about how the Android networking stack has evolved over the years, why zero round-trip time matters on mobile and what it's like to contribute to a network protocol specification (spoiler: it's TLS 1.3). Brush up on your networking knowledge and tune in!
Chiara is a product manager who supports the Workplace team. She joins Pascal and Mihaela on episode 12 to give some clarity on the role of a product manager. With a background in graphic design, she tells us about her journey to becoming a product manager and the skills and mindset she practices in this role. If you enjoy the business aspect of a project and you're someone who can coordinate understanding a problem and identifying a path to the solution, being a product manager will fit you like a glove.
Did you watch F8 this year? You've probably seen the new Facebook blue and your app got a sleeker, more modern icon. Hilal is part of the team that made that happen and he joins Mihaela and Pascal on episode 13 of Inside Facebook Mobile to talk about scaling packaging and distributing UI resources to devices.
Episode 14 of Inside Facebook Mobile introduces Adam, the first dedicated iOS developer that Mihaela and Pascal have hosted on the podcast. Adam created ComponentKit, an iOS open-source framework inspired by React, and he joins this episode to tell the story of how the framework was built and adopted. Adam shares some insight on API design considerations, how to build frameworks around scalability and correctness and what the current challenges of working on the Facebook iOS apps are. Before you hear all about this, Daniel gives a special intro to Spectrum.
Episode 15 features a topic that might sound familiar to you if you've listened to previous editions of Inside Facebook Mobile. It's a project that provides such value to developers that it keeps coming up in discussions with engineers working in many different areas at Facebook. Ezgi has a long-awaited conversation with Mihaela and Pascal about Infer, an open-source static analysis tool with support for Java and C-based languages. Ezgi joined Infer as a natural extension of her PhD in programming languages and type systems. You'll not only hear from her about writing and testing a new analyses for Infer, but also what it's like to balance academic research with having applied industry impact. We're sure you'll stay tuned until the end!
Join us for episode 16 where Pascal and guest host Fabio interview Rachel, a developer advocate in the React Core team. React is one of the biggest open source UI frameworks in the world, a reputation kept sustainable especially thanks to the amazing work the React Core team puts into the educational material available to the community. Rachel shares her journey from cartoonist to developer advocacy roles to the present day, where she curates and maintains documentation material built for people rather than just coders. How to find the missing or next chapter of your docs? How to measure success? This and much more in episode 16.
Episode 17 sees Mihaela and Pascal interview Marc H., discussing Hermes, an open source JavaScript engine optimised for running React Native apps on Android. Listen in to hear Marc explain why it was necessary to build a JavaScript engine to support the needs of a particular framework and get a glimpse of the architecture and the design decisions behind it.
Once a year, Facebook invites developers from various companies to talk about scaling challenges on mobile at London Mobile Forum. Mihaela and Pascal joined the fun to talk to some attendees, which are for the first time on IFM not (all) Facebook employees. Tune in to episode 18 to learn how Deliveroo are moving from Java to Kotlin, the BBC is using their app to find a more inclusive audience, how ASOS moved away from never-ending feature branches and much more.
For episode 19, Pascal went mobile and brought the mics to droidcon in London. He interviewed Facebook speakers Sergey, Alexander and Lisa. Listen in to find out about the current state of cross-platform coroutine libraries for Kotlin, about the evolution of the open source image loading and memory management library Fresco, and about the design principles that went into designing Messenger Lite.
For the last episode of the decade (!), Pascal is joined by Inside Facebook Mobile royalty Emil, who shares what he has been up to since his last appearance on the podcast and how Facebook Open Source is still part of his day-to-day work.
Then we head back over to Droidcon UK 2019, where Pascal interviews Aziz from the Android Native UI Frameworks team about benchmarking UI components, followed by a chat with Aziz’s teammates Andy and Pasquale about effective multi-threading on Android.
In episode 21 of Inside Facebook Mobile, Pascal is joined by Rachel to co-host the first show of the new decade. They interviewed Sergey from the Android UI Frameworks team to discuss the long-awaited rollout of Kotlin within Facebook. The panel explores some of the inspirations and differences between React, React Native and Litho before talking about the design of new Kotlin APIs for Litho.
During episode 22, Rachel and Pascal are joined by a guest from WhatsApp. Silky walks our hosts through a staggering array of optimisations WhatsApp deploy to make sure that text, media and documents arrive quickly, reliably and safely on the other end. They also discuss how the team fights abuse on the platform.
For episode 23, Pascal is joined by the organising team of the Women of React conference, where women take the virtual stage, but everyone is welcome to attend and participate. Cassidy, Sara, Kevin, Jenn and our very own Rachel share how they came up with the idea and what you need to kick off your own online conference.
For episode 24, Inside Facebook Mobile is back for a special interview with the team behind the Facebook COVID-19 Information Center. Chang, Jarman and Zaven share their experiences of building and shipping a global product like this over the course of just a few weeks. We discuss how the early architectural decisions enabled the seamless collaboration with tens of teams that were all working remotely.
For episode 25 Pascal and Rachel are joined by Martin and Kevin who work on Instagram Reels. They lift the veil on country tests, what makes stitching videos seamlessly together so hard on Android and iOS and share their thoughts on the short-form video space in general.
During episode 26, Rachel and Pascal are joined by Thomas to share how the internal Kotlin adoption has progressed since the last time we checked in with Sergey on the topic.
In the deeply technical discussion, the three discuss how ABI generation speeds up builds, which Kotlin language features still need to be used with caution and what a plan to 100% Kotlin for Android might look like.
For episode 27, Garima joins Rachel and Pascal to discuss the challenges of building custom layouts for notifications in a fragmented Android ecosystem. They discuss how sampled data helps to ensure that our billions of daily active people get the best possible experience and users on older phones aren’t left behind.
Episode 28 of Inside Facebook Mobile features engineer Fabio, and answers the question 'How does Facebook modularise iOS applications?'. Tune in to learn about Buck, Facebook’s monorepo build system, and how it helps developers to define clear module boundaries.
To improve consistency across our family of apps, engineers have built a large number of reusable components. But how do designers communicate to engineers which component to use? How do you keep the look consistent across our various frameworks? How do you make sure that documentation stays up-to-date? By building tools! In episode 29, Engineering Manager Sriram R. talks to Pascal H. about how the team solves design-engineering handoff problems and improves the overall UI quality of Facebook apps.
In episode 30, we're continuing our focus on UI Quality and are diving deep into design linters. Elle and her team work on Facebook-internal Figma plugins that provide guidance on aspects like colors and usability of user interfaces. In the interview, Elle and Pascal discuss how the plugin leverages Facebook's web architecture to roll out changes quickly and how a shared REST API allows for rules to be used in multiple contexts.
Picking up from episode 28 with Fabio, episode 31 is continuing the exploration of mobile architecture at Facebook. How do we build vastly different products all under the one roof of a single large app or even share it across multiple ones? Pascal, Fabio, Dustin and Yuan explore how intentional architecture gives teams the autonomy to choose whatever model works best for them while ensuring that we can grow our apps in a sustainable way.
In episode 32, Pascal is joined by Sara, Patrik and Aaron to discuss how design reviews happen at Facebook. Instead of looking at static screenshots alongside the code, reviews now include a dynamic representation of the view hierarchy that not only allows for inspection of properties but also directly highlights violations of Facebook's design standards for accessibility and usability. Tune in to learn how all of this grew out of a toolsuite originally built for the web and much more.
In episode 33 of Inside Facebook Mobile, we talk to Sash who has been taking advantage of internal mobility by switching teams every year almost on the dot. Over the course of his three year career at Facebook, he has worked on iOS animations, Android hardware and most recently, on the Facebook Reality Labs team.
In episode 34, Cami W. and Pascal H. discuss how developer advocacy is approached at Facebook, what impact the pandemic has had on it, and tackle the eternal question of why it's worth investing in Open Source. If you've ever wanted to dip your toes in VR development, stick around for the end when Cami shares some of her favorite resources.

Stay Connected!