Announcement that the Instagram Engineering blog is moving to the Engineering at Meta blog to streamline internal blog operations and publish future Instagram Engineering content there. The post points readers to the new location and provides links to Engineering @ Meta social channels.
Instagram engineering blog
A retrospective on lessons learned building systems to improve content quality for unconnected surfaces like Explore and hashtags. It covers measurement and experiment operationalization, the value of read-path (impression-level) vs write-path classifiers, the need for sourcing-level filters, monitoring model performance, and daily calibration/percentile filtering to maintain stable quality.
Description of the design, engineering, and experimentation behind Instagram's Data Saver Mode for Android, which reduces mobile data usage by disabling video prefetch, optionally disabling autoplay, and allowing lower-resolution media. The post outlines testing across countries, the chosen levers and defaults, user impact metrics, and the global rollout decisions.
Overview of the engineering and ML techniques powering Instagram Explore, including a highly efficient 3-part ranking funnel that extracts massive numbers of features and serves real-time recommendations at scale. The post describes custom tools like the IGQL domain-specific language, account-level embeddings (ig2vec) with FAISS retrieval, and engineering optimizations that enable high-velocity experimentation and large-scale personalized ranking.
An interview with Shupin Mao, a senior software engineer who worked on Instagram’s Well-being team. She discusses her path into engineering, favorite projects (including work on combating illicit sales using machine learning), and what makes Instagram’s engineering culture unique.
A technical post describing strategies Instagram used to improve web performance by reducing JavaScript parse/execute cost on clients. Topics covered include inline-requires to defer module execution, serving ES2017 bundles to modern browsers, and measured improvements from these changes.
An exploration of pain points running a large Python monolith (slow startup, unsafe import-time side effects, and mutable global state) and the proposal of "strict modules" to enforce side-effect-free imports via AST analysis and a custom loader. The post outlines how strict modules can make imports safer and improve developer experience at scale.
Describes a cache-first rendering approach for instagram.com that presents a cached copy of the feed immediately and then replaces it with fresh server data. The post explains how they store a subset of the Redux store in indexedDB, stage a separate state, queue user actions, and replay those actions on the fresh data using stagingAction and stagingCommit to avoid race conditions.
Explains Instagram's approach to adopting iOS 13 dark mode by building thin, backwards-compatible wrappers around UIKit APIs (dynamic colors and images) and a semantic color palette. It also covers testing strategies like a fake dark mode via an IGTraitCollection wrapper and additional helper APIs to support older Xcode/iOS versions while transitioning to platform APIs.
An interview with Tamar Shapiro about her path into analytics and engineering, her role leading analytics and data science at Instagram, and her perspectives on engineering culture, mentorship, and work-life balance. She also shares career advice for early-career female engineers and discusses projects and team culture at Instagram.