Reliably Measuring Responsiveness

Shubhie Panicker Nic Jansma
@nicj@shubhie
Reliably Measuring Responsiveness
in the Wild
When is load?
Reliably Measuring Responsiveness
Reliably Measuring Responsiveness
Old load metrics don’t capture user experience.
We need to rethink our metrics and focus on what matters.
Performance only matters at Load time
My app loads in
X.X seconds
Load metrics are NOT a single number
Performance in the Lab Performance in the Real World
● What metrics accurately capture responsiveness?
● How to measure these on real users?
● How to analyze data and find areas to improve?
Key questions
Responsiveness Metrics
Queueing Time
Short Tasks Long Tasks
Long Tasks on 3 customer sites
(daily average)
● Site 1 (Travel): 276,000
● Site 2 (Gaming): 200,000
● Site 3 (Retail): 593,000
Millions of Long Tasks
Reliably Measuring Responsiveness
60 fps: An Elusive Dream
Real User Measurement (RUM)
Real world measurement
with Web Performance APIs
● Performance Observer
● LongTasks
● Time to Interactive
● Input Latency
New Performance APIs and Metrics
High Resolution
Time
Performance
Entry
Performance
Observer
Performance
Building Blocks
PerformanceTimeline vs PerformanceObserver
// PerformanceTimeline
var entries = performance.getEntriesByType("resource");
// PerformanceObserver
var entries = [];
const observer = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
entries.push(entry);
}
});
observer.observe({entryTypes: ['resource']});
LongTasks
https://github.com/w3c/longtasks
Bad Workarounds
● Timeout polling
● rAF loop
Issues
● Performance overhead
● Battery drain
● Precludes rIC
● No attribution
LongTasks via PerformanceObserver
const observer = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
sendDataToAnalytics('Long Task', {
time: entry.startTime + entry.duration,
attribution: JSON.stringify(entry.attribution),
});
}
});
observer.observe({entryTypes: ['longtask']});
https://w3c.github.io/longtasks/render-jank-demo.html
script 1 script 2
Multiple sub-tasks (scripts) within a long task
Attribution: Who?
“Minimal Frame Attribution” with name
● self, same-origin-ancestor, same-origin-descendant,
cross-origin-ancestor, cross-origin-descendant,
multiple-contexts, unknown etc.
Attribution: Who And Why?
Detailed attribution with TaskAttributionTiming
● attribution[]
○ containerType: iframe, embed, object
○ containerSrc: <iframe src="http://..." />
○ containerId: <iframe id="ad" />
○ containerName: <iframe name="ad-unit-1" />
More Attribution: Coming soon!
Detailed attribution with TaskAttributionTiming
● attribution[]
○ containerType: iframe, embed, object
○ containerSrc: <iframe src="http://..." />
○ containerId: <iframe id="ad" />
○ containerName: <iframe name="ad-unit-1" />
○ scriptUrl:
https://connect.facebook.net/en_US/fbevents.js:97
Long Tasks V2!
LongTasks: Usage Tips
● Measuring during page load: Turn it on as early as
possible (e.g. <head>)
● Measuring during interactions with a circular buffer
● First-party (“my frame”) LongTasks give only duration
● Third-party other-frames provide attribution if the IFRAME
itself is annotated via id, name or src.
Time to Interactive
Is it Usable?
Time to Interactive
Not Interactive Until HereUser Sees Content
Time to Interactive: Lower Bound
When does the page appear to the visitor to be interactable?
Start from the latest Visually Ready timestamp:
○ DOMContentLoaded (document loaded + parsed, without CSS, IMG,
IFRAME)
○ First Paint, First Contentful Paint
○ Hero Images (if defined by the site, important images)
○ Framework Ready (if defined by the site, when core frameworks have all
loaded)
First Paint
Framework
Ready
Hero
Images
DOM
Content
Loaded
Visually
Ready
Time to Interactive: Measuring
What's the first time a user could interact with the page and have a good experience?
Starting from the lower bound (Visually Ready) measure to Ready for Interaction where none of
the following occur for your defined period (e.g. 500ms):
● No Long Tasks
● No long frames (FPS >= 20)
● Page Busy is less than 10% (setTimeout polling)
● Low network activity (<= 2 outstanding)
github.com/GoogleChrome/tti-polyfill
github.com/SOASTA/boomerang/tree/continuity
Input Latency
Measuring bad user experiences
● Interactions (scrolls, clicks, keys) may be delayed by script, layout
and other browser work
● Latency can be measured (performance.now() - event.timeStamp)
● Latency can be attributed via LongTasks
const subscribeBtn = document.querySelector('#subscribe');
subscribeBtn.addEventListener('click', (event) => {
// Event listener logic goes here...
const lag = performance.now() - event.timeStamp;
if (lag > 100) {
sendDataToAnalytics('Input latency', lag);
}
});
Measure input latency: event.timeStamp and performance.now()
Input Latency
github.com/nicjansma/reliably-measuring-responsiveness-in-the-wild/
Determining the cause via LongTasks:
1. Turn on PerformanceObserver
2. Watch for input delays
3. Find LongTasks that ended between event.timeStamp and
performance.now()
Sample code:
Real World Data
3 sites over 1 month
○ Site 1: Travel (ads, social)
○ Site 2: Gaming (ads, social)
○ Site 3: Retail (social, 3p, spa)
Case Studies
18+ million LongTasks
Duration Percentiles:
○ 50th: 106 ms
○ 75th: 208 ms
○ 90th: 427 ms
○ 95th: 666 ms
○ 99th: 1,712 ms
○ Range: 50 to 10+
seconds
LongTasks as % of Front End Load Time
LongTasks directly delay
Time to Interactive.
Reliably Measuring Responsiveness
Time to Interactive has
high correlation with overall
conversion rate.
Reliably Measuring Responsiveness
First impressions matter:
as first-page LongTask time
increased, overall Conversion
Rate decreased
Reliably Measuring Responsiveness
Mobile devices could see 12x
LongTask time as Desktop.
LongTask as
% of Front End Load Time
Older devices could be spending half
of their load time on LongTasks.
1st vs. 3rd Party
3rd Party Types
Optimizing Performance
Every site is different.
Identify your core metrics.
Minimize the time to TTI
Consider Mobile traffic
Ship less JS
Break up existing JS with Code Splitting
Reduce Long Tasks
Mobile is especially hurting
Break up JS
Move intensive work off the main thread to workers
Hold Third Parties Accountable
Identify the worst offenders
Evaluate impact on TTI & business metrics
Looking Ahead
● Long Tasks V2
● Input Latency + Slow Frames
● Long Tasks is not Panacea
Shubhie Panicker Nic Jansma
@nicj@shubhie
Thank You
1 of 61

