CLIENT: Khan Sukkar🇪🇬Egypt

Shadoof - Feature Flag and Progressive Delivery Service for a Marketplace's Engineering Teams

Feature Flag Service for a Cairo Online Marketplace

Designed and built a clickable feature flag console for the engineering teams of a Cairo online marketplace: targeting rules and sticky percentage rollouts per environment, change requests with a second approver for Production, kill switches for incidents and a full change history for every flag.

Scope of Work
Product design, UI build and clickable demo
Industry
Developer Tools / Feature Flags
Enterprise
Compliance & Certifications
SOC 2Egypt PDPL (Law No. 151 of 2020)

Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.

Impact

5 Screens
Clickable end to end

Dashboard, flag list with quick view, flag detail with 6 tabs, change requests with the review panel, and kill switches with the engage and restore panel.

4 Eyes
On every Production change

In Production the toggle and every targeting edit become a change request with a readable diff, raw JSON and an impact estimate. The requester can never approve their own change, and bulk approval is not allowed.

24 h
Break-glass retro review

On-call engineers can engage a kill switch without prior approval, but only with a reason and an incident reference. The owning team must review the change within 24 hours.

24 Flags
Realistic demo data

Release, experiment, operational, kill switch and permission flags across 5 projects, with 16 change requests, 12 kill switches and 13 staff users in 7 teams.

The Problem

Khan Sukkar's teams toggled features with environment variables, a shared JSON file in a config repo and city checks buried in code. Turning something off during an incident meant a redeploy of 20 to 40 minutes, nobody could say which of about 600 "temporary" toggles were still in use or who had changed the checkout toggle before the last outage, and releases were frozen for weeks before the Ramadan and Eid sale campaigns because partial rollouts were impossible.

Our Solution

Shadoof lets about 220 engineers ship code dark and turn it on gradually. Flags carry ordered targeting rules and sticky percentage rollouts per environment, Production changes go through a change request that someone other than the author approves, kill switches can be flipped in seconds during an incident, and every change is recorded with its author, approver and diff.

The Challenge: Shipping Fast Without Losing Control

Khan Sukkar runs web, Android and iOS apps on roughly 40 backend services for around 9,000 sellers and their buyers across Egypt. A flag service for that many teams has to make rollouts safe, changes reviewable and old flags removable, without slowing anyone down.

Turning Off Meant Redeploying

Toggles lived in environment variables, a shared JSON file and if-statements in code. During an incident, switching a feature off meant a redeploy that took 20 to 40 minutes while buyers kept hitting the broken path.

Hundreds of Toggles Without Owners

About 600 "temporary" toggles had piled up. Nobody could say which were still in use, who had changed the checkout toggle before the last outage, or which buyers had seen the new payment sheet.

Rollouts That Must Stay Sticky

A partial rollout only works if the same buyer gets the same variation on every request and every server, and raising 10% to 25% only adds people. Without that, teams froze releases for weeks before every sale campaign.

No Evidence for Auditors

Auditors preparing for SOC 2 asked for proof that production changes were reviewed by someone other than the author, and there was none for configuration changes. Evaluation contexts also carry buyer and seller data under Egypt's Law No. 151 of 2020.

Our Approach: From Release Rules to a Clickable Console

01

Spec and Rules Research

Mapped 8 roles from engineer and tech lead to on-call engineer, release manager and read-only auditor, 28 screens including a phone-first on-call page, and the data model for flags, versioned per-environment configs, rules, segments, change requests, approval policies, schedules, kill switch events, freeze windows, SDK keys and a hash-chained audit log. Wrote down the rules the design follows: the OpenFeature standard, consistent hashing for rollouts, client-side keys that never expose rules, Egypt's Personal Data Protection Law No. 151 of 2020, SOC 2 change management and Cairo time for every schedule.

02

Clickable Demo on a Production UI Kit

Built 5 key screens on a production dashboard kit: the dashboard with KPIs, approvals waiting, rollouts in progress, engaged kill switches, the last 15 Production changes and the top evaluation errors; the flag list with environment state dots, sparklines and bulk actions; flag detail with ordered rules, a percentage split slider, a salt warning and a draft bar that turns into Request approval in Production; change requests with Approve, Request changes and Reject; and kill switches. All actions run on local state.

03

What a Production Build Adds

The evaluation APIs and an OpenFeature provider for Go, Java, Node.js, Kotlin, Swift and web, with server keys that evaluate locally and client keys that only receive evaluated variations. SSO through Okta or Google Workspace, code reference scans from GitHub or GitLab, Jira or Linear cleanup tickets, Slack, PagerDuty, Kafka exposure events, Datadog rollout guards and edge delivery, plus the append-only audit log with evidence packs and the remaining screens: segments, schedules, freeze windows, stale flag cleanup, analytics, experiments, the evaluation debugger, settings and the on-call page.

Why It Works: Safe Defaults at Every Step

Production Never Looks Like Staging

Selecting Production turns the environment chip red and runs a red band across the top of every page. An active freeze window shows as a banner on every page with its end time in Cairo time, and kill switches stay allowed.

Changes Read Like Sentences

A change request shows "Rule 2 split: On 25% → 50%" with a raw JSON toggle, the estimated share of traffic whose variation would change, the requester's reason and ticket, and exactly who may approve. Rejecting needs a reason.

Kill Switches Built for Incidents

Engaged switches are pinned at the top in red with how long they have been on, the PagerDuty incident and when the retro review is due. Each card says in plain words what the switch turns off and links to its runbook.

Every Flag Has an Owner and an End

Flags show their owning team, kind, tags and planned removal date, with stale flags counted on their own tab. Archive is only offered for flags with no evaluations in 30 days, and individual target lists are capped at 500 keys so bigger groups move into segments.

Logo
Oceanlab

Enterprise Software Engineering - Human + AI

Languages

Locations

Global Headquarters

21 Merchant Road, 3rd Floor, Singapore 058267

Main corporate office and leadership operations

North America Office

548 Market Street, PMB 12345, San Francisco, CA 94104

Client operations and business development

India Office

402 Shivalik Shilp II, SG Highway, Ahmedabad 380015

Engineering and delivery center

© 2026 - Copyright. All Rights reserved Oceanlab