惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
W
WeLiveSecurity
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
N
News and Events Feed by Topic
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
Security Affairs
SecWiki News
SecWiki News
T
Tenable Blog
C
CERT Recently Published Vulnerability Notes
Forbes - Security
Forbes - Security
Google Online Security Blog
Google Online Security Blog
C
Cybersecurity and Infrastructure Security Agency CISA
L
LINUX DO - 热门话题
T
Threat Research - Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
PCI Perspectives
PCI Perspectives
Engineering at Meta
Engineering at Meta
博客园 - 聂微东
Cyberwarzone
Cyberwarzone
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
V
Vulnerabilities – Threatpost
宝玉的分享
宝玉的分享
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
V
Visual Studio Blog
T
Threatpost
Project Zero
Project Zero
Know Your Adversary
Know Your Adversary
I
InfoQ
G
Google Developers Blog
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
T
The Blog of Author Tim Ferriss
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
TaoSecurity Blog
TaoSecurity Blog
O
OpenAI News
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tor Project blog
Schneier on Security
Schneier on Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 三生石上(FineUI控件)
D
DataBreaches.Net
Security Latest
Security Latest
Attack and Defense Labs
Attack and Defense Labs
aimingoo的专栏
aimingoo的专栏
H
Heimdal Security Blog

Meta Tech Podcast

