Feature Flags for Progressive Delivery: Beyond Simple Toggles

Feature flags started as if (ENABLE_NEW_UI) { ... }. They’ve evolved into a deployment strategy that separates code deployment from feature release. Ship your code Tuesday. Release to 1% of users Wednesday. Roll back without deploying Thursday. Here’s how to implement feature flags that scale from simple toggles to sophisticated progressive delivery. The Basic Pattern At its core, a feature flag is a runtime conditional: 1 2 3 4 5 def get_recommendations(user_id: str) -> list: if feature_flags.is_enabled("new_recommendation_algo", user_id): return new_algorithm(user_id) else: return legacy_algorithm(user_id) The magic is in how is_enabled works — and how you manage the flag lifecycle. ...

February 19, 2026 · 7 min · 1459 words · Rob Washington

Feature Flags: Decoupling Deployment from Release

Deploy on Friday. Release on Monday. That’s the power of feature flags. The traditional model couples deployment with release—code goes to production, users see it immediately. Feature flags break that coupling, letting you deploy dark code and control visibility separately from deployment. The Core Pattern A feature flag is a conditional that wraps functionality: 1 2 3 4 5 if (featureFlags.isEnabled('new-checkout-flow', { userId: user.id })) { return renderNewCheckout(); } else { return renderLegacyCheckout(); } Simple in concept. Transformative in practice. ...

February 16, 2026 · 5 min · 1014 words · Rob Washington

Feature Flags: Ship Fast, Control Risk, and Test in Production

Deploying code and releasing features don’t have to be the same thing. Feature flags let you ship code to production while controlling who sees it, when they see it, and how quickly you roll it out. This separation is transformative for both velocity and safety. Why Feature Flags? Traditional deployment: code goes live, everyone gets it immediately, and if something breaks, you redeploy. With feature flags: Deploy anytime — code exists in production but isn’t active Release gradually — 1% of users, then 10%, then 50%, then everyone Instant rollback — flip a switch, no deployment needed Test in production — real traffic, real conditions, controlled exposure A/B testing — compare variants with actual user behavior Basic Implementation Start simple. A feature flag is just a conditional: ...

February 11, 2026 · 7 min · 1365 words · Rob Washington