Brought to you by Facebook. In addition to remaining active in the open source community and conference circuit, this podcast offers another channel that allows us to highlight the technical work of our engineers who will discuss everything from low-level frameworks to end-user features. Throughout…
Pyrefly is a faster, open-source Python type checker written in Rust, succeeding Pyre. But what prompted the rewrite and what besides the language choice ended up making it faster? Host Pascal talks to Maggie, Rebecca and returning guest Neil about the unexpected complexities of building an incremental type checker that scales to mono repositories in episode 75. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host Pascal (https://mastodon.social/@passy, https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Pyrefly: https://pyrefly.org/ Pyre: https://pyre-check.org/ Ruff: https://github.com/astral-sh/ruff PEP 484: https://peps.python.org/pep-0484/ Timestamps Intro 0:06 Rebecca Introduction 1:45 Maggie Introduction 2:45 Neil (Re-)Introduction 3:12 Team Mission 3:56 History of Typing in Python 4:29 The State of Typed Python at Meta 5:32 fbcode 6:02 Original Motivation for building Pyre 6:19 Justifying the Rewrite 7:48 Pyrefly vs the Rest 9:41 Why Rust? 10:45 Fearless Concurrency 12:02 Why is it faster? 12:37 Python community and Rust 14:57 Pyrefly wasm crate 15:46 Upgrade experience 17:34 Type checking differences 19:12 IDE experience 21:31 State of Pyrefly at Meta 22:27 Being open-source-first 23:36 Open-source challenges 25:06 Unexpected challenges 26:39 Outro 31:05
To ensure that everyone has access to resilient, high-speed and low-latency connections to Meta services, no matter where in the world they are, Meta makes large-scale investments into subsea cable infrastructure. The recently announced Project Water worth will, Once complete, reach five major continents and span over 50,000 km (longer than the Earth's circumference), making it the world's longest subsea cable project using the highest-capacity technology available. In this episode, host Pascal talks with another Pascal and his colleague Andy who are involved at every stage of these projects and share the surprising challenges one has to deal with when working on the largest subsea cable project in the world. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host Pascal (https://mastodon.social/@passy, https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Project Waterworth: https://engineering.fb.com/2025/02/14/connectivity/project-waterworth-ai-subsea-infrastructure/ Timestamps Intro 0:06 Introduction Andy 2:14 Introduction Pascal 3:21 Why do we build our own subsea cable infrastructure? 4:15 Current state of Meta-owned subsea cables 6:20 Project Waterworth 7:40 Why invest in more subsea cables? 9:00 What does a cable look like? 11:14 The process of laying subsea cable 16:39 Unexpected findings on the ocean floor 19:25 Shallow vs deep ocean 21:12 Merging different cable types 24:00 What happens when a cable breaks? 25:04 Memorable challenges 27:42 Cable capacity 29:51 The long history of subsea cables 33:07 What's next? 36:27 Outro 39:02
Join Pascal and Sabrina on the latest Meta Tech Podcast episode as they discuss the evolution and future of GraphQL. From client-side consistency to innovative APIs, learn how GraphQL is making developers' lives easier and enhancing user experiences. Discover surprising insights into the challenges of building a mobile GraphQL platform and how it's transforming product development at Meta. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host Pascal (https://mastodon.social/@passy, https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links GraphQL: https://graphql.org/ Relay: https://relay.dev/ Sabrina at GraphQL Conf 2024: https://www.youtube.com/watch?v=PGBC-0E-kco Timestamps Intro 0:06 Introduction Sabrina 1:42 Sabrina's team 2:47 What's GraphQL? 3:18 Relay and Mobile GraphQL Clients 4:01 GraphQL Consistency Engine 4:54 Pando Mobile GraphQL Client 7:16 Interfacing with Pando 8:03 Code generation 9:14 Inventing new features 10:43 The hidden complexity behind pagination 11:52 Working inside the GraphQL spec 16:00 Complexity tradeoffs 18:30 State of GraphQL at Meta 21:16 Measuring success 24:58 Optimistic Mutations 27:31 Collaboration model 31:42 Preventing early adoption 34:43 The challenge of migrating FBApp 37:10 What's next for mobile GraphQL? 40:22 Outro 41:54
In this episode of the Meta Tech Podcast, host Pascal sits down with Shane, a research scientist at Meta, to explore the cutting-edge research behind Ray-Ban Meta glasses. Shane shares insights from his seven-year journey at Meta, where he focuses on computer vision and multimodal AI within the Wearables AI organization. Tune in to learn how Shane's team is pioneering foundational models for Ray-Ban Meta glasses, tackling unique challenges, and pushing the boundaries of AI-driven innovation. Discover how multimodal AI is transforming user experiences and get a glimpse into the future of wearable technology. Whether you're an engineer, a tech enthusiast, or simply curious about the latest advancements, there is something for everyone in this episode. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host Pascal (https://mastodon.social/@passy, https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links AnyMAL: An Efficient and Scalable Any-Modality Augmented Language Model - https://arxiv.org/abs/2309.16058 Be My Eyes Programme: https://www.forbes.com/sites/stevenaquino/2024/10/11/inside-the-be-my-eyes-meta-collaboration-and-the-allure-to--impact-humanity/ Meta Open Source on Threads: https://www.threads.net/@metaopensource CacheLib: https://cachelib.org/ Meta's AI-Powered Ray-Bans Are Life-Enhancing for the Blind - Wall Street Journal: https://www.wsj.com/tech/ai/metas-ai-powered-ray-bans-are-life-enhancing-for-the-blind-3ae38026 Timestamps Intro 0:06 OSS News 0:56 Introduction Shane 1:30 The role of research scientist over time 3:03 What's Multi-Modal AI? 5:45 Applying Multi-Modal AI in Meta's products 7:21 Acoustic modalities beyond speech 9:17 AnyMAL 12:23 Encoder zoos 13:53 0-shot performance 16:25 Iterating on models 17:28 LLM parameter size 19:29 How do we process a request from the glasses? 21:53 Processing moving images 23:44 Scaling to billions of users 26:01 Where lies the optimisation potential? 28:12 Incorporating feedback 29:08 Open-source influence 31:30 Be My Eyes Programme 33:57 Working with industry experts at Meta 36:18 Outro 38:55
How do you translate roughly ten million lines of Java code to Kotlin? Clicking in your the IDE gets pretty repetitive after a while and doesn't work if you have custom APIs and requirements for null safety. Eve and Jocelyn, two software engineers on the Mobile Infra Codebases Team have taken on this challenge and talk host Pascal through the unexpected difficulties when embarking on the journey to (close to) 100% Kotlin in our Android codebase. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host Pascal (https://mastodon.social/@passy, https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Meta Engineering Blog - Translating Java to Kotlin at Scale: https://engineering.fb.com/2024/12/18/android/translating-java-to-kotlin-at-scale/ Open-source transformations: https://github.com/fbsamples/kotlin_ast_tools Mobile @Scale Conference recordings: https://www.youtube.com/watch?v=L7xSnbrk4CI Timestamps Intro 0:06 Introduction Eve 1:11 Introduction Jocelyn 2:15 Team mission 2:44 The scale of Meta's codebase 3:40 Why is there so much code? 4:34 Why migrate to Kotlin? 5:45 Isn't Kotlin slow to compile? 7:51 Why not use Android Studio's converter? 8:28 Nullability differences 10:04 Meta Codemod Service 14:50 Kotlin codemod stages 17:07 Headless J2K 20:14 Open-source transformations 23:14 Java Nullsafe 24:47 Leveraging Linters 26:01 Fixing build errors 27:24 Unexpected challenges 29:33 State of the union 33:44 Outro 36:10 Outtakes 37:08
Introducing a new Android UI Framework like Jetpack Compose into an existing app is easy right? Import some AARs and code away. But what if your app has specific performance goals to meet, has existing design components, integrations with navigation and logging frameworks? That is where Summer and her team come in who handle large-scale migrations for Instagram. They aim to provide developers with the best possible experience when working on our code bases, even if that requires some temporary pain on the side of infrastructure teams that have to maintain multiple implementations at once. Why Summer thinks it is worth it, how they approach the rollout of a new framework and so much more is all discussed in episode 70. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host Pascal (https://mastodon.social/@passy, https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Jetpack Compose: https://developer.android.com/compose Litho: https://fblitho.com/ Google Showcase: Meta built threads in only 5 months using Jetpack Compose: https://android-developers.googleblog.com/2023/10/meta-built-threads-in-only-5-months-using-jetpack-compose.html Flipper: https://fbflipper.com/ Timestamps Intro 0:06 Intro Summer 1:29 Notable differences moving from FB to IG 2:26 The Instagram Data & UI Architecture team 2:58 Why modernise? 3:44 Where has the risk paid off? 6:08 What does Compose look like? 7:49 Compose v Litho 11:15 Where does Litho still have the upper hand? 14:53 Meta contributions to Compose 16:38 Compose pitfalls 19:10 Rolling Compose out across the company 20:13 Design systems 22:12 Downsides of establishing another UI framework? 24:22 Rollout stages 28:43 Experimentation stage 32:32 Closed enrollment phase 38:15 Graduation criteria 39:38 Outro 42:20 Bants 44:04
Do types actually make you more productive or is it just more typing for you to do on the keyboard? That's just one of the questions we managed to answer at least on a small scale with Diff Authoring Time or DAT, here at Meta. Want to know how we leverage metrics to run experiments on productivity in our internal codebase? Tune in to episode 69. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Timestamps Intro 0:06 Henri Intro 1:45 Ian Intro 3:13 Moritz Re-Intro 3:28 DAT Recap 3:48 What is Hack? 4:20 Inner and outer loop 14:13 Experimenting witth language features 17:47 Code sharing frameworks at Meta 27:43 Measuring framework productivity 29:01 Will we see more experiments? 34:23 Time savings from code sharing 37:28 Outro 39:03 Blooper 39:52
How do you build your own mixed reality headset from sketch to scale? That's exactly what Alfred Jones, VP of hardware engineering at Meta Reality Labs, discussed with host Pascal. From choosing the right display technology, battery, thermal budget and of course hitting the right price point. How he manages to not fall victim to choice paralysis and so much more in episode 68. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod) or Instagram (https://instagram.com/metatechpod) and don't forget to follow our host Pascal (https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Caddy: https://engineering.fb.com/2024/07/18/virtual-reality/caddy-cad-mixed-reality-mr-meta/ Timestamps Intro 0:06 Alfred Introduction 1:40 Who do you work with? 3:23 Decision making frameworks 5:20 Is MR the final destination? 7:19 What makes good passthrough such a challenge? 10:18 How to build your own MR headset 13:51 Hardware design constraints 19:00 Prototype phases 22:34 Durability testing 26:23 Dogfooding at Meta 28:55 Magic wand for technical limitations 31:56 Outro 34:26
At Meta, engineers are our biggest asset which is why we have an entire org tasked with making them as productive as possible. But how do you know if your projects for improving developer experience are actually successful? For any other product, you would run an A/B test but that requires metrics and how do you measure developer productivity? Sarita and Moritz have been working on exactly that with Diff Authoring Time which measures how long it took to submit a change to our codebase. Host Pascal talks to them about the way this is implemented, the challenges and abilities this unlocks. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Meta Connect 2024: https://www.meta.com/en-gb/connect/ Timestamps Episode intro 0:05 Sarita Intro 2:33 Moritz Intro 3:44 DevInfra as an Engineer 4:25 DevInfra as a Data Scientist 5:12 Why DevEx Metrics? 6:04 Average Diff Authoring Time at Meta 9:55 Events for calculating DAT 10:55 Edge cases 13:15 DAT for Performance Evaluation? 20:29 Analyses on DAT data 22:29 Onboarding to DAT 23:23 Stat-sig data 25:06 Validating the metric 26:34 Versioning metrics 28:09 Detecting and handling biases 29:19 Diff coverage 30:30 Do we need DevX metrics in an AI software engineering world? 31:23 Measuring the impact of AI tools 32:23 What's next for DAT? 33:40 Outtakes 36:22
Bento is Meta's internal distribution of Jupyter Notebooks, an open-source web-based computing platform. Host Pascal is joined by Steve who worked with his team on building many features on top of Jupyter, including scheduled notebooks, sharing with colleagues and running notebooks without a remote server component by leveraging Webassembly in the browser. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Scheduling Jupyter Notebooks at Meta: https://engineering.fb.com/2023/08/29/security/scheduling-jupyter-notebooks-meta/ Serverless Jupyter Notebooks at Meta: https://engineering.fb.com/2024/06/10/data-infrastructure/serverless-jupyter-notebooks-bento-meta/ Jupyter Notebooks: https://jupyter.org/ Timestamps Intro 0:06 Who is Steve? 1:49 What are Jupyter and Bento? 2:48 Who is Bento for? 3:40 Internal-only Bento features 4:42 Scheduled notebooks 11:39 Integrating with existing batch jobs 17:10 The case for serverless notebooks 20:59 Enter wasm 24:29 Upgrade paths from serverless to server 26:29 Bringing more Python libraries to the browser 30:21 Adding magick(s) 31:52 DataFrame magic and AI 36:41 What's next? 38:29 Outro 43:17
We don't know when but at some point in the future we will face what researchers call a "Quantum Apocalypse". This is when quantum computers will be able to break many of our existing encryption algorithms. To keep Meta'a users safe even from attacks that don't even exist today, Sheran and Rafael are working on post-quantum-ready encryption. Tune in to learn about the various challenges and trade offs that this work brings with it. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Post-quantum readiness for TLS at Meta: https://engineering.fb.com/2024/05/22/security/post-quantum-readiness-tls-pqr-meta/ Fizz TLS implementation: https://github.com/facebookincubator/fizz liboqs: https://github.com/open-quantum-safe/liboqs NIST Post-Quantum Cryptography Submissions: https://csrc.nist.gov/Projects/post-quantum-cryptography/post-quantum-cryptography-standardization/round-3-submissions Timestamps Intro 0:06 Meta Open Source 101 1:10 Intros 1:49 Sheran Intro 2:31 Rafael Intro 3:37 Then Quantum Apocalypse 5:24 Why symmetric and asymmetric algos behave differently 8:10 Why invest in tomorrow's problems? 9:21 First deployment target 14:17 Choosing an algorithm 18:06 Choosing the right parameters 19:51 Performance costs and wins 21:28 Stack 23:33 Challenges 25:26 What's next for PQC? 30:38 Working with NIST 32:59 Outro 34:30 Outtakes 35:43
After sitting in one too many Zoom meetings looking at flat images of 3D models, mechanical engineers Ed, Jason, Fan, and Raghavan decided that they could do better, taught themselves how to code and started to build Caddy - a CAD app for mixed reality. Tune in to episode 64 to hear their story. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Caddy video: https://heycaddy.net/ Caddy on the Quest Store: https://www.meta.com/en-gb/experiences/24212682218375897/ @Scale conference on YouTube: https://www.youtube.com/channel/UCd9I8ZkgoR1d7GeSj_wi_LQ MLow @Scale talk: https://www.youtube.com/watch?v=3ypsZUNRjI4 MLow blog post: https://engineering.fb.com/2024/06/13/web/mlow-metas-low-bitrate-audio-codec/ Faster Incident Response with GenAI @Scale talk: https://www.youtube.com/watch?v=rpe7eAR90Ko Llama 3: https://llama.meta.com/llama3/ Meta Unity SDKs: https://developer.oculus.com/documentation/unity/ Prisms VR: https://www.prismsvr.com/ Timestamps Intro 0:06 Ed Intro 2:12 Raghavan Intro 3:15 Fan Intro 3:44 Jason Intro 4:16 What is Caddy? 4:49 Why build Caddy? 6:52 Discovery of hand-based interactions 11:46 Supported import formats 14:09 Learning to code 18:09 Time to Caddy MVP 27:48 Off-the-shelf components 29:04 Outgrowing the initial vision 32:48 AI in Caddy 43:25 Challenges building Caddy 52:38 What's next? 55:40 How to get in touch? 56:56 Excitement in MR 57:38 Outro 1:03:35
Aida was part of one of the first Rust teams here at Meta. One of the biggest challenges was interacting with the large amount of existing C++. With the release of cxx, safe interop between C++ and even async Rust has become a lot easier. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Aida's talk at Rust Nation: https://youtu.be/tsEuA9S5q9Q cxx: https://crates.io/crates/cxx Sapling: https://sapling-scm.com/ Timestamps Intro 0:06 Aida Intro 2:06 Rust in Meta Source Control 2:50 State of Rust at Meta 10:11 bindgen 13:25 cxx vs bindgen 17:49 async Rust and C++ 19:04 Dealing with Lifetimes 28:19 Fixing Memory Leaks 31:25 Thread safety with Send and Sync 33:48 A Magic Wand for Async Rust 39:52 Outro 43:04 Outtakes 43:50
The basic version of Threads for web was built in just under three months by two engineers, mirroring the nimble engineering practices we talked about on this podcast before when it came to launching Threads for Android and iOS. In this episode, Pascal is joined by Ally and Kevin, two engineers on the Threads Web team. They talk about how shared infrastructure with other Meta web properties allows them to move fast and how they manage to balance the need to ship new features with the desire to craft delightful experiences for their users. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Threads: https://threads.net StyleX: https://stylexjs.com/ FlowJS: https://flow.org/ Introducing Meta Llama 3: https://ai.meta.com/blog/meta-llama-3/ Building custom silicon for the future of AI: https://www.metacareers.com/life/building-custom-silicon-for-the-future-of-ai Building Meta's GenAI Infrastructure: https://engineering.fb.com/2024/03/12/data-center-engineering/building-metas-genai-infrastructure/ Timestamps Intro 0:06 Intro Ally and Kevin 1:44 Why focus on Web? 2:48 Kevin's contributions 4:42 Focus on craft 6:18 Editing Threads 7:34 Ally's contributions 10:40 Prioritising delight and shipping features 12:02 Launching Threads Web 13:30 Shared Infra 16:13 Tech Stack 19:15 The DevX of Meta www 23:51 Challenges 30:57 Favourite bit of polish 34:32 Outtakes 39:18
Every day, trillions of image download requests are made from Meta's family of apps. Zuzanna works on the Media Platform Team that owns the entire flow from serving images from the CDN to displaying the pixels on your phone. One of the project she and her team recently worked on was rolling out HDR images to Instagram and Threads and in this episode's interview, Zuzanna tells show host Pascal how they partnered with large phone manufacturers to develop and roll out the new feature. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Fresco: https://frescolib.org/ Timestamps Intro 0:06 Intro Zuza 1:44 Image Infra Team 3:23 The scale of images at Meta 5:10 Measuring quality 10:01 HDR photos 12:13 HDR file formats 19:02 HDR photo availability today 22:34 Partnering with phone vendors 30:40 Why photos after videos? 32:27 Outro 36:22
Distributing binaries and toolchains to developers is a pain but DotSlash makes it a breeze. Instead of committing large, platform-specific executables to your repository, DotSlash combines a fast Rust program with a JSON manifest prefixed with a #! to transparently fetch and execute the binary you need. Tune in to our interview with Andres and Michael to learn more. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Simple Precision Time Protocol at Meta: https://engineering.fb.com/2024/02/07/production-engineering/simple-precision-time-protocol-sptp-meta/ Meta Time libraries on GitHub: https://github.com/facebook/time DotSlash - Simplified executable deployment: https://engineering.fb.com/2024/02/06/developer-tools/dotslash-simplified-executable-deployment/ DotSlash website: https://dotslash-cli.com/ DotSlash on GitHub: https://github.com/facebook/dotslash Timestamps Intro 0:05 Intro Andres 2:30 Intro Michael 3:39 Andres's Projects at Meta 3:54 Michael's Projects at Meta 5:00 What is DotSlash? 5:30 DotSlash vs LFS 6:04 DotSlash vs buck2 run 7:08 Where is DotSlash used at Meta? 8:45 How does DotSlash work? 9:37 DotSlash on Windows 13:15 How DotSlash is built 16:21 Bundling the rust toolchain 17:14 Automated DotSlash file generation 20:33 DotSlash and remote execution 24:53 Storage providers 26:27 Why open-source? 30:05 Limitations 34:17 Cache Eviction 36:59 Outro 39:22 Bloopers 40:15
For the second time in just a few months, we are talking Python on the Meta Tech Podcast. Python 3.12 features a whole range of new features, many of which were contributed by Meta. Carl and Itamar join Pascal to talk about their contributions to the latest release, including new hooks that allow for custom JITs like Cinder, Immortal Objects, improvements to the type system, faster comprehensions and much more. In their discussion, they talk not just about how and why those features were built but also the process of upstreaming and engaging with the community. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links “Lazy is the new fast: How Lazy Imports and Cinder accelerate machine learning at Meta” - https://engineering.fb.com/2024/01/18/developer-tools/lazy-imports-cinder-machine-learning-meta/ “How Meta built the infrastructure for Threads” - https://engineering.fb.com/2023/12/19/core-infra/how-meta-built-the-infrastructure-for-threads/ Cinder on GitHub - https://github.com/facebookincubator/cinder “Meta contributes new features to Python 3.12” - https://engineering.fb.com/2023/10/05/developer-tools/python-312-meta-new-features/ Timestamps Intro 0:06 Carl Intro 2:09 Itamar Intro 3:27 Teams and Missions 5:10 Python 3 Faster Coroutines 8:57 Code Watchers and JIT Hooks 12:10 When to upstream 13:53 How to upstream to CPython 16:19 History of Cinder 21:35 Why not upstream Cinder? 25:48 Cinder hooks in CPython 29:34 Free Threading 34:10 Outro 37:08
For this last episode of 2024, Pascal talks with Devi, an AI research director at Meta. They talk about the history of AI at Meta, some of the basic terms, how Meta's approach to developing and using AI differs notably from other companies and what the future has in store. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Meta AI Blog: https://ai.meta.com/ Purple Llama: https://ai.meta.com/blog/purple-llama-open-trust-safety-generative-ai/ AI Alliance: https://ai.meta.com/blog/ai-alliance/ Audiobox: https://ai.meta.com/blog/audiobox-generating-audio-voice-natural-language-prompts/ Emu Video and Emu Edit: https://ai.meta.com/blog/emu-text-to-video-generation-image-editing-research/ Meta AI Agents: https://about.fb.com/news/2023/09/introducing-ai-powered-assistants-characters-and-creative-tools/ Timestamps Intro 0:00 Introduction Devi 2:27 AI vs ML 4:00 History of AI at Meta 6:03 Deep learning and LLMs 9:32 LLMs vs GenAI 11:42 Multi-modal models 12:21 Meta's AI agents 14:33 Meta's open approach to AI 16:53 Image and video generation and editing 22:28 Most exciting future AI developments 27:17 Outro 28:57
We're jumping into our time machine and going back to 2018 for an interview with Will B. about the various twists and turns that led to the creation of Instagram Stories. We will be back with a fresh interview next month. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Rebound: https://github.com/facebookarchive/rebound Origami Studio: https://origami.design/ Timestamps Intro 0:06 Will Bailey 1:14 Early FB iOS app 7:16 Release Trains 11:52 The End of HTML5 13:29 Migration to Native 16:05 Facebook Home 17:02 Design Collaboration 22:03 Instagram 26:33 Slingshot 27:57 Instagram for Android 29:54 Instagram Stories 35:37 Rebound 41:25 Outro 44:41
Python at Meta is huge. Not only does it famously power Instagram's backend, but it underpins our configuration systems, much of our AI work and many services. Amethyst joins Pascal for this episode of the Meta Tech Podcast to talk about how the Python Foundation Team works to improve the developer experience of everyone working with Python at Meta and Fixit 2, the freshly open-sourced linter framework built on top of libcst. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Fixit 2 announcement post: https://engineering.fb.com/2023/08/07/developer-tools/fixit-2-linter-meta/ Fixit: https://fixit.readthedocs.io µfmt: https://ufmt.omnilib.dev µsort: https://usort.readthedocs.io LibCST: https://libcst.readthedocs.io 5 Things You Didn't Know About Buck2: https://engineering.fb.com/2023/10/23/developer-tools/5-things-you-didnt-know-about-buck2/ Scheduling Jupyter Notebooks at Meta: https://engineering.fb.com/2023/08/29/security/scheduling-jupyter-notebooks-meta/ Timestamps Intro 0:06 Intro Amethyst 1:57 Production vs Software Engineering 3:41 PE for language teams 5:40 Python at Meta 6:58 Python3 migration 10:15 Projects on the Python Foundation Team 16:30 libcst and codemods 21:55 What Python looks like at Meta 25:53 Meta's involvement in the Python community 30:30 The importance of lints at Meta 35:13 Why another linter? 39:11 Favourite lint 46:26 Outro 48:17 Bloopers 48:54
Threads went from idea to 100M users in just about five months. This would not have been possible without building on top of Meta's existing systems and infrastructure. Join Pascal as he speaks with Joy, Cameron and Richard, three engineers from the Threads team who worked on backend, iOS and Android, respectively to learn about the challenges they faced along the way. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Threads: https://threads.net Threads: The inside story of Meta's newest social app - https://engineering.fb.com/2023/09/07/culture/threads-inside-story-metas-newest-social-app/ Litho: https://fblitho.com/ Timestamps Intro 0:00 Introductions 0:56 Intro: Cameron 1:42 Intro: Joy 2:06 Intro: Richard 2:30 Early Days at Threads 3:03 Specialisations 6:52 Why built on top of IG? 7:18 iOS and Android approaches 10:17 UI Frameworks 12:00 Code sharing on server 15:36 What broke? 20:04 How has the team changed? 23:02 Favourite moments 25:30 Outro 29:45 Outtakes 31:03
For episode 55, Pascal speaks with Katherine and returning guest Dustin, two software engineers at Meta about how to ship code at Meta. Why do we have a monorepo? Why and how do we do pre-commit code review? What does our CI infrastructure look like? Get the answers to these questions and many more in this episode of the Meta Tech Podcast. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links The evolution of Facebook's iOS app architecture - Engineering At Meta: https://engineering.fb.com/2023/02/06/ios/facebook-ios-app-architecture/ Episode 47: Source control at Meta - https://pca.st/episode/429e9f38-6537-43e3-b929-fbeeda326ed5 Timestamps Intro 0:06 Intro Katherine 1:55 Dustin's Origin Story 4:38 Topic Intro 6:28 Why Monorepo(s) 7:18 What Makes Monorepos Hard? 12:15 Why do we Have so Many Files? 17:31 Who Owns Stuff? 25:29 Life of a Diff 28:58 Writing Bots Writing Code Writing Bots 34:16 Finding Reviewers 38:46 Why Are Things Not Constantly on Fire? 41:43 Outro 47:47 Outtakes 48:46
In April, WhatsApp announced the launch of a new cryptographic security feature to automatically verify a secured connection based on key transparency. Key transparency helps strengthen the guarantee that end-to-end encryption provides to private, personal messaging applications in a transparent manner available to all. Rolling out a feature like this to WhatsApp's user base is not a small feat and requires some clever engineering to scale to the billions of users relying on WhatsApp to stay in touch with friends, family and business. Pascal is joined by Sean and Kevin to discuss what Key Transparency means in practice and the various challenges they encountered as they scaled it up to billions of users. Got feedback? Send it to us on Threads (https://threads.net/@metatechpod), Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy, https://mastodon.social/@passy, and https://threads.net/@passy_). Fancy working with us? Check out https://www.metacareers.com/. Links Infer: https://fbinfer.com/ Infer on GitHub: https://github.com/facebook/infer MTP Episode 18 about Infer: https://pca.st/5U9V Deploying key transparency at WhatsApp - Engineering at Meta: https://engineering.fb.com/2023/04/13/security/whatsapp-key-transparency/ GitHub - facebook/akd: An implementation of an auditable key directory: https://github.com/facebook/akd/ Parakeet: Practical Key Transparency for End-to-End Encrypted Messaging: https://www.ndss-symposium.org/ndss-paper/parakeet-practical-key-transparency-for-end-to-end-encrypted-messaging/ SEEMless: Secure End-to-End Encrypted Messaging with less trust: https://eprint.iacr.org/2018/607 Coniks: Bringing Key Transparency to End Users: https://www.usenix.org/conference/usenixsecurity15/technical-sessions/presentation/melara IETF Working Group on Key Transparency: https://datatracker.ietf.org/wg/keytrans/about Timestamps Intro 0:06 News Update: Infer turns 10 1:34 Interview Intro 4:27 Intro Kevin 4:45 Intro Sean 6:07 WhatsApp's mission 6:47 PETs 7:58 E2E basics 8:59 Key transparency 10:32 Crypto community response 18:20 End-user changes 19:57 Technical challenges and zero-knowledge proofs 23:18 AKD 28:27 Internal deployment 32:02 Outro 42:16 Bloopers 43:05
Red Team X is a security team at Meta that is responsible for finding and exploiting vulnerabilities in third-party products that could impact Meta's own security. The team acts as a hybrid between a traditional red team, which focuses on probing their own organisation's systems and products for vulnerabilities, and an elite bug-hunting group. The team was founded by Vlad I. in 2020 when the pandemic and the sudden shift to Work From Home challenged various previously-held assumptions about security. In his discussion with Pascal, Vlad explains the roles of different security teams within Meta, how they go about prioritising the highest-impact targets to exploit and how they work with vendors to ensure not just Meta but the entire world benefits from the fixes produced. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy and https://mastodon.social/@passy). Fancy working with us? Check out https://www.metacareers.com/. Links: The Diff episode about Velox: https://thediffpodcast.com/docs/episode-17 Risky Business Podcast: https://risky.biz/ RTX Blog: https://rtx.meta.security RTX Disclosures: https://rtx.meta.security/bugs RTX in WIRED: https://www.wired.com/story/facebook-red-team-x-vulnerabilities/ Timestamps: Intro 0:06 Vlad Intro 1:55 Red Teaming 2:43 Staying up-to-date 6:34 Different team colours 10:02 Defence-in-depth 12:44 Red Team X 15:57 Hardware v Software 19:43 Focus areas 21:29 Prioritising requests 22:44 Notable RTX Disclosures 26:05 Vulnerability disclosure policy 28:52 Getting into offensive security 38:48 Outro 40:51
PyTorch is now one of the most popular machine learning frameworks out there but that was not a foregone conclusion when it was released in 2016. Our host Pascal is joined by Suraj, a developer advocate here at Meta, to dissect the history of PyTorch and look at the factors that contributed to its success. That includes understanding your target audience, maintaining backwards compatibility, fostering a helpful community and so much more. You don't need to be an expert in PyTorch to enjoy the discussion as Suraj explains all the basics. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy and https://mastodon.social/@passy). Fancy working with us? Check out https://www.metacareers.com/. Links: Meta Open Source Blog: Creating Safe Spaces for Underrepresented Individuals in Open Source Communities - https://developers.facebook.com/blog/post/2023/05/31/creating-safe-spaces/ PyTorch Developer Podcast - https://pytorch-dev-podcast.simplecast.com/ PyTorch - https://pytorch.org/ PyTorch on GitHub - https://github.com/pytorch/pytorch Announcing the PyTorch Foundation: A new era for the cutting-edge AI framework - https://ai.facebook.com/blog/pytorch-foundation/ Timestamps: Intro 0:05 Suraj Intro 1:52 What is PyTorch? 4:39 History of PyTorch 5:33 Choosing a Target Audience 7:27 Python and Performance 11:20 Design Decisions 19:04 OSS Governance and Community 21:11 PyTorch 2.0 25:47 How to get started 28:32 Outro 30:14 Bloopers 32:16
For episode 51, Pascal speaks with Neil and Marie, two of the engineers behind Buck2, our open source, large scale build system. Thousands of developers at Meta are already using Buck2 and performing millions of builds per day that on average complete in half the time of Buck1 builds. Marie and Neil discuss the design choices that make Buck2 so much faster and the various challenges they faced in engineering and open sourcing the build system. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy and https://mastodon.social/@passy). Fancy working with us? Check out https://www.metacareers.com/. Links Announcement blog post: https://engineering.fb.com/2023/04/06/open-source/buck2-open-source-large-scale-build-system/ Buck2: https://buck2.build/ Buck2 on GitHub: https://github.com/facebook/buck2 Build Systems à la Carte - https://www.microsoft.com/en-us/research/uploads/prod/2018/03/build-systems.pdf Lexical YouTube clip: https://www.youtube.com/watch?v=Vpv0BYhhlak Lexical for iOS: https://github.com/facebook/lexical-ios Timestamps Intro 0:06 Intro Marie 1:30 Intro Neil 2:57 Why a custom build tool? 4:21 Rewriting Buck 6:49 Buck2 vs Bazel 8:49 Building language support 12:06 Buck2 as a developer 13:15 Upgrade from Buck1 to Buck2 15:05 How is Buck2 faster? 16:31 Rust and Profiling 18:44 From Python to Starlark 25:54 Open-Sourcing 28:18 Outro 32:15
If you hear privacy and your first thought is laborious processes and access management, this interview may be just as mind-expanding for you as it was for our host Pascal. He is joined by Alex and Haozhi who talk about the Anonymous Credential Service (ACS), a highly available multitenant service that allows clients to authenticate in a de-identified manner. They discuss the cryptographic primitives powering the service and the various challenges they encountered scaling it to support Meta's products. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy and https://mastodon.social/@passy). Fancy working with us? Check out https://www.metacareers.com/. Links How Meta enables de-identified authentication at scale - https://engineering.fb.com/2022/03/30/security/de-identified-authentication-at-scale/ Open-sourcing Anonymous Credential Service - https://engineering.fb.com/2022/12/12/security/anonymous-credential-service-acs-open-source/ ACS on GitHub - https://github.com/facebookresearch/acs ReactJS - The Documentary - https://www.youtube.com/watch?v=8pDqJVdNa44 Timestamps Intro 0:12 Alex and Haozhi Intro 1:22 Cryptography and Privacy 2:47 Team Mission 3:35 Data Minimisation 4:28 PETs 5:13 Why authenticate? 8:39 ACS under the hood 10:06 ACS Architecture 16:02 Challenges 21:03 ACS in Open Source 26:36 Key-Derivation Functions 29:22 How to get started 32:10 Outro 33:47 Bloopers 34:29
Lisa works on the Dev Craft team at Instagram that embarked on a journey to bring Kotlin to the Instagram for Android code base a little over three years ago. Now, nearly half of the large codebase is migrated and over 80% of newly committed code is in Kotlin. Tune in to hear what the unique challenges of bringing a new language to an existing app are and what it means for build speed, IDE experiences and developer happiness. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy and https://mastodon.social/@passy). Fancy working with us? Check out https://www.metacareers.com/. Links Meta Engineering Blog: How Meta brought AV1 to Reels - https://engineering.fb.com/2023/02/21/video-engineering/av1-codec-facebook-instagram-reels/ Source-only ABIs for Java - https://engineering.fb.com/2017/11/09/android/rethinking-android-app-compilation-with-buck/ Timestamps Intro 0:06 Intro Lisa 1:27 Dev Craft at Instagram 3:03 Building DevX Partnerships 3:56 The History of Kotlin at Instagram 6:22 Declarative UI 18:29 Build Speed Challenges 20:25 Source-Only ABIs 23:19 IDE Performance 26:19 Kotlin at IG in 2023 27:15 Outro 32:02 Bloopers 33:07
Ryan and his team found a quick way of reducing the compute resources spent on encoding videos for Instagram by 94%, but that was actually the easy part. Tune in to learn what the fix was and how you roll out changes that can affect the user experience of billions of users. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy and https://mastodon.social/@passy). Fancy working with us? Check out https://www.metacareers.com/. Links: Reducing Instagram's basic video compute time by 94 percent - Meta Engineering Blog: https://engineering.fb.com/2022/11/04/video-engineering/instagram-video-processing-encoding-reduction/ The Diff: https://thediffpodcast.com/ Unix Signals in Production - Dangers and Pitfalls: https://developers.facebook.com/blog/post/2022/09/27/signals-in-prod-dangers-and-pitfalls/ Introducing Velox: An open source unified execution engine - https://engineering.fb.com/2022/08/31/open-source/velox/ Timestamps: Intro 0:06 Intro Ryan 1:40 Transcoding Video at Instagram 2:52 Codecs and Tradeoffs 5:33 Client Support 7:13 Where did the compute go? 9:15 ABR 10:59 Progressive/Non-ABR Encodings 12:31 Saving Encoding Time 13:10 Testing the Changes 17:39 Results 26:43 Popularity Predictions 28:32 Outro 36:31
Confused by the syntax of git's rebase command? Overwhelmed with branch management? Check out Meta's new git-compatible source control management system Sapling. Durham and Michael, two of the architects behind the recent open-source release, join Pascal on the podcast to discuss their plans for the project, how it was possible to extract one small part of Meta's large SCM codebase and what the differences between Sapling, git and Mercurial are. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy and https://mastodon.social/@passy). Fancy working with us? Check out https://www.metacareers.com/. Links: Sapling: https://sapling-scm.com/ Review Stack: https://reviewstack.dev/ Timestamps: Intro 0:06 Durham and Michael Intro 1:18 What is Sapling? 2:56 git Compatibility 3:48 What's Available Today? 5:28 Sapling vs git 7:28 Branching Models 10:20 Stacks 13:09 Stacks and GitHub 17:28 Scaling Sapling 22:25 Extracting Sapling for Open Source 29:32 What's Next for Sapling 34:22 Outro 39:07 Bloopers 40:00
It's the most wonderful time of the year: The time to talk about calling libraries that power most of our audio and video calls across Meta's app. Alice, Ishan and Hani join Pascal to talk about how they replaced the different calling solutions with a library that's extensible by the teams that choose to adopt it. But with great power comes great responsibility, so how does their team balance the desire for new features with the mandate to stay small, fast and reliable? Tune in for episode 46 to learn this and more! Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy and https://mastodon.social/passy). Fancy working with us? Check out https://www.metacareers.com/. Links: Rsys: A smaller, faster video calling library for our apps: https://engineering.fb.com/2020/12/21/video-engineering/rsys/ Flipper: https://fbflipper.com/ Horizon Workrooms: https://www.meta.com/de/en/work/workrooms/ Timestamps: Intro 0:06 Team Overview 1:34 RSYS History 4:42 Design Tradeoffs 6:10 Testing Infrastructure 8:09 Usage and Support Model 11:04 Core Architectural Components 12:58 Changing Engines Mid-Air 16:48 Measuring Quality 19:30 Building on top of RSYS 21:34 Collaboration Model 24:22 Feature Development 26:41 Experimentation 28:43 Metaverse Strategy 29:51 What's Next for RSYS 33:26 Outro 34:36 Bloopers 35:24
Back from a short hiatus, Pascal is joined by Jon to talk about the infrastructure that allows commit to sync between Meta's monorepo and GitHub. While ShipIt has been around for a while, allowing commits from the internal repository to sync out to GitHub, Diff Train is its younger brother to allow the inverse. This makes it possible for open-source-first projects like PyTorch to develop on GitHub and bring changes back into the monorepo without sacrificing security and reliability. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out https://www.metacareers.com/. Links: https://github.com/facebook/pyre-check https://github.com/facebookincubator/cinder https://github.com/facebook/hhvm https://github.com/facebook/fbshipit Timestamps: Intro 0:06 Intro Jon 1:49 Open-sourcing an internal project 7:26 Open Source Team @ Meta 10:22 Third-party dependencies 12:07 ShipIt 13:48 Diff Train 29:01 Most excited about 41:07 The GIL 42:29 Outro 44:22
Ever wondered how the culture of big companies like Meta, Microsoft and Amazon differ? Jay comes with a fairly unique perspective as he has now worked at all three of them. In his discussion with Pascal, he shares his views on the trade-offs that a company value like “Move Fast” brings along and how companies assign different weights to the value of making mistakes. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out https://www.metacareers.com/. Links: Power On: The Story of Xbox: https://www.youtube.com/watch?v=AJYsA1jXf60 Timestamps: Intro 0:06 Jay Introduction 1:18 Business Engineering at Meta 2:43 Social Impact 5:35 Culture Shocks 8:24 The Value of Mistakes 14:15 Finding your Pace 16:14 Modes of Working in Different Teams 19:32 Expectations vs Reality 23:36 Workflows 30:02 Incidents 37:26 Internal Mobility 42:24 Outro 45:30 Bloopers 46:10
msys is the technology that underpins most of the messaging products Meta offers. What started as a small library in C wrapping sqlite is now used by many teams across the company and is now trying to address the developer experiences challenges that arise from the initial focus on speed and size above all else. Tune in to Pascal's interview to learn how Akshay and Chris are tackling this and other thorny issues. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out https://www.metacareers.com/. Links: Meta Tech Podcast Episode 37: Faster and Smaller Messenger for With Amy Meta Tech Podcast Episode 39: White Labeling Messenger for iOS with Amy Project LightSpeed: Rewriting the Messenger codebase for a faster, smaller, and simpler messaging app Timestamps: Intro 0:06 Introduction Chris 1:33 Introduction Akshay 2:54 msys overview 3:37 Products adopting msys 7:16 Building features with msys 13:06 Migrations 20:28 Optimising DevX 26:38 Web Client 33:30 What's Next for msys 34:40 Outro 36:50 Outtakes 37:45
Cami returns to the Meta Tech Podcast, with now having 18 months of AR/VR experience under her belt. Cami is excited to share what developers can now do on the Quest platform. In this episode, Pascal and Cami discuss new SDKs for motion controls, voice and spatial objects; and for creators without programming experience - there's Horizon Worlds. Cami, as a Developer Advocate, shares her expertise whilst being acutely aware of areas that require careful consideration. To find out more from Cami and the exciting updates on Quest, tune into episode 43 of the Meta Tech Podcast. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out https://www.metacareers.com/. Links: Display prototypes on Zuck's Facebook: https://www.facebook.com/4/videos/355247026677540/ Boz to the Future on Display Tech: https://www.facebook.com/1681/videos/390455039578133/ Presence Platform Announcement: https://developer.oculus.com/blog/introducing-presence-platform-unleashing-mixed-reality-and-natural-interaction-for-oculus-developers/?locale=en_GB Presence Platform Developer Portal: https://developer.oculus.com/presence-platform/ Cami on Twitter: https://twitter.com/cwillycs Keep talking and nobody explodes: https://www.oculus.com/experiences/quest/2010043642376517/?locale=en_GB wit.ai: https://wit.ai/ Timestamps: Intro 0:06 Cami: Reintro 2:01 Horizon Worlds 3:22 Presence Platform SDK 7:59 Voice SDK 12:57 Insights SDK 17:34 Next-Gen Displays 24:14 Keep Talking and Nobody Explodes 28:20 Building for Horizon 31:37 ELI5 on YouTube 36:59 Meta Connect 42:51 Outro 44:14
The approach we take to building the Facebook app is based around three adjectives: trustworthy, people-centric and unified. In this episode, Pascal talks with Maria who is a director of engineering for product architecture and product excellence. They discuss what it means for a culture that is known for being driven by metrics to become more people-centric. What are examples of metrics that are aligned with people goals and when do they fail to capture them? Tune in to hear the answers to these questions and much more. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out https://www.metacareers.com/. Links: Rachel Nabors on The Diff: https://thediffpodcast.com/docs/episode-12 Meet the Developers: Mobile Edition (Pritesh Nandgaonkar): https://developers.facebook.com/blog/post/2022/05/23/meet-the-developers-pritesh-nandgaonkar/ Meta Open Source on YouTube: https://www.youtube.com/c/FacebookOpenSource Meta Tech Podcast Episode 29: Design Systems with Sriram: https://pca.st/u8r4u6h6 Meta Tech Podcast Episode 9: Android Bytecode Optimisation with Emma https://pca.st/J3cn Timestamps: Intro 0:06 The Diff: Episode 12 1:23 Meet The Developer: Prish 1:38 Meta Open Source on YouTube 2:01 Intro 2:26 Intro Maria 2:36 Craft in FB App 5:15 Metrics vs People? 6:40 Unquantifiable Quality Goals 10:14 Dropping Facial Recognition 11:38 Dynamic Goals in a Dynamic World 13:21 Driving Cultural Change 15:49 Average vs Power Users 18:53 Metrics for Quality 22:33 Dev Tools' Role for Quality 29:12 Supporting People at Meta 33:38 Most Exciting Upcoming Change 39:25 Outro 40:43 Bloopers 42:00
For our second special for Earth Week, we are talking to Bilge who works as a research scientist at Meta AI. Her open-source project Carbon Explorer evaluates solutions to make data centres operate on 24/7 renewable energy. Why this is easier said than done and how engineers can help within their day-to-day work to reduce their carbon footprint are among the many things Pascal and Bilge discuss in this episode. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out https://www.metacareers.com/. Links: Carbon Explorer: https://github.com/facebookresearch/CarbonExplorer Holistic Approach for Designing Carbon Aware Datacenters: https://arxiv.org/abs/2201.10036 Open Catalyst: https://opencatalystproject.org/ Open Catalyst SchrepTech Interview: https://ai.facebook.com/blog/how-ai-is-helping-address-the-climate-crisis/ Timestamps: Intro 0:05 Intro Bilge 2:18 Optimising for the Environment 4:01 Carbon Explorer 5:02 Mitigations for Renewable Intermittency 7:17 Operational and Embodied Footprints 10:57 Motivations for Carbon Explorer 13:06 Battery Storage 14:36 Renewable Curtailment 15:52 Empowering Engineers 18:20 Carbon Intensity APIs 19:22 AI Carbon Intensity Forecasts 22:07 Carbon Metrics 23:17 Where to Learn More 25:38 Outro 27:32 Bloopers 29:45
The most recent IPCC report has reiterated that the climate crisis is an all hands on deck situation. We all need to think about the impact our actions have on the planet that provides our life support system. Ramya is a TPM on the Meta AI team and analyses the impact AI has, as it grows superlinearly, on energy use and carbon emissions. Her recent work on Green AI identifies ways for reducing that footprint without limiting the options engineers have for building great products for connecting people. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out https://www.metacareers.com/. Acronyms: LCA: Life Cycle Assessment PUE: Power Usage Efficiency Links: Sustainable AI: Environmental Implications, Challenges and Opportunities: https://arxiv.org/abs/2111.00364 Make an Impact for Earth Day: https://about.fb.com/news/2022/04/make-an-impact-for-earth-day/ Green AI SchrepTech: https://ai.facebook.com/blog/how-ai-is-helping-address-the-climate-crisis/ Timestamps: Intro 0:05 Intro Ramya 2:13 The Cost of AI 3:05 Measuring AI's Carbon Footprint 11:00 Trade Offs 13:28 Calculating the Carbon Intensity 16:01 Mitigation Options 18:36 Cultural Changes 25:35 Societal Value 26:13 Running AI on Edge Devices 29:02 What's Next? 32:33 Outro 34:55
When Amy joined the Workplace team nearly seven years ago (back then still under the name Facebook for Work), it became clear that it would require a messaging service. While there were already a few options available, none of them was designed to be plugged into a new app. That's when Amy and her team decided to take on white labeling Messenger for iOS to turn it into what would become Workplace Chat. Amy and Pascal discuss the challenges of taking a huge app that is under constant development and adding your own functionality on top. After many years on Workplace, Amy recently switched teams and now works on Lexical, "an extensible text editor library that does things differently". To find out why you should get excited about the upcoming open source release of the library, tune in! Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out https://www.metacareers.com/. Links: Lexical: https://lexical.dev/ Workplace: https://www.workplace.com/ Timestamps: Intro 0:06 Introducing Amy 1:54 Joining Workplace 3:54 Early Days at Facebook for Work iOS 6:38 Whitelabeling Messenger 8:10 Project Workspeed 10:23 msys 14:39 End-to-End Encryption 17:50 Workplace Chat for Desktop 19:33 Unified Editor 24:27 Lexical 28:01 Text Rendering Models 34:16 Outro 37:02
Kevin has had an unusual career path that led him to an engineering role at Meta. He first joined the company in a sales role before he moved into a more product-focused position. Working closely with engineers, Kevin decides to pursue a career in software development himself. Instead of dropping out of his job to get formal education in the space, he takes online courses and within less than a year smashes the internal interview process. To learn what his thinking behind the change was and which resources were particularly helpful, tune in to episode 38! Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod), Instagram (https://instagram.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out https://www.metacareers.com/. Links: Coursera Datastructures and Algorithms classes: https://www.coursera.org/courses?query=data%20structures%20and%20algorithms Udemy: https://www.udemy.com/ Timestamps: Intro 0:06 Introduction Kevin 1:22 Learning to Code 3:38 Learning Resources 12:50 Deciding When to Stop 16:42 Interview Prep 21:57 The Big Day 24:45 Dealing With Imposter Syndrome 29:53 Interviewing is Broken 38:41 Outro 40:52
New year, new us! Inside Facebook Mobile is now the Meta Tech Podcast but Pascal will continue to bring you stories about mobile development and many other topics. For this episode's interview, we're tackling one of the few remaining big apps we never had a guest from: Messenger. Amy worked on Messenger for 3 years before recently moving on to Reality Apps to work on AR. Amy discusses with Pascal how Messenger for iOS was rewritten as part of Project Lightspeed to make it smaller and faster. They used a range of low-level hacks while providing high-level abstractions that product teams could safely and productively build on top of. Amy was also the first one to prototype with Catalyst and Meta and has some important tips for you on how not to accidentally wipe your Mac while doing so. Got feedback? Send it to us on Twitter (https://twitter.com/metatechpod) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out https://facebookcareers.com. Links: Project LightSpeed: https://engineering.fb.com/2020/03/02/data-infrastructure/messenger/ Mac Catalyst: https://developer.apple.com/mac-catalyst/ Buck: https://buck.build/ Remodel: https://github.com/facebook/remodel - Remodel is a tool that helps iOS and OS X developers avoid repetitive code by generating Objective-C models that support coding, value comparison, and immutability. Timestamps: Intro 0:06 Introduction Amy 2:25 Messenger Culture 3:37 Building with Buck 5:38 Catalyst 6:27 Project Lightspeed 17:13 Remodel 23:55 Image Asset Optimisations 28:50 Theming 36:44 What's Next for Amy? 38:21 Outro 39:21 Bloopers 39:54
Keeping engineers effective is not a small task when you work at Meta's scale. Many of the tools you take for granted simply break or become unbearably slow. Chandrika's team looks after developer experience at Meta and takes a holistic approach that spans the editing experience (IDEs, editors), builds, continuous integration and even custom calendar tooling. Her team ensures that as new platforms, for instance AR/VR, and languages like Swift and Kotlin emerge, our infrastructure is ready. Got feedback? Send it to us on Twitter (https://twitter.com/insidefbmobile), Instagram (https://instagram.com/insidefbmobile) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out https://facebookcareers.com. Links: The Diff Podcast: https://thediffpodcast.com/docs/episode-10/ Meta Connect Keynote: https://fb.watch/9YydoWHMEE/ Jest: https://jestjs.io/ Timestamps: Intro 0:06 News: The Diff is back 1:25 Chandrika before Meta 1:50 Meta vs other Megacorps 9:57 DevEx at Meta 12:05 Different Dev Infra Teams 23:18 Unexpected Challenges 26:45 Kotlin & Swift 30:34 Measuring Developer Experience 35:53 App Health & Perf 37:46 Cross-App Dev 40:12 Outro 42:17
Did you know that you can "rage shake" your phone to create a bug report in most Meta apps? If you did, have you ever wondered what happened after you hit submit? In this episode's interview, Pascal talks to Jon about App Health and how his team ensures that despite thousands of engineers shipping code every day, the apps remain reliable and fast. Got feedback? Send us an email to mobilepodcasts@fb.com, tweet us at @insidefbmobile (https://twitter.com/insidefbmobile), DM us on Instagram (https://instagram.com/insidefbmobile) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out https://facebookcareers.com. Links: Flipper Litho Error Boundaries Meet the Rustaceans: Digant Kasundra ELI5: Metro - JavaScript Bundler for React Native IFBM 7: Performance and lnstrumentation with Ariane gCPU Paper: A Real-time Framework for Detecting Efficiency Regressions in a Globally Distributed Codebase Timestamps: Intro 0:06 Jon Intro 1:30 App Health Mission 2:58 Rage Shake & Fly Trap 5:27 Life of a Regression 8:49 Experiments and App Health 13:47 Tracking Down Perf Regressions 16:13 Soft Errors 18:54 Favourite Tools 23:35 Backend Regressions 25:31 Rolling out a Fix 28:00 gCPU 29:45 Wrapping Up 32:12 Outro 33:20 Bloopers 34:04
Cami is a developer advocate for Open Source and Facebook Reality Labs (FRL), our AR/VR organisation. In this episode's interview Cami and our host Pascal discuss how developer advocacy is approached at Facebook, how to build developer empathy, and tackle the eternal question of why it's worth investing in Open Source. If you've ever wanted to dip your toes into VR development, stick around for the end when Cami shares some of her favourite resources. Got feedback? Send it to us on Twitter (https://twitter.com/insidefbmobile), Instagram (https://instagram.com/insidefbmobile) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out https://facebookcareers.com. Links: Hand Tracking Pirates Demo: https://developer.oculus.com/blog/new-oculus-open-source-library-and-pirates-demo-app-qa-with-developer-luca-mefisto-on-hand-tracking-innovation/ Hand Physics Lab: https://www.oculus.com/experiences/app/3392175350802835/ Build Your First VR App with Unity: https://developer.oculus.com/documentation/unity/unity-tutorial/ Unity VR: https://learn.unity.com/course/oculus-vr Cami on Twitter: https://twitter.com/cwillycs?s=09 ValemVR on YouTube: https://www.youtube.com/c/ValemVR Oculus on YouTube: https://www.youtube.com/user/oculusvr Facebook Open Source on YouTube: https://www.youtube.com/c/FacebookOpenSource Traveling While Black: https://www.oculus.com/experiences/go/1994117610669719/ Timestamps: Intro 0:06 Cami Intro 1:21 What is developer advocacy? 4:08 Developer empathy 9:45 Why invest in Open Source? 14:23 End of life for OSS projects 19:57 AR/VR abstractions 22:42 Becoming an expert learner 32:21 VR dev learning resources 37:56 Most underrated FB OSS project 43:06 Outro 46:25
Facebook has a unique recruitment model. Instead of being assigned to one team, you first end up in Bootcamp, where you learn how the company functions and our tools and frameworks work. Then you get to look for teams, work with them and decide which one to join. Because the team selection is decoupled from hiring, switching teams is easy. In this episode, we're talking to Sash who has been taking advantage of internal mobility by switching teams every year almost on the dot. Over the course of his career at Facebook, he has worked on iOS animations, Android hardware and most recently the Wrist-based human-computer interaction interface that is being developed by FRL Labs. Links: Inside Facebook Reality Labs: Wrist-based interaction for the next computing platform: https://tech.fb.com/inside-facebook-reality-labs-wrist-based-interaction-for-the-next-computing-platform/ Boz To The Future: https://www.facebook.com/boztothefuturepod Keyframes Animation Library: https://github.com/facebookarchive/Keyframes IFBM 30: Linting for Design Quality with Elle: https://pca.st/episode/1e22130d-88a5-4ea9-a968-692cac232a78 IFBM 31: Intentional Architecture with Yuan and Dustin: https://pca.st/episode/2199bc68-2287-41b7-aa45-ab52595e1c62 Richie's Plank Experience: https://www.oculus.com/experiences/quest/1642239225880682/ Timestamps: Intro 0:06 Joining FB 1:52 News Feed Delight 4:20 Switch to Hardware 13:25 Hackamonth 19:27 AOSP Engineering 22:07 Hardware Prototyping at FRL 24:50 Developing for VR and Favourite Experiences 30:35 Outro 36:52 Bloopers 37:44
For the third and final episode focusing on UI quality, 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. Learn how all of this grew out of a tool suite originally built for the web and much more in episode 32 of Inside Facebook Mobile. Got feedback? Send it to us on Twitter (https://twitter.com/insidefbmobile), Instagram (https://instagram.com/insidefbmobile) and don't forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out http://fb.com/careers. Links: Podcast: Boz to the Future - https://tech.fb.com/introducing-boz-to-the-future-a-new-podcast-series-from-facebook-reality-labs/ Facebook Open Source on YouTube - https://www.youtube.com/channel/UCCQY962PmHabTjaHv2wJzfQ IFBM 29: Design Systems with Sriram - https://pca.st/u8r4u6h6 IFBM 30: Linting for Design Quality with Elle - https://pca.st/q336vyxe Sapienz: https://engineering.fb.com/2018/05/02/developer-tools/sapienz-intelligent-automated-software-testing-at-scale/ Jest - https://jestjs.io/ Timestamps: Intro 0:05 News: Boz To The Future 0:43 News: FBOSS ELI5 on YouTube 1:26 Interview Teaser 1:50 Interview Greeting 2:48 Sara Intro 3:10 Aaron Intro 4:15 Patrik Intro 4:43 UI Quality Team Mission 5:39 Shift Left Initiative 6:40 History of Quality Linting 8:08 Linting on Mobile 9:29 UIQR 15:17 Designer Diff Review 18:17 E2E Testing with Jest 25:55 Sapienz 27:12 UI Quality Scoring 29:17 Outro 41:16 Blooper 41:57
“What's Facebook's mobile architecture?” is a question we hear often. Instead of top-down MVC, MVW or MVVM, Facebook delegates the responsibility of choosing the right architectural patterns down to the engineers working on products. This episode's guests Yuan and Dustin pick up where Fabio left us in episode 28 and explain how the Product Foundation org builds abstractions that give engineers autonomy when they want and constraints for features to work cross-app when they need it. Links: IFBM 14 - Facebook iOS UI Infrastructure with Adam: https://pca.st/0qu2 IFBM 28: Modularising iOS Apps with Fabio: https://pca.st/episode/be165e38-74f3-449f-889a-eab14316c6ed Codemod: https://github.com/facebookarchive/codemod Fastmod: https://github.com/facebookincubator/fastmod ComponentKit: https://componentkit.org/ Litho: https://fblitho.com/ React Native: https://reactnative.dev/ Timestamps: Intro 0:06 Guest introductions 2:19 App Architecture 6:49 Codemodding 31:18 Shared Architectural Concepts 33:06 Building for Newsfeed 34:59 Scrolling Lists 41:41 Outro 55:43 Bloopers 56:36
We are continuing our focus on UI Quality from last episode and are diving deep into design linters. Elle and her team work on Facebook-internal Figma plugins that provide guidance on aspects like colours 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. Got feedback? Send it to us on Twitter (https://twitter.com/insidefbmobile), Instagram (https://instagram.com/insidefbmobile) and don’t forget to follow our host @passy (https://twitter.com/passy). Fancy working with us? Check out http://fb.com/careers. Links Docusaurus 2.0 Beta - https://docusaurus.io/blog/2021/05/12/announcing-docusaurus-two-beta F8 - https://developers.facebook.com/f8/ Rapid release at massive scale - https://engineering.fb.com/2017/08/31/web/rapid-release-at-massive-scale/ Figma API - https://www.figma.com/developers/api GraphQL - https://graphql.org/ Relay - https://relay.dev/ Timestamps Intro 0:06 News: Docusaurus 2 News: F8 1:59 Elle introduction 2:13 Shift Left Initiative 3:32 UI Layout Linters 6:03 Figma Plugins 14:20 Outro 27:26 Bloopers 28:23
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? The way we always do: by building tools. Sriram from the Design Systems Engineering team talks about how their org solves the design-engineering handoff problems and improves the overall UI quality of Facebook apps. They work on a suite of tools that spans from providing access to our components directly in design tools like Figma to metrics that tell developers about potential quality issues in their surfaces. Tune in to learn directly from Sriram how we attempt to solve design at scale. Links: F8 Refresh: https://www.f8.com/ Flipper: https://fbflipper.com/ Facebook Open Source on YouTube: https://www.youtube.com/c/FacebookOpenSource Storybook: https://storybook.js.org/ InVision Design System Manager: https://www.invisionapp.com/design-system-manager Figma: https://www.figma.com/ Timestamps: Intro 0:06 Interview 2:39 Outro 30:17
Fabio joins Pascal to go deep into a listener question: How does Facebook modularise iOS applications? After discussing the state of the iOS build systems and package managers out in the wild, they turn to Buck, Facebook’s monorepo build system, and how it helps developers to define clear module boundaries. One of the problems when a new module is only one new folder away are dependency graphs which look like a big ball of spaghetti. Thankfully, Buck offers some ways of taming sprawling graphs before they get out of control. Topics: Litho: https://fblitho.com/ Litho RenderCore: https://github.com/facebook/litho/tree/master/litho-rendercore Flipper: https://fbflipper.com/ ComponentKit: https://componentkit.org/ Pragma Conference 2016 - Fabio Milano - 'I have a framework idea' - Repeat less, share more: https://www.youtube.com/watch?v=ml6NSv5wDRU Buck: https://buck.build/ Spiritfarer: https://www.imdb.com/title/tt12924108/ Ori and the Will of the Wisps: https://www.imdb.com/title/tt8329350/
Garima joins Rachel (@rachelnabors) and Pascal (@passy) 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. If you ever wondered what the “useful” and “not useful” buttons on Facebook notifications actually do and how you clicking on them could help not just you, but all people on Facebook have a better experience, listen in! Please do send us feedback! You can reach us via email mobilepodcasts@fb.com, Twitter (@insidefbmobile) or Instagram (insidefbmobile). Timestamps Intro 0:06 Garima early days at FB 1:16 Notification Infrastructure 5:21 Outro 46:12 Bloopers 46:46