Recommended

Fluent 2018: When third parties stop being polite... and start getting real by
Fluent 2018: When third parties stop being polite... and start getting realFluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting realAkamai Developers & Admins
559 views83 slides
Measuring Real User Performance in the Browser by
Measuring Real User Performance in the BrowserMeasuring Real User Performance in the Browser
Measuring Real User Performance in the BrowserNicholas Jansma
11.5K views182 slides
Measuring Continuity by
Measuring ContinuityMeasuring Continuity
Measuring ContinuityNicholas Jansma
2.4K views50 slides
Forensic Tools for In-Depth Performance Investigations by
Forensic Tools for In-Depth Performance InvestigationsForensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance InvestigationsNicholas Jansma
4.1K views132 slides
Using Modern Browser APIs to Improve the Performance of Your Web Applications by
Using Modern Browser APIs to Improve the Performance of Your Web ApplicationsUsing Modern Browser APIs to Improve the Performance of Your Web Applications
Using Modern Browser APIs to Improve the Performance of Your Web ApplicationsNicholas Jansma
4.3K views37 slides
Make It Fast - Using Modern Browser Performance APIs to Monitor and Improve t... by
Make It Fast - Using Modern Browser Performance APIs to Monitor and Improve t...Make It Fast - Using Modern Browser Performance APIs to Monitor and Improve t...
Make It Fast - Using Modern Browser Performance APIs to Monitor and Improve t...Nicholas Jansma
2.7K views86 slides

More Related Content

What's hot

