We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Omer Dunay Autoreload in Production at Meta | JupyterCon 2023
Autoreload in Production at Meta - Streamlining Iteration, Debugging & Testing with Jupyter Notebooks
The Goal of Auto Reload
Develop high-quality autoreload for Jupyter notebooks to streamline iteration, debugging, and testing within meta.
Import Time Overheads
Current solutions cause excessive import time and restarting whole applications to accommodate changes. Python developers struggle to effectively work without needing to restart kernels, requiring rework or testing before publishing code changes.
Approaches and Fixes
- Meta adopted two major solutions: Autoreload (Autoreload1 & Autoreload2) to create robust hotreload functionality while incorporating it as a Jupyter extension, providing interactivity inside notebook files, enabling continuous iterative coding.
Quantifiable Impact
Measurable effects for developers at Meta demonstrated with examples and demos - Auto Reload sped up workflow from minutes to seconds: [dramatic effect illustration] 14engineeringyearly costs -> accelerated iteraction
.
Improving Autofile’s Cache Effect
When Autoreload iterates changes, Module caching ensures updated caches refresh: prevents data loss; speeds debugging iterations with confidence about local module objects’ values
Why Reliability mattered: Fixing Failures, Bugs and Improvings Interoperability
Identify problematic patterns: ‘monky patched objects with caching; fixed; enabling print()
to pinpoint precise failures within notebook-based authoring loop cycles
Reliable Edge and User Story Examples: Velocity Counts and Cycles Count
The most popular way for code hotloading now includes faster iterative authoring within note-based applications at Meta [graph showing code development stages vs iterations] Intra-dev feedback led to robust user-facing enhancements. (further illustrating speed changes before vs. after adopting solutions).