-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlinkedin-xlnt-framework.html
More file actions
193 lines (174 loc) · 23.9 KB
/
Copy pathlinkedin-xlnt-framework.html
File metadata and controls
193 lines (174 loc) · 23.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LinkedIn XLNT → T-REX — democratised experimentation at platform scale</title>
<link rel="stylesheet" href="framework.css">
<style>
/* Page-accent — overrides framework.css fallback */
:root{--page-accent:var(--blue);--page-accent-soft:var(--blue-soft)}
/* timeline */
.timeline{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;box-shadow:var(--shadow);margin:14px 0}
.tline{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.era{border:1px solid var(--line);border-radius:10px;padding:14px;background:#faf7f0}
.era .y{font-family:Georgia,serif;font-size:14px;color:var(--page-accent);font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.era .nm{font-family:Georgia,serif;font-size:20px;font-weight:700;margin:4px 0 6px;color:var(--ink)}
.era .ds{font-size:13px;color:var(--ink-soft);line-height:1.5}
/* stats */
.stats{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.stat{flex:1 1 150px;background:#f6f4ee;border:1px solid var(--line);border-radius:8px;padding:12px 14px;text-align:center}
.stat .n{font-family:Georgia,serif;font-size:22px;color:var(--page-accent);font-weight:700;line-height:1.1}
.stat .l{font-size:11.5px;color:var(--ink-soft);margin-top:4px;line-height:1.35}
.caveat{font-size:12.5px;color:#8a6d2e;background:#fbf6e7;border:1px dashed #d8c98f;border-radius:6px;padding:7px 11px;margin-top:10px}
@media(max-width:680px){.tline{grid-template-columns:1fr}}
</style>
</head>
<body>
<nav class="sitenav">
<details>
<summary>📑 Jump to</summary>
<div class="navmenu">
<div class="navgrp"><h4>Start here</h4>
<a href="index.html"><b>← Home (goal & map)</b></a>
<a href="impact-saas-companies.html">SaaS / B2B field study</a>
<a href="impact-consumer-companies.html">Consumer-tech field study</a>
<a href="methodologies-comparison.html"><b>All methods compared →</b></a>
<a href="experiment-trustworthiness.html">How 40k tests actually work →</a>
<a href="jargon.html">Jargon (glossary)</a>
</div>
<div class="navgrp"><h4>Scoring & Input modeling</h4>
<a href="rice-framework.html">RICE (Intercom)</a>
<a href="north-star-framework.html">North Star (Amplitude / Slack)</a>
</div>
<div class="navgrp"><h4>Goal-laddering / Define first</h4>
<a href="v2mom-framework.html">V2MOM (Salesforce)</a>
<a href="pyramid-of-clarity-framework.html">Pyramid of Clarity (Asana)</a>
<a href="pr-faq-framework.html">PR-FAQ / Working Backwards (Amazon)</a>
<a href="heart-framework.html">HEART (Google)</a>
<a href="dibb-framework.html">DIBB (Spotify)</a>
</div>
<div class="navgrp"><h4>Experimentation (SaaS)</h4>
<a href="microsoft-exp-framework.html">Microsoft ExP / CUPED</a>
<a class="cur" href="linkedin-xlnt-framework.html">LinkedIn T-REX</a>
</div>
<div class="navgrp"><h4>Experimentation (Consumer)</h4>
<a href="netflix-experimentation.html">Netflix · ABlaze</a>
<a href="booking-experimentation.html">Booking.com</a>
<a href="airbnb-erf-framework.html">Airbnb ERF</a>
<a href="uber-xp-framework.html">Uber XP</a>
<a href="doordash-switchback-framework.html">DoorDash switchback</a>
<a href="lyft-experimentation.html">Lyft</a>
<a href="pinterest-ab-framework.html">Pinterest</a>
</div>
<div class="navgrp"><h4>AI labs</h4>
<a href="anthropic-pm-on-ai-exponential.html">Anthropic · PM on AI exponential</a>
<a href="google-customer-zero-2026.html">Google · "Customer zero" 2026</a>
</div>
<div class="navgrp"><h4>Written discipline</h4>
<a href="stripe-shaping-framework.html">Stripe shaping</a>
</div>
</div>
</details>
</nav>
<div class="wrap">
<header class="masthead">
<p class="kicker">Methods · Deep-dive · Experimentation</p>
<h1>LinkedIn XLNT → T-REX — democratised experimentation at platform scale <span class="srcyr">2020</span></h1>
<p class="sub">LinkedIn's internal A/B platform has had three names across a decade — <strong>LiX → XLNT → T-REX</strong>. The story is less about a unique framework and more about what it costs to make experimentation <em>so cheap and trustworthy</em> that every team uses it by default.</p>
<p class="sub">Canonical citation: <em>"Making the LinkedIn experimentation engine 20x faster"</em> (Alexander Ivaniuk & Jingbang Liu, LinkedIn Engineering Blog, January 3, 2020) — the post documenting the current T-REX engine.</p>
<div class="goal"><span>Goal</span><br>Decide features by data-backed expected impact — choose by outcome, not by to-do list or opinion.</div>
</header>
<div class="eli">
<div class="lbl">🎓 8th-grade version</div>
LinkedIn doesn't have a special idea about <em>how</em> to test features — they use the same rules as Microsoft (declare what "winning" means before you start, look at the number after, ship if it moved). What's special is the <b>tool they built for it</b>. They invested so much in their A/B testing platform that an engineer can run a real experiment on hundreds of millions of users in minutes — no permission, no special meeting. The result: they run <b>40,000 experiments every single day</b>. The lesson for smaller teams isn't to build your own platform; it's to remove every step that makes testing feel hard, so testing becomes the default verb instead of a rare event.
</div>
<nav class="toc">
<a href="#headline">Honest headline</a>
<a href="#anatomy">LiX → XLNT → T-REX</a>
<a href="#mechanism">How it picks work</a>
<a href="#stats">The scale</a>
<a href="#apply">Apply to a sheet</a>
<a href="methodologies-comparison.html" style="color:var(--blue);font-weight:700">Comparison table →</a>
</nav>
<div style="background:#fbf6e7;border:1px dashed #d8c98f;border-left:5px solid var(--gold);border-radius:10px;padding:14px 20px;margin:0 0 22px;font-size:14.5px;color:#5b4708">
<b style="color:#7a5a08">Skeptical of the "40k/day" claim?</b> Good — it deserves scrutiny. The answer (orthogonal <a class="j" href="jargon.html#layered-randomization">layered randomization</a> from Google's <a class="j" href="jargon.html#kdd">KDD</a> 2010 paper, plus 1-week-minimum read windows) is its own deep-dive: <a href="experiment-trustworthiness.html" style="color:#7a5a08;font-weight:700;border-bottom:1px solid #7a5a08;text-decoration:none">How 40k tests actually work → trustworthiness mechanics</a>.
</div>
<div class="finding" id="headline">
<h2>The honest headline: same idea as Microsoft ExP, told as a platform story</h2>
<p>LinkedIn does not have a unique <em>method</em>. The decision rule is the same as Microsoft: <b>declare a metric, ship behind a controlled test, let the result decide.</b> What's different — and worth studying — is the <b>platform-as-culture</b> argument: invest enough in tooling that any engineer can launch an experiment in minutes, and "we A/B tested it" stops being a special event and becomes the default verb.</p>
<p>The published scale: <b>40,000+ experiments run every day on ~8,000 metrics</b>. That number isn't bragging — it's the <em>evidence</em> that the platform investment paid off. Without the tooling, that volume would be impossible. <strong>Honest mechanics — what really runs, how interference is mitigated, and why no one decides in a morning — are in the <a href="experiment-trustworthiness.html">trustworthiness deep-dive</a>.</strong></p>
</div>
<!-- ANATOMY -->
<h2 class="sec" id="anatomy">LiX → XLNT → T-REX — three names, one continuous platform</h2>
<p class="secsub">It helps to see the timeline because LinkedIn's own engineering blog uses all three names. They're successive generations of <em>the same</em> internal A/B platform.</p>
<div class="timeline">
<div class="tline">
<div class="era">
<div class="y">~2010s</div>
<div class="nm">LiX</div>
<div class="ds">"LinkedIn eXperimentation." First-gen platform — proved you could run controlled experiments at scale internally. Engineering blog calls this the <em>prehistory</em>.</div>
</div>
<div class="era">
<div class="y">~2014–2019</div>
<div class="nm">XLNT</div>
<div class="ds">End-to-end platform covering <em>design → deploy → analyse</em>. Built to remove every excuse not to test — easy variant assignment, automatic metric pipelines, browser dashboards.</div>
</div>
<div class="era">
<div class="y">~2020+</div>
<div class="nm">T-REX</div>
<div class="ds">Current evolution — Ivaniuk & Liu's January 2020 rewrite replaced the 2012 Clojure engine, delivering <b>20× faster sequential</b> and <b>14.7× faster concurrent</b> evaluation. The architecture now serves the 40k experiments/day load.</div>
</div>
</div>
</div>
<div class="src">Sources: <a class="cite" href="https://engineering.linkedin.com/blog/topic/t-rex">LinkedIn Engineering — T-REX article series</a> · <a class="cite" href="https://www.linkedin.com/blog/engineering/ab-testing-experimentation/our-evolution-towards-t-rex-the-prehistory-of-experimentation-i">"Our evolution towards T-REX: the prehistory of experimentation infrastructure at LinkedIn"</a> · <a class="cite" href="https://www.linkedin.com/blog/engineering/ab-testing-experimentation/making-the-linkedin-experimentation-engine-20x-faster">"Making the LinkedIn experimentation engine 20x faster" (Ivaniuk & Liu, January 3, 2020)</a>.</div>
<!-- MECHANISM -->
<h2 class="sec" id="mechanism">How a LinkedIn-style platform actually decides what ships</h2>
<p class="secsub">The decision rule is borrowed from Kohavi's <a class="cite" href="microsoft-exp-framework.html">ExP discipline</a>. What's unique here is the <b>shape of the platform</b> that makes it routine, not heroic, to follow that rule.</p>
<div class="step"><div class="num">1</div><div><h3>One team, one tool, one definition language</h3><p>All metrics are defined in a shared schema so every team's experiments speak the same statistical language. No bespoke dashboards per team — that's the only way 40k/day works.</p></div></div>
<div class="step"><div class="num">2</div><div><h3>Feature flagging is the unit of deploy</h3><p>Code is wrapped in a flag before launch. Shipping <em>is</em> a ramp. The framework's quiet trick: there's no separate "experimentation system" — every release goes through the same gate.</p></div></div>
<div class="step"><div class="num">3</div><div><h3>Automatic metric computation & significance</h3><p>The platform reads out treatment vs control on the agreed metrics without a data scientist in the loop. Engineers can run their own experiments — that's the "democratised" claim.</p></div></div>
<div class="step"><div class="num">4</div><div><h3>Trust checks built-in</h3><p>Sample-Ratio-Mismatch and other guardrails run automatically. If the test failed to randomise cleanly, the platform flags it before anyone reads the result — preventing the most common false win.</p></div></div>
<div class="step"><div class="num">5</div><div><h3>Cumulative learning across thousands of tests</h3><p>The platform is also a research dataset — variance estimates, baseline rates, ramp curves all get reused, which is what enables the 20× speedup. <b>Each new experiment is cheaper because the previous 40,000 happened.</b></p></div></div>
<!-- STATS -->
<h2 class="sec" id="stats">The published scale</h2>
<p class="secsub">Why these numbers matter: they show what "experimentation culture" looks like at the operational maximum — and they set the bar for what is technically possible at smaller scale.</p>
<div class="stats">
<div class="stat"><div class="n">40,000+</div><div class="l">experiments per day (current T-REX figure)</div></div>
<div class="stat"><div class="n">~8,000</div><div class="l">metrics computed across those experiments</div></div>
<div class="stat"><div class="n">20× / 14.7×</div><div class="l">sequential / concurrent speedup in the 2020 engine rewrite</div></div>
<div class="stat"><div class="n">700M+</div><div class="l">members in scope of every test</div></div>
</div>
<div class="caveat">Caveat: all figures are from LinkedIn's own engineering blog (T-REX series, 2020+); they are the published claim, not an external audit. The 20× headline is for <em>sequential</em> evaluation specifically — concurrent evaluation improved 14.7×. The 35,000-concurrent-experiments figure from the 2020 rewrite post is consistent with "40,000+ per day" reported in later T-REX posts.</div>
<!-- APPLY TO A SHEET -->
<h2 class="sec" id="apply">Apply to a feature sheet</h2>
<p class="secsub">XLNT/T-REX discipline turns the backlog into a live <strong>experiment ledger</strong> — every release carries its test. The columns mirror Microsoft ExP (OEC, guardrails, <a class="j" href="jargon.html#mde">MDE</a>, N, ramp, result, decision), with the LinkedIn-specific addition of a <em>network-interference check</em> (<a class="j" href="jargon.html#triangle-test">triangle test</a>) because connection-based features can leak across treatment/control.</p>
<div class="note" style="background:var(--teal-soft);border-left-color:var(--teal)"><b>Try it Monday morning (30 minutes).</b> You probably don't have a LinkedIn-scale platform. That's fine — the discipline is what matters. Pick your team's release process. Walk it backwards: where in the flow is the <em>1% ramp</em>? Where is the <em>pre-declared OEC</em>? Where is the <em>guardrail check</em>? If any of those isn't a defined step, that's the gap. Add it once, in writing. You don't need 40k experiments/day — you need <em>every</em> release to declare what would make it a win, before it ships.</div>
<div class="note" style="background:var(--blue-soft);border-left-color:var(--blue);font-size:13.5px"><b>Quick glossary for the columns below.</b> <b>OEC</b> = <a class="j" href="jargon.html#oec">Overall Evaluation Criterion</a> (the agreed success metric, set <em>before</em> the test). <b>Triangle test / network-interference check</b> = a randomization check used when a feature can spread between users via the social graph (a connection accepts a suggestion → their feed changes too) — without this check, treatment can "leak" into control and inflate the result. <b>SRM</b> = <a class="j" href="jargon.html#srm">Sample-Ratio Mismatch</a> (when the 50/50 split came out wrong by accident — a sign the experiment is broken). <b>NS</b> = not statistically significant.</div>
<h3 style="font-family:Georgia,serif;font-size:18px;margin:18px 0 8px">Worked example — an experiment ledger snapshot (LinkedIn-style)</h3>
<p style="font-size:13.5px;color:var(--ink-soft);margin:0 0 12px">Eight experiments. OECs drawn from LinkedIn's published preference: <em>sessions per visitor per week</em> + downstream engagement. Numbers illustrative.</p>
<div style="overflow-x:auto;margin:14px 0">
<table style="border-collapse:collapse;width:100%;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden">
<thead><tr style="background:var(--ink);color:#f3efe6;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase"><th style="padding:9px 10px;text-align:left">Feature</th><th style="padding:9px 10px;text-align:left">OEC</th><th style="padding:9px 10px;text-align:left">Guardrails</th><th style="padding:9px 10px;text-align:left">N/arm</th><th style="padding:9px 10px;text-align:left">Network check</th><th style="padding:9px 10px;text-align:left">Result</th><th style="padding:9px 10px;text-align:left">Decision</th></tr></thead>
<tbody>
<tr style="background:#e6ecf6"><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">Connection-suggestion algo v2</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Sessions/visitor/wk</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Connection spam, latency</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">2M</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Triangle OK</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">+0.8% sig, guards held</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:var(--blue);font-weight:700">Ship</td></tr>
<tr style="background:#e6ecf6"><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">Improved feed ranking</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Sessions/visitor/wk</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Negative-feedback rate, latency</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">5M</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Triangle OK</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">+1.4% sig</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:var(--blue);font-weight:700">Ship</td></tr>
<tr style="background:#e6ecf6"><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">Profile-completion nudge</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">% profiles complete</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Unsubscribes, complaint rate</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">800k</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">N/A</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">+6 pp completion, guards OK</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:var(--blue);font-weight:700">Ship</td></tr>
<tr style="background:#e6ecf6"><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">Endorsement spam filter</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Connection quality score</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">False-positive rate</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">1M</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">N/A</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">−12% spam, FP < 0.2%</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:var(--blue);font-weight:700">Ship</td></tr>
<tr><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">Inline congratulations prompts</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Engagement events/session</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Notification-mute rate</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">500k</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Triangle OK</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">+0.3% NS, mute rate +1%</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:var(--gold);font-weight:700">Iterate</td></tr>
<tr><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">Auto-translate posts</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Locale engagement</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Reading-time, errors</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">300k</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">N/A</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">+0.4% NS (under-powered)</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:var(--gold);font-weight:700">Iterate — extend</td></tr>
<tr><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-weight:600">Aggressive notification frequency</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Engagement events</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">Unsubscribes, mute rate</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">2M</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">N/A</td><td style="padding:9px 10px;border-bottom:1px solid var(--line)">+5% engagement BUT unsubs +15%</td><td style="padding:9px 10px;border-bottom:1px solid var(--line);font-family:Georgia,serif;color:var(--accent);font-weight:700">Kill</td></tr>
<tr><td style="padding:9px 10px;font-weight:600">AI cover photo generator</td><td style="padding:9px 10px">Engagement</td><td style="padding:9px 10px">Latency, errors</td><td style="padding:9px 10px">400k</td><td style="padding:9px 10px">N/A</td><td style="padding:9px 10px">Flat, SRM flagged</td><td style="padding:9px 10px;font-family:Georgia,serif;color:var(--ink-soft);font-weight:700">Invalid — re-randomize</td></tr>
</tbody>
</table>
</div>
<div class="note" style="background:var(--accent-soft);border-left-color:var(--accent)"><b>The most important reading skill on this page.</b> Notice that the "Aggressive notification frequency" row's verdict — <b>Kill</b> — looks like a paradox. Engagement went <em>up</em> 5%, the actual metric the team set out to lift. Why kill it? Because unsubscribes went up <em>15%</em>, which means the win is borrowed against future engagement. Guardrails are the price of the OEC moving. The smaller-team takeaway: <em>your guardrail metrics are not optional supplements</em>. The day you ship a feature with no guardrail because "you're in a hurry" is the day you're set up to make exactly this kind of mistake — and you won't see the cost until users start churning.</div>
<div class="note"><b>Decision rule.</b> Same OEC + guardrails rule as Microsoft ExP, with one LinkedIn twist: any feature that touches the social graph (suggestions, content reach, notifications) must pass a <em>network-interference check</em> before the result is trusted. The notification-frequency row shows why guardrails matter — engagement up means nothing if unsubscribes spike harder. The cover-photo row is invalidated by SRM (sample-ratio mismatch), the trust check that catches assignment bugs before they read as wins.</div>
<div class="note"><b>The transferable insight.</b> LinkedIn proves you don't need a unique <em>method</em> to win — same OEC + ramp discipline as Microsoft. What you need is <b>tooling so cheap that no one has to ask permission to run a test</b>. For a smaller team, that "tooling" doesn't need to be a custom platform; it can be a feature-flag service + a shared metrics dashboard + a written norm that every release ramps 1%→10%→50%→100% behind a pre-declared OEC.</div>
<footer>
Companion to <a href="impact-saas-companies.html#exp">← SaaS case studies · Experimentation</a> · <a href="methodologies-comparison.html">All methods compared</a> · sibling: <a href="microsoft-exp-framework.html">Microsoft ExP</a> (the same decision rule, different platform story)<br>
<b>Grounded in</b> LinkedIn Engineering Blog's T-REX series, the original <a href="https://engineering.linkedin.com/ab-testing/xlnt-platform-driving-ab-testing-linkedin">XLNT introduction</a>, and <a href="https://www.linkedin.com/blog/engineering/ab-testing-experimentation/making-the-linkedin-experimentation-engine-20x-faster">"Making the LinkedIn experimentation engine 20x faster" by Alexander Ivaniuk & Jingbang Liu, January 3, 2020</a>. <b>Verbatim from LinkedIn:</b> the speedup figure (20× sequential / 14.7× concurrent), the platform-name evolution (LiX = "LinkedIn eXperimentation", XLNT = "eXperimentation framework", T-REX = current generation), and the 40k experiments/day, ~8k metrics, 700M+ members claims. <b>Note on naming:</b> in the 2020 rewrite post, "T-REX" is the team that built the new engine; in other LinkedIn posts T-REX names the platform itself — the page uses the more common platform sense. <b>Added by us, not in LinkedIn's posts:</b> the 8-row experiment ledger worked example, the verdict labels (Ship/Iterate/Kill/Invalid), the "Try it Monday" exercise, and the in-page glossary.
</footer>
</div>
</body>
</html>