Developing Async Sense by
Developing Async SenseDeveloping Async Sense
Developing Async SenseNemanja Stojanovic
143 views146 slides
Mobile App Performance: Getting the Most from APIs (MBL203) | AWS re:Invent ... by
Mobile App Performance:  Getting the Most from APIs (MBL203) | AWS re:Invent ...Mobile App Performance:  Getting the Most from APIs (MBL203) | AWS re:Invent ...
Mobile App Performance: Getting the Most from APIs (MBL203) | AWS re:Invent ...Amazon Web Services
2K views49 slides
Dancing with websocket by
Dancing with websocketDancing with websocket
Dancing with websocketDamien Krotkine
3.8K views28 slides
Service Workers for Performance by
Service Workers for PerformanceService Workers for Performance
Service Workers for PerformancePatrick Meenan
8.1K views64 slides
The HTML5 WebSocket API by
The HTML5 WebSocket APIThe HTML5 WebSocket API
The HTML5 WebSocket APIDavid Lindkvist
29.3K views41 slides
Cassandra Summit EU 2014 Lightning talk - Paging (no animation) by
Cassandra Summit EU 2014 Lightning talk - Paging (no animation)Cassandra Summit EU 2014 Lightning talk - Paging (no animation)
Cassandra Summit EU 2014 Lightning talk - Paging (no animation)Christopher Batey
2.1K views16 slides

What's hot(20)

Mobile App Performance: Getting the Most from APIs (MBL203) | AWS re:Invent ... by Amazon Web Services
Mobile App Performance:  Getting the Most from APIs (MBL203) | AWS re:Invent ...Mobile App Performance:  Getting the Most from APIs (MBL203) | AWS re:Invent ...
Mobile App Performance: Getting the Most from APIs (MBL203) | AWS re:Invent ...
Service Workers for Performance by Patrick Meenan
Service Workers for PerformanceService Workers for Performance
Service Workers for Performance
Patrick Meenan8.1K views
Cassandra Summit EU 2014 Lightning talk - Paging (no animation) by Christopher Batey
Cassandra Summit EU 2014 Lightning talk - Paging (no animation)Cassandra Summit EU 2014 Lightning talk - Paging (no animation)
Cassandra Summit EU 2014 Lightning talk - Paging (no animation)
Christopher Batey2.1K views
Going Live! with Comet by Simon Willison
Going Live! with CometGoing Live! with Comet
Going Live! with Comet
Simon Willison13.4K views
Knock, knock, who is there? Doze. by Yonatan Levin
Knock, knock, who is there? Doze.Knock, knock, who is there? Doze.
Knock, knock, who is there? Doze.
Yonatan Levin1.6K views
Eddystone Beacons - Physical Web - Giving a URL to All Objects by Jeff Prestes
Eddystone Beacons - Physical Web - Giving a URL to All ObjectsEddystone Beacons - Physical Web - Giving a URL to All Objects
Eddystone Beacons - Physical Web - Giving a URL to All Objects
Jeff Prestes1.4K views
Puppeteer can automate that! - Frontmania by Önder Ceylan
Puppeteer can automate that! - FrontmaniaPuppeteer can automate that! - Frontmania
Puppeteer can automate that! - Frontmania
Önder Ceylan725 views
I/O Extended 2019 WebTech - New capabilities for the web by HanboramRobinJang
I/O Extended 2019 WebTech - New capabilities for the webI/O Extended 2019 WebTech - New capabilities for the web
I/O Extended 2019 WebTech - New capabilities for the web
HanboramRobinJang110 views
Puppeteer can automate that! - AmsterdamJS by Önder Ceylan
Puppeteer can automate that! - AmsterdamJSPuppeteer can automate that! - AmsterdamJS
Puppeteer can automate that! - AmsterdamJS
Önder Ceylan1.2K views
Naive application development by Shaka Huang
Naive application developmentNaive application development
Naive application development
Shaka Huang1.2K views
Cracking JWT tokens: a tale of magic, Node.js and parallel computing - Code E... by Luciano Mammino
Cracking JWT tokens: a tale of magic, Node.js and parallel computing - Code E...Cracking JWT tokens: a tale of magic, Node.js and parallel computing - Code E...
Cracking JWT tokens: a tale of magic, Node.js and parallel computing - Code E...
Luciano Mammino1.6K views
Puppeteer can automate that! - HolyJS Piter 2020 by Önder Ceylan
Puppeteer can automate that! - HolyJS Piter 2020Puppeteer can automate that! - HolyJS Piter 2020
Puppeteer can automate that! - HolyJS Piter 2020
Önder Ceylan198 views
Backend, app e internet das coisas com NodeJS no Google Cloud Platform by Alvaro Viebrantz
Backend, app e internet das coisas com NodeJS no Google Cloud PlatformBackend, app e internet das coisas com NodeJS no Google Cloud Platform
Backend, app e internet das coisas com NodeJS no Google Cloud Platform
Alvaro Viebrantz959 views
Building Real-Time Applications with Android and WebSockets by Sergi Almar i Graupera
Building Real-Time Applications with Android and WebSocketsBuilding Real-Time Applications with Android and WebSockets
Building Real-Time Applications with Android and WebSockets
Startup Safary | Fight against robots with enbrite.ly data platform by Mészáros József
Startup Safary | Fight against robots with enbrite.ly data platformStartup Safary | Fight against robots with enbrite.ly data platform
Startup Safary | Fight against robots with enbrite.ly data platform
Mészáros József897 views
[1C1]Service Workers by NAVER D2
[1C1]Service Workers[1C1]Service Workers
[1C1]Service Workers
NAVER D25.5K views