Meta Tech Podcast: 87: Everything is Power: Battery Life Engineering for AI Glasses Meta Tech Podcast: 86: A Hard Cell: Engineering Ultra-Narrow Batteries for AI Glasses Meta Tech Podcast: 85: Reel Friends: Building Social Discovery that Scales to Billions Meta Tech Podcast: 84: Trust But Canary: Configuration Safety at Scale Meta Tech Podcast: 83: Patch Me If You Can: AI Codemods for Secure-by-Default Android Apps Meta Tech Podcast: 82: CSS at Scale with StyleX Meta Tech Podcast: 81: From Zero to Polish: Building Meta Ray-Ban Display Meta Tech Podcast: 80: Lowering emissions with the Open Compute Project Meta Tech Podcast: 79: Building Android apps in Meta’s monorepository with Buck2 Meta Tech Podcast: 78: Generating 3D Worlds with AI Meta Tech Podcast: ARCHIVE: What it's like to write code at Meta Meta Tech Podcast: 77: How to build a generic neuromotor interface Meta Tech Podcast: 76: From C to Rust on Mobile Meta Tech Podcast: 75: Open-sourcing Pyrefly - A faster Python type checker written in Rust Meta Tech Podcast: 74: Taking the plunge - The engineering journey of building a Subsea Cable Meta Tech Podcast: 73: Mobile GraphQL at Meta in 2025 Meta Tech Podcast: 72: Multimodal AI for Ray-Ban Meta glasses Meta Tech Podcast: 70: Jetpack Compose at Meta Meta Tech Podcast: 69: To type or not to type — measuring productivity impact with DAT Meta Tech Podcast: 68: How to Build a Mixed Reality Headset Meta Tech Podcast: 67: Measuring Developer Productivity with Diff Authoring Time Meta Tech Podcast: 66: Inside Bento - Serverless Jupyter Notebooks at Meta Meta Tech Podcast: 65: Getting Ready for Post-Quantum Cryptography Meta Tech Podcast: 64: Caddy - Building the next generation of CAD software for Mixed Reality Meta Tech Podcast: 63: The key to a happy Rust/C++ relationship Meta Tech Podcast: 62: Building Threads for Web Meta Tech Podcast: 61: Image Quality Improvements at Scale Meta Tech Podcast: 60: Simplified Executable Deployment with DotSlash Meta Tech Podcast: 59: Meta ❤️ Python 3.12 Meta Tech Podcast: 58: Advancing GenAI at Meta Meta Tech Podcast: ARCHIVE: From Facebook Home to Instagram Stories Meta Tech Podcast: 57: Writing and linting Python at scale Meta Tech Podcast: 56: How Threads was built in 5 months Meta Tech Podcast: 55: What it's like to ship code at Meta Meta Tech Podcast: 54: Building Key Transparency at WhatsApp Meta Tech Podcast: 53: Offensive security at Meta’s Red Team X Meta Tech Podcast: 52: The success story behind PyTorch Meta Tech Podcast: 51: Buck2 - a large-scale build system Meta Tech Podcast: 50: De-identified authentication at scale Meta Tech Podcast: 49: Kotlin DevX at Instagram Meta Tech Podcast: 48: A 94% reduction for basic video compute time on Instagram Meta Tech Podcast: 47: Sapling - A scalable, user-friendly source control system Meta Tech Podcast: 46: Cross-Platform Video Calling with RSYS Meta Tech Podcast: 45: Syncing GitHub to Monorepo with Jon Meta Tech Podcast: BONUS: Comparing Company Cultures with Jay Meta Tech Podcast: 44: Building a Cross-App Messaging Platform Meta Tech Podcast: 43: Building for the metaverse with Cami Meta Tech Podcast: 42: Building People-Centric Apps with Maria Meta Tech Podcast: 41: Earth Week Special - Carbon Explorer with Bilge Meta Tech Podcast: 40: Earth Week Special - Green AI with Ramya Meta Tech Podcast: 39: White Labeling Messenger for iOS with Amy Meta Tech Podcast: 38: From Sales to Tech - How Kevin Made The Switch 37: Faster and Smaller Messenger for iOS With Amy Meta Tech Podcast: 36: Developer Experience with Chandrika Meta Tech Podcast: 35: Facebook App Health with Jon Meta Tech Podcast: 34: Open Source Developer Advocacy with Cami Meta Tech Podcast: 33: Switching Teams at FB with Sash Meta Tech Podcast: 32: Measuring UI Quality with Sara, Aaron and Patrik Meta Tech Podcast: 31: Intentional Architecture with Yuan and Dustin Meta Tech Podcast: 30: Linting for Design Quality with Elle Meta Tech Podcast: 29: Design Systems with Sriram Meta Tech Podcast: 28: Modularising iOS Apps with Fabio Meta Tech Podcast: 27: Using Data for Better Android Notifications with Garima Meta Tech Podcast: 26: Kotlin Redux with Thomas Meta Tech Podcast: 25: Instagram Reels with Kevin and Martin Meta Tech Podcast: 24: COVID-19 Hub with Chang, Jarman and Zaven Meta Tech Podcast: 23: Organising the Women of React Remote Conf Meta Tech Podcast: Update: No Interview Episode for March Meta Tech Podcast: 22: Scaling WhatsApp with Silky Meta Tech Podcast: 21: Kotlin at Facebook with Sergey Meta Tech Podcast: 20: droidcon London 2019, Part II Meta Tech Podcast: 19: droidcon London 2019, Part I Meta Tech Podcast: 18: Outside Facebook Mobile at the London Mobile Forum 2019 Meta Tech Podcast: 17: Hermes JS Engine Development with Marc Meta Tech Podcast: 16: React Native Developer Advocacy and Documentation Engineering with Rachel Meta Tech Podcast: 15: Infer Static Analysis for Mobile Apps with Ezgi Meta Tech Podcast: 14: Facebook iOS UI Infrastructure with Adam Meta Tech Podcast: 13: Android UI Infrastructure with Hilal Meta Tech Podcast: 12: Product Management on Workplace with Chiara Meta Tech Podcast: 11: Secure Networking on Android with Subodh Meta Tech Podcast: 10: FBLite and Fast Android Apps for Emerging Markets with Tal Meta Tech Podcast: 9: Android Bytecode Optimisation with Emma Meta Tech Podcast: 8: Android Perf at Instagram with Mona Meta Tech Podcast: 7: Performance and Instrumentation with Ariane Meta Tech Podcast: 6: The Story of Stories with Lillian Meta Tech Podcast: 5: Engineering Management with Balazs Meta Tech Podcast: 4: Product Design with Alisa and Stef Meta Tech Podcast: 3: Release Management with Julia Meta Tech Podcast: 2.5: Quick take on Sonar with Emil Meta Tech Podcast: 2: Facebook Home and Instagram Stories with Will Meta Tech Podcast: 1: Litho and Sections with Mihaela Meta Tech Podcast: 0: Intro
Meta Tech Podcast: 71: Translating Java to Kotlin at Scale
2025-02-01 · via Meta Tech Podcast

Jan 31, 2025

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

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