velocity dust
DESCRIPTION
Our experience of using dust at scale.TRANSCRIPT
![Page 1: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/1.jpg)
The Curious case of Dustjs &
web-performance
1
Wednesday, June 19, 13
![Page 2: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/2.jpg)
Across 15 countries supporting 19 languages &
growing2
Wednesday, June 19, 13
![Page 3: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/3.jpg)
•Javascript templates at LinkedIn
•LinkedIn applications using Dust JS
•Measuring Web-Performance at LinkedIn
•Deep dive : A mile long page
•Lessons learnt and Next steps
Outline
3
Wednesday, June 19, 13
![Page 4: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/4.jpg)
•Javascript templates at LinkedIn
•LinkedIn applications using Dust JS
•Measuring Web-Performance at LinkedIn
•Deep dive : A mile long page
•Lessons learnt and Next steps
Outline
4
Wednesday, June 19, 13
![Page 5: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/5.jpg)
What is the story of Dust
at LinkedIn ?
5
Wednesday, June 19, 13
![Page 6: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/6.jpg)
Web - experience
full-page-refresh
lack-of one-click actions
complex-navigation-flows
Visually boring
dis-engaging
6
Wednesday, June 19, 13
![Page 7: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/7.jpg)
Web - infrastructure
No Sharing UI across pages
Do the same thing over and over
Rapid UI prototyping is hard
No single web-technology
legacy/custom web technologiesLI-JSP
JRubyGrails
DWR YUI
How to build for mobile?
7
Wednesday, June 19, 13
![Page 8: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/8.jpg)
Our answer to this problem
8
Wednesday, June 19, 13
![Page 9: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/9.jpg)
1. Unify by enabling the web-applications
to serve JSON
JSONbrowser
grails jruby java
9
Wednesday, June 19, 13
![Page 10: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/10.jpg)
2. Build a high-performingweb-proxy layer
to do common things
10
Wednesday, June 19, 13
![Page 11: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/11.jpg)
Since browser understands HTML, we needed {something}
that transformed JSON ==> HTML
JSON + {something}
browser
grails jruby java
HTML
11
Wednesday, June 19, 13
![Page 12: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/12.jpg)
Another interesting change was happening across the
web-community
12
Wednesday, June 19, 13
![Page 13: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/13.jpg)
single-page-appsclient-templates
client-MVC
json modelsbackbone.jsunderscore.js
13
Wednesday, June 19, 13
![Page 14: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/14.jpg)
Our intent was not to build client-MVC apps yet, but...
14
Wednesday, June 19, 13
![Page 15: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/15.jpg)
A common theme we noticed, JSON
and client-templates
15
Wednesday, June 19, 13
![Page 16: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/16.jpg)
{client-templates} === {js-templates}
16
Wednesday, June 19, 13
![Page 17: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/17.jpg)
JSON + {js-template} ==> HTML
JSON
browser
jruby java
JS-template
CDN
17
Wednesday, June 19, 13
![Page 18: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/18.jpg)
We chose Dustjs
open-source javascript template library
18
Wednesday, June 19, 13
![Page 19: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/19.jpg)
•high-performance with modern browsers
•pre-compiled to JS at build-time
•CDN cached with 365d expires
•< 4KB compressed
•logic-less, but extensible with helpers
(function() { dust.register("demo", body_0);
function body_0(chk, ctx) { return chk.write("Hello World!"); } return body_0;})()
The Good Parts
19
Wednesday, June 19, 13
![Page 20: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/20.jpg)
The Good Parts
ops : operations per second
http://linkedin.github.io/dustjs/benchmark/index.html
20
Wednesday, June 19, 13
![Page 21: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/21.jpg)
The Good Parts...
The same {dust}template can be rendered
either on the browser or on the server
21
Wednesday, June 19, 13
![Page 22: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/22.jpg)
The Good Parts...
On the server we have many options
22
Wednesday, June 19, 13
![Page 23: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/23.jpg)
We use engine in the web-proxy
browser
jruby java Templates
HTML
JSON
V8 JS engine
JSON Dust
23
Wednesday, June 19, 13
![Page 24: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/24.jpg)
Lets look at some code!
24
Wednesday, June 19, 13
![Page 25: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/25.jpg)
HTML Skeleton
JSON embedded
in the skeleton
<html><head><script type=”text/javascript” src=”dust.js”/><script type=”text/javascript” src=”tl/profile/view.dst”/></head><body>dust.render(‘{ “project” : { “name” : { “The New LinkedIn Profile?” }}’, ‘tl/profile/view’, ...);</body></html>
APP
1
25
Wednesday, June 19, 13
![Page 26: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/26.jpg)
CDN
Dust template
pre-compiled to JS
function body_0(chk, ctx) {return chk.write("<div>Do you have a URL for project").reference(ctx.getPath(false, ["project", "name"]), ctx, "h").write("?</div>");}return body_0
2
26
Wednesday, June 19, 13
![Page 27: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/27.jpg)
JSON
<html><head><script src=”dust.js”/><script type=”text/javascript” src=”tl/profile/view”/></head><body>dust.render (‘{ “project” : { “name” : { “The New LinkedIn Profile?” }}’, ‘tl/profile/view’, ...);</body></html>
APP
1
CDN
JS
template
function body_0(chk, ctx) {return chk.write("<div>Do you have a URL for project").reference(ctx.getPath(false, ["project", "name"]), ctx, "h").write("?</div>");}return body_0
2
browser
CDN
27
Wednesday, June 19, 13
![Page 28: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/28.jpg)
JSON
<html><head><script src=”dust.js”/><script type=”text/javascript” src=”tl/profile/view”/></head><body>dust.render (‘{ “project” : { “name” : { “The New LinkedIn Profile?” }}’, ‘tl/profile/view’, ...);</body></html>
APP
1
CDN
JS
template
function body_0(chk, ctx) {return chk.write("<div>Do you have a URL for project").reference(ctx.getPath(false, ["project", "name"]), ctx, "h").write("?</div>");}return body_0
2
browser
CDN
3<html><head><script type=”text/javascript” src=”dust.js”/><script type=”text/javascript” src=”tl/profile/view”/></head><body> <div>Do you have a URL for project“The New LinkedIn Profile?”</div></body></html>
JS Engine
dust.js
28
Wednesday, June 19, 13
![Page 29: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/29.jpg)
The Delightful Parts...
29
Wednesday, June 19, 13
![Page 30: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/30.jpg)
Developer Velocity
Unification
JSON
30
Wednesday, June 19, 13
![Page 31: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/31.jpg)
Open-source
Portable browser and server
Performance
Unification
JSON
Dust
Developer Velocity
31
Wednesday, June 19, 13
![Page 32: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/32.jpg)
Rapid-iterationwithMock JSON and JS
Open-source
Portable browser and server
Performance
Unification
JSON
JSON + Dust
Dust
Developer Velocity
32
Wednesday, June 19, 13
![Page 33: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/33.jpg)
•Javascript templates at LinkedIn
•LinkedIn applications using Dust JS
•Measuring Web-Performance at LinkedIn
•Deep dive : A mile long page
•Lessons learnt and Next steps
Outline
33
Wednesday, June 19, 13
![Page 34: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/34.jpg)
People You May Know
34
Wednesday, June 19, 13
![Page 35: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/35.jpg)
35
Wednesday, June 19, 13
![Page 36: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/36.jpg)
The new Profile
36
Wednesday, June 19, 13
![Page 37: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/37.jpg)
37
Wednesday, June 19, 13
![Page 38: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/38.jpg)
Profile Inline Edit
38
Wednesday, June 19, 13
![Page 39: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/39.jpg)
The Influencers
39
Wednesday, June 19, 13
![Page 40: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/40.jpg)
40
Wednesday, June 19, 13
![Page 41: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/41.jpg)
41
Wednesday, June 19, 13
![Page 42: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/42.jpg)
The Channels
42
Wednesday, June 19, 13
![Page 43: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/43.jpg)
43
Wednesday, June 19, 13
![Page 44: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/44.jpg)
Who Viewed My Profile
44
Wednesday, June 19, 13
![Page 45: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/45.jpg)
45
Wednesday, June 19, 13
![Page 46: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/46.jpg)
The Unified Search
46
Wednesday, June 19, 13
![Page 47: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/47.jpg)
47
Wednesday, June 19, 13
![Page 48: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/48.jpg)
Emails
48
Wednesday, June 19, 13
![Page 49: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/49.jpg)
> 50% of the site traffic now serving JSON + {dust}
49
Wednesday, June 19, 13
![Page 50: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/50.jpg)
one-click actions
2013 web-experience
Simplified design
Visually rich
engaging
50
InsightfulJS heavy
more unique visitors
Wednesday, June 19, 13
![Page 51: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/51.jpg)
•Javascript templates at LinkedIn
•LinkedIn applications using Dust JS
•Measuring Web-Performance at LinkedIn
•Deep dive : A mile long page
•Lessons learnt and Next steps
Outline
51
Wednesday, June 19, 13
![Page 52: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/52.jpg)
Web-Performance depends on
What we measure ?
52
metrics such as page on-load, TTFB,
page-size, start-render
Wednesday, June 19, 13
![Page 53: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/53.jpg)
Web-Performance depends on
How we measure ?
53
sampling %, use cases
Wednesday, June 19, 13
![Page 54: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/54.jpg)
Web-Performance depends on
Where we measure ?
54
across geo, different browsers
Wednesday, June 19, 13
![Page 55: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/55.jpg)
Web-Performance depends on
Whom do we measure ?
55
real users, keynote, gomez
Wednesday, June 19, 13
![Page 56: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/56.jpg)
We measure real-time using RUM for real-users
100% of requests top pages
across continents known browsers.
56
Wednesday, June 19, 13
![Page 57: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/57.jpg)
What is the story of Dust and
web-performance then ?
57
Wednesday, June 19, 13
![Page 58: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/58.jpg)
58
without {dust} with {dust} & client-rendering
Who Viewed My Profile
Wednesday, June 19, 13
![Page 59: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/59.jpg)
Performance of client-rendering comparable to server-side rendering
for PYMK except for IE7 !
59
Wednesday, June 19, 13
![Page 60: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/60.jpg)
60
without {dust}
Wednesday, June 19, 13
![Page 61: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/61.jpg)
with {dust} & client-rendering
61
without {dust}
client-render = (onload – first byte time)
TTFB and Time to Paint
Wednesday, June 19, 13
![Page 62: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/62.jpg)
•Javascript templates at LinkedIn
•LinkedIn applications using Dust JS
•Measuring Web-Performance at LinkedIn
•Deep dive : A mile long page
•Lessons learnt and Next steps
Outline
62
Wednesday, June 19, 13
![Page 63: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/63.jpg)
http://blog.linkedin.com/wp-content/uploads/2012/10/profile20.png
63
Wednesday, June 19, 13
![Page 64: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/64.jpg)
Symptoms we saw with Client-side rendering with
traditional metrics
64
Wednesday, June 19, 13
![Page 65: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/65.jpg)
Certain browsers and geo, on-load
time miserable
• Too many {dust} templates, slow parsing, blocking
• Slow JSON parsing on the IE browsers
• Sub-optimal Dust JS helpers
65
Wednesday, June 19, 13
![Page 66: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/66.jpg)
JSON payload size high
• Heavy JSON payloads from long key names and repetitions in the JSON
• Easy to send more data than what the template needs
66
{ “i18n_text_plain_0_renders_the_connection_count : “Your are connected to 4 users”,“first” : “Alfred”, “last” : “Willis”, “fullName” : “ Alfred Willis”}
Hello {fullName}{i18n_text_plain_0_renders_the_connection_count}
Long JSON keys
Wednesday, June 19, 13
![Page 67: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/67.jpg)
More {dust}
means more http-requests
• Dust supports dynamic, async template loading, does not scale
• Slow CDN combined with high browser cache-miss across different geo, particularly bad in Asia-pacific , India
67
Wednesday, June 19, 13
![Page 68: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/68.jpg)
Solution Optimize for the above the fold
&Use server-side JS engine for slow
browsers and geo
68
Wednesday, June 19, 13
![Page 69: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/69.jpg)
69
#1 Split the Monolithic page to Embeds
1
2
3
4
5
Wednesday, June 19, 13
![Page 70: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/70.jpg)
70
But wait…there’s more! But wait, there is more to it...
Wednesday, June 19, 13
![Page 71: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/71.jpg)
71
Deferred Rendering
OR
Deferred Fetch
#2 Defer below the fold embeds
Wednesday, June 19, 13
![Page 72: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/72.jpg)
Reduce latency
• # 1 Embeds instead of monolithic, flush early
• # 2 Defer rendering below the fold content
• # 3 Server-side render for slow user-agents and geo regions
72
Reduce JSON size
• # 1 Defer fetching below the fold JSON
• # 2 Pre-prod payload lint tooling
• # 3 Localized strings served via CDN cache
Reduce http-requests, increase caching
• # 1 Build-time dependency list instead of dynamic, async loading on above the fold
• # 2 Early flush the templates for above the fold
Wednesday, June 19, 13
![Page 73: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/73.jpg)
73
Deferred rendering &`
fetch
Deferred Image
JSON payload reduction
Wednesday, June 19, 13
![Page 74: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/74.jpg)
•Javascript templates at LinkedIn
•LinkedIn applications using Dust JS
•Measuring Web-Performance at LinkedIn
•Deep dive : A mile long page
•Lessons learnt and Next steps
Outline
74
Wednesday, June 19, 13
![Page 75: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/75.jpg)
Rapid-iterationwithMock JSON and JS
Open-source
Portable browser and server
Performance
Unification
JSON
JSON + Dust
Dust
Developer Velocity
75
Wednesday, June 19, 13
![Page 76: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/76.jpg)
ß
Rapid-iterationwithMock JSON and JS
Open-source
Portable browser and server
Performance
Unification
JSON
JSON + Dust
Dust
Site Speed
76
Site-Speed
Lean payload
server JS-engineMeasure forengagement
Improve dust.js
Wednesday, June 19, 13
![Page 77: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/77.jpg)
Performance is also User Perception and Engagement.
How fast can they see anything on the page?
How early can they engage ?
Is the user-experience consistent?
Simplify the design.
Wednesday, June 19, 13
![Page 78: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/78.jpg)
Next Steps
78
•Invest more in open-source for improving performance, dust.js and V8
•Enforce leaner JSON payload size
•Prefetching resources for certain use cases such as search
•Evolve with the new web-standards
•Move to faster CDNs across geo
•Invest in intelligent ways to co-relate
Wednesday, June 19, 13
![Page 79: Velocity dust](https://reader034.vdocuments.net/reader034/viewer/2022042510/54c830724a7959e1628b4595/html5/thumbnails/79.jpg)
The Core Team @ LinkedIn
79
Questions!!http://linkedin.github.io/dustjs/
Meet the team Office Hours next
@ Exhibit Hall (Table 2)
Veena Basavaraj Eran Leshem Baq Haidri Brian Geffon John Bernado
Wednesday, June 19, 13