Similar to Reliably Measuring Responsiveness

Metrics, metrics everywhere (but where the heck do you start?) by
Metrics, metrics everywhere (but where the heck do you start?) Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?) SOASTA
614 views121 slides
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?) by
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)Cliff Crocker
757 views121 slides
Do we need a bigger dev data culture by
Do we need a bigger dev data cultureDo we need a bigger dev data culture
Do we need a bigger dev data cultureSimon Dittlmann
516 views23 slides
When third parties stop being polite... and start getting real by
When third parties stop being polite... and start getting realWhen third parties stop being polite... and start getting real
When third parties stop being polite... and start getting realCharles Vazac
12 views83 slides
When Third Parties Stop Being Polite... and Start Getting Real by
When Third Parties Stop Being Polite... and Start Getting RealWhen Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting RealNicholas Jansma
656 views83 slides
MongoDB World 2019: Don't Break the Camel's Back: Running MongoDB as Hard as ... by
MongoDB World 2019: Don't Break the Camel's Back: Running MongoDB as Hard as ...MongoDB World 2019: Don't Break the Camel's Back: Running MongoDB as Hard as ...
MongoDB World 2019: Don't Break the Camel's Back: Running MongoDB as Hard as ...MongoDB
206 views43 slides

Similar to Reliably Measuring Responsiveness(20)

