Instagram logo

Instagram

Stories from the people who build @Instagram

Try:
Instagram logo
Instagram

Five things I learned about working on content quality at Instagram

Instagram describes five lessons learned while improving content quality on Explore and hashtag surfaces: operationalize quality metrics using a mix of human labels and classifier scores; prefer impression-level read-path models (real-time scoring) while retaining high-precision write-path filters at sourcing; monitor model precision and recall with dashboards daily; avoid raw score thresholds and instead use daily calibration or percentile filtering; and combine approaches across sourcing and ranking to maintain quality.

Instagram logo
Instagram

Instagram Data Saver Mode

The post describes the technical design, experiments, and implementation choices behind Instagram’s Android Data Saver Mode. The team evaluated three main levers: disabling video prefetch, disabling video autoplay, and applying lower-resolution media based on connectivity, and they exposed a user setting for high-resolution media (“Never”, “only on Wi‑Fi”, “both on Wi‑Fi and cellular”). They ran country-specific A/B tests (India, Indonesia, Argentina, Germany, France, Canada, Great Britain) to compare variants and found that disabling video prefetch paired with a Wi‑Fi default for high-resolution media gave the best global balance of reduced cellular data and acceptable user experience. Metrics showed sizable decreases in cellular data usage, increases in some engagement metrics, and expected regressions in video loading times. The feature relied on research, data analysis, engineering implementation on Android, and iterative testing before a global launch.

Instagram logo
Instagram

Powered by AI: Instagram’s Explore recommender system

Technical overview of Instagram Explore's recommender: IGQL (a C++-executed domain-specific query language) for candidate retrieval, account-level embeddings via ig2vec + FAISS nearest-neighbor retrieval, model-distillation for preselection, and a three-stage ranking funnel (distillation → lightweight NN → deep NN) using multi-task models. Emphasis is on ML algorithm design, production infra and tooling for high-velocity experimentation, and performance/scalability optimizations to serve recommendations at massive scale.

Instagram logo
Instagram

10 Questions with Shupin Mao, Well-being tech lead

Employee interview with Shupin Mao, a senior software engineer and Well‑being tech lead at Instagram. She discusses her path into engineering, first languages (C, Objective-C), iOS development, team culture and cross-functional collaboration (privacy, policy, legal), a data-driven approach, and a project that adopted machine learning models to combat illicit sales.

Instagram logo
Instagram

Making instagram.com faster: Code size and execution optimizations (Part 4)

Instagram describes frontend optimizations aimed at reducing pre-compression JavaScript size and execution on instagram.com — using Metro's inline-requires, serving ES2017 bundles to modern browsers while keeping an ES5 legacy build and optional polyfills, removing unnecessary transpilation (Babel), and other tactics — yielding measurable TTI and bundle-size improvements and outlining future work like better code-splitting and Redux modularization.

Instagram logo
Instagram

Python at Scale: Strict Modules

Instagram describes "strict modules", an experimental Python module type (enabled by __strict__ = True) that uses AST parsing, abstract interpretation and AST transformations in a custom module loader to enforce side-effect-free imports, module immutability, and automatic __slots__ on classes. The goal is to eliminate unsafe import-time side effects, reduce startup/reload time, prevent accidental global-state mutation, and enable safer incremental reloads and performance improvements in a large Python monolith.

Instagram logo
Instagram

Making instagram.com faster: Part 3 — cache first

Instagram implemented a cache-first rendering approach on instagram.com by persisting a subset of the Redux store to indexedDB, rehydrating it on load, and introducing a staged state with stagingAction/stagingCommit and a reducer enhancer to record and replay local user interactions onto fresh server data. This rebase-like design avoids losing local interactions and improved display times (2.5% feed, 11% stories) as part of broader web performance work.

Instagram logo
Instagram

Implementing Dark Mode in iOS 13

Instagram's engineering team describes how they implemented iOS 13 dark mode: building thin, backward-compatible UIKit wrappers for dynamic colors/images and semantic palettes, handling equality and compatibility issues, and using an IGTraitCollection-based "fake dark mode" to improve testing coverage while still supporting Xcode 10 and iOS 12.

Instagram logo
Instagram

Interview with Tamar Shapiro, Instagram’s Head of Analytics

An interview/profile of Tamar Shapiro, Instagram’s Head of Analytics. She discusses her background in statistics and engineering, the analytics and experimentation work her team does (including the private like counts test), her leadership and D&I efforts, Instagram's engineering culture, career advice for women in tech, and her approach to work-life balance.

Instagram logo
Instagram

Types for Python HTTP APIs: An Instagram Story

Instagram describes how it uses Python type annotations, dataclasses, and TypedDicts to define explicit contracts for Django HTTP/JSON APIs. They implemented an @api_view decorator that uses functools and inspect to turn strongly-typed functions into Django views, serialize dataclasses with asdict/JsonResponse, and generate OpenAPI specs for docs/tooling; the post compares this approach to RPC frameworks (Thrift/gRPC) and notes migration choices for legacy code.