57: Writing and linting Python at scale
Description
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