Metrics, metrics everywhere (but where the heck do you start?) by SOASTA
Metrics, metrics everywhere (but where the heck do you start?) Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
SOASTA 614 views
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?) by Cliff Crocker
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
Velocity NYC: Metrics, metrics everywhere (but where the heck do you start?)
Cliff Crocker757 views
Do we need a bigger dev data culture by Simon Dittlmann
Do we need a bigger dev data cultureDo we need a bigger dev data culture
Do we need a bigger dev data culture
Simon Dittlmann516 views
When third parties stop being polite... and start getting real by Charles Vazac
When third parties stop being polite... and start getting realWhen third parties stop being polite... and start getting real
When third parties stop being polite... and start getting real
Charles Vazac12 views
When Third Parties Stop Being Polite... and Start Getting Real by Nicholas Jansma
When Third Parties Stop Being Polite... and Start Getting RealWhen Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting Real
Nicholas Jansma656 views
MongoDB World 2019: Don't Break the Camel's Back: Running MongoDB as Hard as ... by MongoDB
MongoDB World 2019: Don't Break the Camel's Back: Running MongoDB as Hard as ...MongoDB World 2019: Don't Break the Camel's Back: Running MongoDB as Hard as ...
MongoDB World 2019: Don't Break the Camel's Back: Running MongoDB as Hard as ...
MongoDB206 views
Scaling Experimentation & Data Capture at Grab by Roman
Scaling Experimentation & Data Capture at GrabScaling Experimentation & Data Capture at Grab
Scaling Experimentation & Data Capture at Grab
Roman 458 views
Tool it Up! - Session #2 - NetPanel by toolitup
Tool it Up! - Session #2 - NetPanelTool it Up! - Session #2 - NetPanel
Tool it Up! - Session #2 - NetPanel
toolitup563 views
Large scale data capture and experimentation platform at Grab by Roman
Large scale data capture and experimentation platform at GrabLarge scale data capture and experimentation platform at Grab
Large scale data capture and experimentation platform at Grab
Roman 441 views
Monitoring as Software Validation by BioDec
Monitoring as Software ValidationMonitoring as Software Validation
Monitoring as Software Validation
BioDec1.1K views
Why is this ASP.NET web app running slowly? by Mark Friedman
Why is this ASP.NET web app running slowly?Why is this ASP.NET web app running slowly?
Why is this ASP.NET web app running slowly?
Mark Friedman3.2K views
Metrics, metrics everywhere (but where the heck do you start?) by Tammy Everts
Metrics, metrics everywhere (but where the heck do you start?)Metrics, metrics everywhere (but where the heck do you start?)
Metrics, metrics everywhere (but where the heck do you start?)
Tammy Everts8.7K views
Metrics, Metrics Everywhere (but where the heck do you start?) by SOASTA
Metrics, Metrics Everywhere (but where the heck do you start?)Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)
SOASTA4.3K views
Metrics, Metrics Everywhere (but where the heck do you start?) by SOASTA
Metrics, Metrics Everywhere (but where the heck do you start?)Metrics, Metrics Everywhere (but where the heck do you start?)
Metrics, Metrics Everywhere (but where the heck do you start?)
SOASTA 245 views
Monitoring web application response times^lj a hybrid approach for windows by Mark Friedman
Monitoring web application response times^lj a hybrid approach for windowsMonitoring web application response times^lj a hybrid approach for windows
Monitoring web application response times^lj a hybrid approach for windows
Mark Friedman566 views
ThingMonk 2016 - Concursus Event sourcing for the IOT By Tareq Abedrabbo & Do... by OpenCredo
ThingMonk 2016 - Concursus Event sourcing for the IOT By Tareq Abedrabbo & Do...ThingMonk 2016 - Concursus Event sourcing for the IOT By Tareq Abedrabbo & Do...
ThingMonk 2016 - Concursus Event sourcing for the IOT By Tareq Abedrabbo & Do...
OpenCredo1.8K views
How to Monitor Application Performance in a Container-Based World by Ken Owens
How to Monitor Application Performance in a Container-Based WorldHow to Monitor Application Performance in a Container-Based World
How to Monitor Application Performance in a Container-Based World
Ken Owens471 views
Elasticsearch Performance Testing and Scaling @ Signal by Joachim Draeger
Elasticsearch Performance Testing and Scaling @ SignalElasticsearch Performance Testing and Scaling @ Signal
Elasticsearch Performance Testing and Scaling @ Signal
Joachim Draeger431 views

More from Nicholas Jansma

Modern Metrics (2022) by
Modern Metrics (2022)Modern Metrics (2022)
Modern Metrics (2022)Nicholas Jansma
15 views88 slides
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa... by
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...Nicholas Jansma
232 views41 slides
Measuring the Performance of Single Page Applications by
Measuring the Performance of Single Page ApplicationsMeasuring the Performance of Single Page Applications
Measuring the Performance of Single Page ApplicationsNicholas Jansma
16.7K views74 slides
Javascript Module Patterns by
Javascript Module PatternsJavascript Module Patterns
Javascript Module PatternsNicholas Jansma
7.9K views41 slides
Sails.js Intro by
Sails.js IntroSails.js Intro
Sails.js IntroNicholas Jansma
16.6K views21 slides
Appcelerator Titanium Intro (2014) by
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Nicholas Jansma
7.8K views29 slides

More from Nicholas Jansma(10)

Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa... by Nicholas Jansma
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
Nicholas Jansma232 views
Measuring the Performance of Single Page Applications by Nicholas Jansma
Measuring the Performance of Single Page ApplicationsMeasuring the Performance of Single Page Applications
Measuring the Performance of Single Page Applications
Nicholas Jansma16.7K views
Appcelerator Titanium Intro (2014) by Nicholas Jansma
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
Nicholas Jansma7.8K views
The Happy Path: Migration Strategies for Node.js by Nicholas Jansma
The Happy Path: Migration Strategies for Node.jsThe Happy Path: Migration Strategies for Node.js
The Happy Path: Migration Strategies for Node.js
Nicholas Jansma6.7K views
Using Phing for Fun and Profit by Nicholas Jansma
Using Phing for Fun and ProfitUsing Phing for Fun and Profit
Using Phing for Fun and Profit
Nicholas Jansma3.8K views
Debugging IE Performance Issues with xperf, ETW and NavigationTiming by Nicholas Jansma
Debugging IE Performance Issues with xperf, ETW and NavigationTimingDebugging IE Performance Issues with xperf, ETW and NavigationTiming
Debugging IE Performance Issues with xperf, ETW and NavigationTiming
Nicholas Jansma5.8K views

Recently uploaded

informing ideas.docx by
informing ideas.docxinforming ideas.docx
informing ideas.docxMollyBrown86
12 views10 slides
zotabet.pdf by
zotabet.pdfzotabet.pdf
zotabet.pdfzotabetcasino
6 views1 slide
IETF 118: Starlink Protocol Performance by
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol PerformanceAPNIC
124 views22 slides
Opportunities for Youth in IG - Alena Muravska RIPE NCC.pdf by
Opportunities for Youth in IG - Alena Muravska RIPE NCC.pdfOpportunities for Youth in IG - Alena Muravska RIPE NCC.pdf
Opportunities for Youth in IG - Alena Muravska RIPE NCC.pdfRIPE NCC
9 views12 slides
AI Powered event-driven translation bot by
AI Powered event-driven translation botAI Powered event-driven translation bot
AI Powered event-driven translation botJimmy Dahlqvist
16 views31 slides
Audience profile.pptx by
Audience profile.pptxAudience profile.pptx
Audience profile.pptxMollyBrown86
12 views2 slides

Recently uploaded(20)

IETF 118: Starlink Protocol Performance by APNIC
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol Performance
APNIC124 views
Opportunities for Youth in IG - Alena Muravska RIPE NCC.pdf by RIPE NCC
Opportunities for Youth in IG - Alena Muravska RIPE NCC.pdfOpportunities for Youth in IG - Alena Muravska RIPE NCC.pdf
Opportunities for Youth in IG - Alena Muravska RIPE NCC.pdf
RIPE NCC9 views
AI Powered event-driven translation bot by Jimmy Dahlqvist
AI Powered event-driven translation botAI Powered event-driven translation bot
AI Powered event-driven translation bot
Jimmy Dahlqvist16 views
Serverless cloud architecture patterns by Jimmy Dahlqvist
Serverless cloud architecture patternsServerless cloud architecture patterns
Serverless cloud architecture patterns
Jimmy Dahlqvist17 views
UiPath Document Understanding_Day 3.pptx by UiPathCommunity
UiPath Document Understanding_Day 3.pptxUiPath Document Understanding_Day 3.pptx
UiPath Document Understanding_Day 3.pptx
UiPathCommunity95 views
PORTFOLIO 1 (Bret Michael Pepito).pdf by brejess0410
PORTFOLIO 1 (Bret Michael Pepito).pdfPORTFOLIO 1 (Bret Michael Pepito).pdf
PORTFOLIO 1 (Bret Michael Pepito).pdf
brejess04107 views
google forms survey (1).pptx by MollyBrown86
google forms survey (1).pptxgoogle forms survey (1).pptx
google forms survey (1).pptx
MollyBrown8614 views
We see everywhere that many people are talking about technology.docx by ssuserc5935b
We see everywhere that many people are talking about technology.docxWe see everywhere that many people are talking about technology.docx
We see everywhere that many people are talking about technology.docx
ssuserc5935b6 views
Existing documentaries (1).docx by MollyBrown86
Existing documentaries (1).docxExisting documentaries (1).docx
Existing documentaries (1).docx
MollyBrown8613 views

Reliably Measuring Responsiveness