SlideShare a Scribd company logo
Friday, March 7, 14
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/javascript-compiler-deploy
Presented at QCon London
www.qconlondon.com
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Mapping Etsy’s Frontend
Tools and Techniques for
Managing Complexity at Scale
@danielespeset
Friday, March 7, 14
@danielespeset
Seth Walker
Allison McKnight Jonathan Klein
@sethwalker
@aemcknig @jonathanklein
Daniel Espeset
@danielespeset
Brought to you by
Friday, March 7, 14
@danielespeset
Etsy
Friday, March 7, 14
@danielespeset
A global marketplace for
buying and selling unique goods.
Etsy
Friday, March 7, 14
@danielespeset
Friday, March 7, 14
@danielespeset
Friday, March 7, 14
@danielespeset
roughly
180 engineers
Friday, March 7, 14
@danielespeset
50 deploys a day
Friday, March 7, 14
@danielespeset
Deployinator
IRC Push Queue
Friday, March 7, 14
@danielespeset
Anybody can touch anything.
Friday, March 7, 14
@danielespeset
Anybody can touch anything.
try not to break the site
Friday, March 7, 14
@danielespeset
Continuous
Experimentation
Friday, March 7, 14
@danielespeset
Engineers own their code
through the entire stack.
Friday, March 7, 14
@danielespeset
Bootcamps
Friday, March 7, 14
@danielespeset
Our frontend is made up of
300
different “pages”
Friday, March 7, 14
@danielespeset
At any given time we
may be running dozens
of experiments per page
Friday, March 7, 14
@danielespeset
2
12
4,096=
Friday, March 7, 14
@danielespeset
2
12
300 = 1,228,800x
Friday, March 7, 14
@danielespeset
OMG, how do actually
you do anything?
Friday, March 7, 14
@danielespeset
12 month growth of CSS code
last year
992 files
197,812 lines
last week
1,653 files (1.67x)
319,152 lines (1.61x)
Friday, March 7, 14
@danielespeset
12 month growth of JavaScript code
last year
1,451 files
425,915 lines
last week
2,394 files (1.65x)
639,484 lines (1.5x)
Friday, March 7, 14
@danielespeset
Friday, March 7, 14
@danielespeset
sup?
Friday, March 7, 14
@danielespeset
html * #buttons button.button {
modules/buttons.css
Friday, March 7, 14
@danielespeset
html * #buttons button.button {
wtf?
modules/buttons.css
Friday, March 7, 14
@danielespeset
$css/> grep “@import modules/buttons”
Friday, March 7, 14
@danielespeset
$css/> grep “@import modules/buttons”
a/browse.css
a/taxeditor.css
a/taxonomies.css
a/weddings.css
b/modules-responsive.css
b/modules.css
a/orders/refund.css
a/scout/scout.css
c/account/credit-card.css
c/bill/autobilling.css
c/bill/index.css
c/bill/payments.css
c/shop/registration/billing.css
Friday, March 7, 14
@danielespeset
$css/> for ... grep “@import $1” ...
a/browse.css
a/taxeditor.css
a/taxonomies.css
a/weddings.css
b/modules-responsive.css
b/modules.css
a/orders/refund.css
a/scout/scout.css
c/account/credit-card.css
c/bill/autobilling.css
c/bill/index.css
c/bill/payments.css
c/shop/registration/billing.css
base-responsive
base
base_after_inline
Friday, March 7, 14
@danielespeset
$css/> for ... grep “@import $1” ...
a/browse.css
a/taxeditor.css
a/taxonomies.css
a/weddings.css
b/modules-responsive.css
b/modules.css
a/orders/refund.css
a/scout/scout.css
c/account/credit-card.css
c/bill/autobilling.css
c/bill/index.css
c/bill/payments.css
c/shop/registration/billing.css
/base-responsive
/base
/base_after_inline
c/template_editor
c/mini
a/scout/dashboard
Friday, March 7, 14
@danielespeset
$templates/> for ... grep “{% css=$1” ...
a/browse.css
a/taxeditor.css
a/taxonomies.css
a/weddings.css
b/modules-responsive.css
b/modules.css
a/orders/refund.css
a/scout/scout.css
c/account/credit-card.css
c/bill/autobilling.css
c/bill/index.css
c/bill/payments.css
c/shop/registration/billing.css
/base-responsive
/base
/base_after_inline
c/template_editor
c/mini
a/scout/dashboard
wholesale/modules/vendor_avatar
wholesale/modules/address_from_array
wholesale/pages/purchase_order/modules/uneditable_fields/payment_method
wholesale/pages/purchase_order/modules/uneditable_fields/payment_terms
wholesale/pages/purchase_order/modules/uneditable_fields/ship_date
wholesale/pages/purchase_order/modules/uneditable_fields/billing_address
wholesale/pages/purchase_order/modules/uneditable_fields/shipping_address
wholesale/pages/purchase_order/modules/product_grid
modules/time_utils
base
Friday, March 7, 14
@danielespeset
$templates/> for ... grep “{% css=$1” ...
a/browse.css
a/taxeditor.css
a/taxonomies.css
a/weddings.css
b/modules-responsive.css
b/modules.css
a/orders/refund.css
a/scout/scout.css
c/account/credit-card.css
c/bill/autobilling.css
c/bill/index.css
c/bill/payments.css
c/shop/registration/billing.css
/base-responsive
/base
/base_after_inline
c/template_editor
c/mini
a/scout/dashboard
wholesale/modules/vendor_avatar
wholesale/modules/address_from_array
wholesale/pages/purchase_order/modules/uneditable_fields/payment_method
wholesale/pages/purchase_order/modules/uneditable_fields/payment_terms
wholesale/pages/purchase_order/modules/uneditable_fields/ship_date
wholesale/pages/purchase_order/modules/uneditable_fields/billing_address
wholesale/pages/purchase_order/modules/uneditable_fields/shipping_address
wholesale/pages/purchase_order/modules/product_grid
modules/time_utils
base
modules/deferred_clientlogger
modules/jquery
modules/async_analytics_init
notice/experiment_notice
modules/locale/dismissible_link
pages/recommendations/friends/v2/modules/gift-ideas-reminder
header
pages/translator/_modules/md5_overlay
modules/breadcrumbs
pages/browse/_modules/footer
footer
Friday, March 7, 14
@danielespeset
$templates/> for ... grep “{% css=$1” ...
a/browse.css
a/taxeditor.css
a/taxonomies.css
a/weddings.css
b/modules-responsive.css
b/modules.css
a/orders/refund.css
a/scout/scout.css
c/account/credit-card.css
c/bill/autobilling.css
c/bill/index.css
c/bill/payments.css
c/shop/registration/billing.css
/base-responsive
/base
/base_after_inline
c/template_editor
c/mini
a/scout/dashboard
wholesale/modules/vendor_avatar
wholesale/modules/address_from_array
wholesale/pages/purchase_order/modules/uneditable_fields/payment_method
wholesale/pages/purchase_order/modules/uneditable_fields/payment_terms
wholesale/pages/purchase_order/modules/uneditable_fields/ship_date
wholesale/pages/purchase_order/modules/uneditable_fields/billing_address
wholesale/pages/purchase_order/modules/uneditable_fields/shipping_address
wholesale/pages/purchase_order/modules/product_grid
modules/time_utils
base
modules/deferred_clientlogger
modules/jquery
modules/async_analytics_init
notice/experiment_notice
modules/locale/dismissible_link
pages/recommendations/friends/v2/modules/gift-ideas-reminder
header
pages/translator/_modules/md5_overlay
modules/breadcrumbs
pages/browse/_modules/footer
footer
Some/Controller/Class.php
Other/Controller/Class.php
Foo/Controller/Class.php
Bar/Controller/Class.php
Baz/Controller/Class.php
Batman/Controller/Class.php
...
Friday, March 7, 14
@danielespeset
$templates/> for ... grep “{% css=$1” ...
a/browse.css
a/taxeditor.css
a/taxonomies.css
a/weddings.css
b/modules-responsive.css
b/modules.css
a/orders/refund.css
a/scout/scout.css
c/account/credit-card.css
c/bill/autobilling.css
c/bill/index.css
c/bill/payments.css
c/shop/registration/billing.css
/base-responsive
/base
/base_after_inline
c/template_editor
c/mini
a/scout/dashboard
wholesale/modules/vendor_avatar
wholesale/modules/address_from_array
wholesale/pages/purchase_order/modules/uneditable_fields/payment_method
wholesale/pages/purchase_order/modules/uneditable_fields/payment_terms
wholesale/pages/purchase_order/modules/uneditable_fields/ship_date
wholesale/pages/purchase_order/modules/uneditable_fields/billing_address
wholesale/pages/purchase_order/modules/uneditable_fields/shipping_address
wholesale/pages/purchase_order/modules/product_grid
modules/time_utils
base
modules/deferred_clientlogger
modules/jquery
modules/async_analytics_init
notice/experiment_notice
modules/locale/dismissible_link
pages/recommendations/friends/v2/modules/gift-ideas-reminder
header
pages/translator/_modules/md5_overlay
modules/breadcrumbs
pages/browse/_modules/footer
footer
Some/Controller/Class.php
Other/Controller/Class.php
Foo/Controller/Class.php
Bar/Controller/Class.php
Baz/Controller/Class.php
Batman/Controller/Class.php
...
htdocs/my_endpoint.php
htdocs/foo.php
htdocs/other_endpoint.php
htdocs/baz/index.php
htdocs/index.php
Friday, March 7, 14
@danielespeset
$templates/> for ... grep “{% css=$1” ...
a/browse.css
a/taxeditor.css
a/taxonomies.css
a/weddings.css
b/modules-responsive.css
b/modules.css
a/orders/refund.css
a/scout/scout.css
c/account/credit-card.css
c/bill/autobilling.css
c/bill/index.css
c/bill/payments.css
c/shop/registration/billing.css
/base-responsive
/base
/base_after_inline
c/template_editor
c/mini
a/scout/dashboard
wholesale/modules/vendor_avatar
wholesale/modules/address_from_array
wholesale/pages/purchase_order/modules/uneditable_fields/payment_method
wholesale/pages/purchase_order/modules/uneditable_fields/payment_terms
wholesale/pages/purchase_order/modules/uneditable_fields/ship_date
wholesale/pages/purchase_order/modules/uneditable_fields/billing_address
wholesale/pages/purchase_order/modules/uneditable_fields/shipping_address
wholesale/pages/purchase_order/modules/product_grid
modules/time_utils
base
modules/deferred_clientlogger
modules/jquery
modules/async_analytics_init
notice/experiment_notice
modules/locale/dismissible_link
pages/recommendations/friends/v2/modules/gift-ideas-reminder
header
pages/translator/_modules/md5_overlay
modules/breadcrumbs
pages/browse/_modules/footer
footer
Some/Controller/Class.php
Other/Controller/Class.php
Foo/Controller/Class.php
Bar/Controller/Class.php
Baz/Controller/Class.php
Batman/Controller/Class.php
...
htdocs/my_endpoint.php
htdocs/foo.php
htdocs/other_endpoint.php
htdocs/baz/index.php
htdocs/index.php
RewriteRule ^(.*)/ve/(.*)$ $1/voluntary-employee/$2 [L,R=301]
RewriteRule ^(.*)/hsa/(.*)$ $1/health-saving-account/$2 [L,R=301]
 
RewriteCond %{REQUEST_FILENAME} !-f # Existing File
RewriteCond %{REQUEST_FILENAME} !-d # Existing Directory
RewriteRule . /index.php [L]
 
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(subdomain.)?domain.tld/.*$ [NC]
RewriteRule ^.*.(bmp|tif|gif|jpg|jpeg|jpe|png)$ - [F]
Friday, March 7, 14
@danielespeset
CC Image courtesy of Mark Skipper (bitterjug) on Flickr
Halp!
Friday, March 7, 14
@danielespeset
Reasoning about our
frontend is hard.
Friday, March 7, 14
@danielespeset
Deleting code is scary.
Friday, March 7, 14
@danielespeset
Testing changes is difficult.
Friday, March 7, 14
@danielespeset
Mental overhead is a
performance problem.
Friday, March 7, 14
@danielespeset
What are our options?
• Static Analysis
• Synthetic Testing
• Access Logs
• Dynamic Analysis
Friday, March 7, 14
@danielespeset
What are our options?
• Static Analysis
• Synthetic Testing
• Access Logs
• Dynamic Analysis
Friday, March 7, 14
@danielespeset
What are our options?
• Static Analysis
• Synthetic Testing
• Access Logs
• Dynamic Analysis
Friday, March 7, 14
@danielespeset
What are our options?
• Static Analysis
• Synthetic Testing
• Access Logs
• Dynamic Analysis
Friday, March 7, 14
@danielespeset
What are our options?
• Static Analysis
• Synthetic Testing
• Access Logs
• Dynamic Analysis
Friday, March 7, 14
@danielespeset
What are our options?
• Static Analysis
• Synthetic Testing
• Access Logs
• Dynamic Analysis
Friday, March 7, 14
Builda
Friday, March 7, 14
@danielespeset
A brief history of JS loading at Etsy
• <script>
Friday, March 7, 14
@danielespeset
A brief history of JS loading at Etsy
• <script>
• Etsy.loader
Friday, March 7, 14
@danielespeset
A brief history of JS loading at Etsy
• <script>
• Etsy.loader
• //= require
Friday, March 7, 14
@danielespeset
Builda
Loading JS in development
assets/js
<script src="foo.js">
builda.php?name=foo.js
processing
Etsy.loader
// require
Friday, March 7, 14
@danielespeset
Building JS in deploys
bin/builda
Builda
Friday, March 7, 14
@danielespeset
Builda
Building JS in deploys
bin/builda
assets/js
dist/js
processing
Etsy.loader
// require
compiled output
Friday, March 7, 14
@danielespeset
Builda
dist/js
Building JS in deploys
bin/builda
assets/js
processing
Etsy.loader
// require
compiled output
Friday, March 7, 14
@danielespeset
Builda
dist/js
Building JS in deploys
bin/builda
assets/js
processing
Etsy.loader
// require
compiled output
Friday, March 7, 14
@danielespeset
Builda
Building JS in deploys
bin/builda
assets/js
dist/js
Minification
Friday, March 7, 14
@danielespeset
bin/builda
assets/jsBuilda
Building JS in deploys
dist/js
Minification
Friday, March 7, 14
@danielespeset
Building JS in deploys
bin/builda
assets/js
dist/js WWW
Builda
Friday, March 7, 14
@danielespeset
A brief history of JS loading at Etsy
• <script>
• Etsy.loader
• //= require
• AMD (requirejs)
Friday, March 7, 14
@danielespeset
Asyncronous
Module
Definition
Friday, March 7, 14
define(function() {
return function Lightsaber(color) {
this.color = color;
};
});
lightsaber.js
Friday, March 7, 14
define(function() {
return function Lightsaber(color) {
this.color = color;
};
});
lightsaber.js
define(['lightsaber'], function(Lightsaber) {
return function Luke() {
this.lightsaber = new Lightsaber('green');
};
});
luke.js
Friday, March 7, 14
define(function() {
return function Lightsaber(color) {
this.color = color;
};
});
lightsaber.js
define(['lightsaber'], function(Lightsaber) {
return function Luke() {
this.lightsaber = new Lightsaber('green');
};
});
luke.js
require(['plot','luke','vader'], function(plot, Luke,
Vader) {
var luke = new Luke(),
vader = new Vader();
plot.exploreFatherIssues(luke, vader);
});
starwars.js
Friday, March 7, 14
@danielespeset
define(function() {
return function Lightsaber(color) {
this.color = color;
};
});
lightsaber.js
define(['lightsaber'], function(Lightsaber) {
return function Luke() {
this.lightsaber = new Lightsaber('green');
};
});
luke.js
require(['plot','luke','vader'], function(plot, Luke, Vader) {
var luke = new Luke(),
vader = new Vader();
plot.exploreFatherIssues(luke, vader);
});
starwars.js
<script type="text/javascript" src="starwars.js"></script>
Builda
HTTP GET starwars.js
Async loading AMD in development
Friday, March 7, 14
@danielespeset
require(['plot','luke','vader'], function(plot, Luke, Vader) {
define(function() {
return function Lightsaber(color) {
this.color = color;
};
});
lightsaber.js
define(['lightsaber'], function(Lightsaber) {
return function Luke() {
this.lightsaber = new Lightsaber('green');
};
});
luke.js
Async loading AMD in development
Builda
uilda
HTTP GET luke.js
Friday, March 7, 14
@danielespeset
define(function() {
return function Lightsaber(color) {
this.color = color;
};
});
lightsaber.js
define(['lightsaber'], function(Lightsaber) {
Builda
HTTP GET lightsaber.js
Async loading AMD in development
Friday, March 7, 14
@danielespeset
Async loading AMD in development
Friday, March 7, 14
Incorporating AMD into
Builda, phase 1
Friday, March 7, 14
@danielespeset
Building JS with AMD in deploys
bin/builda
Builda assets/js
dist/js
r.jsr.jsr.jsr.js
Friday, March 7, 14
define(function() {
return function Lightsaber(color) {
this.color = color;
};
});
lightsaber.js
define(['lightsaber'], function(Lightsaber) {
return function Luke() {
this.lightsaber = new Lightsaber('green');
};
});
luke.js
require(['plot','luke','vader'], function(plot, Luke,
Vader) {
var luke = new Luke(),
vader = new Vader();
plot.exploreFatherIssues(luke, vader);
});
starwars.js
Friday, March 7, 14
// more modules...
starwars.12345678901234.js
define('lightsaber', function() {
return function Lightsaber(color) {
this.color = color;
};
});
define('luke', ['lightsaber'], function(Lightsaber) {
return function Luke() {
this.lightsaber = new Lightsaber('green');
};
});
require(['plot','luke','vader'], function(plot, Luke,
Vader) {
var luke = new Luke(),
vader = new Vader();
plot.exploreFatherIssues(luke, vader);
});
// more modules...
Friday, March 7, 14
This broke dev-prod
environment parity
Friday, March 7, 14
Also it was crazy slow
Friday, March 7, 14
Builda Revised
Friday, March 7, 14
@danielespeset
AKA taking the
A out of AMD
Friday, March 7, 14
@danielespeset
assets/js
dist/js
Building JS in development
Builda
Friday, March 7, 14
@danielespeset
assets/js
Save foo.js
Building JS in development
Buildadist/js
inotify
IN_CLOSE_WRITE
foo.js
"foo": {
"dependency_of": ["bar", "baz"]
}
Friday, March 7, 14
@danielespeset
Builda
assets/js
dist/js
AMD (r.js)
Etsy.loader
// require
foo.js
Building JS in development
Friday, March 7, 14
@danielespeset
Builda
assets/js
dist/js
AMD (r.js)
Etsy.loader
// require
bar.js
Building JS in development
Friday, March 7, 14
@danielespeset
Builda
assets/js
dist/js
AMD (r.js)
Etsy.loader
// require
baz.js
Building JS in development
Friday, March 7, 14
@danielespeset
assets/js
dist/js
Building JS in development
Builda
HTTP GET foo.js
Friday, March 7, 14
@danielespeset
assets/js
dist/js
Building JS in development
Builda
Friday, March 7, 14
Ranger
Friday, March 7, 14
@danielespeset
Jason Huff Aaron Moodie
@jsnhff @aaronmoodie
Friday, March 7, 14
@danielespeset
Friday, March 7, 14
@danielespeset
CSS
Friday, March 7, 14
@danielespeset
Friday, March 7, 14
@danielespeset
Friday, March 7, 14
@danielespeset
Friday, March 7, 14
@danielespeset
Pages
Friday, March 7, 14
@danielespeset
Friday, March 7, 14
@danielespeset
Friday, March 7, 14
@danielespeset
JavaScript
Friday, March 7, 14
@danielespeset
Friday, March 7, 14
@danielespeset
Friday, March 7, 14
@danielespeset
Ranger is an API
Lodge is a client
Friday, March 7, 14
@danielespeset
Ranger
Friday, March 7, 14
@danielespeset
Ranger
Friday, March 7, 14
@danielespeset
log host
Ranger
WWW
Friday, March 7, 14
@danielespeset
Ranger
log host
WWW
Friday, March 7, 14
@danielespeset
Ranger
rollup
linter
hinter
escomplex
scp stuff
log host
WWW
Friday, March 7, 14
@danielespeset
Ranger
rollup
linter
hinter
escomplex
scp stuff
log host
WWW
Friday, March 7, 14
@danielespeset
Now we know enough
to surface dead files
with confidence
Friday, March 7, 14
@danielespeset
Finding dead code paths
is still hard
Friday, March 7, 14
Shrinkray
Friday, March 7, 14
@danielespeset
Justin Donato Kelly Norton
@justindo @kellegous
Friday, March 7, 14
@danielespeset
Friday, March 7, 14
@danielespeset
What’s next?
• Adding Templates as a resource
Friday, March 7, 14
@danielespeset
What’s next?
• Adding Templates as a resource
• Shrinkray powered delete button
Friday, March 7, 14
@danielespeset
What’s next?
• Adding Templates as a resource
• Shrinkray powered delete button
• Detecting inefficiently grouped code
Friday, March 7, 14
@danielespeset
What’s next?
• Adding Templates as a resource
• Shrinkray powered delete button
• Detecting inefficiently grouped code
• Feature / User-state asset signatures
Friday, March 7, 14
@danielespeset
What’s next?
• Adding Templates as a resource
• Shrinkray powered delete button
• Detecting inefficiently grouped code
• Feature / User-state asset signatures
• Shrinkray for JavaScript
Friday, March 7, 14
@danielespeset
The frontend is getting more
complex everywhere.
Friday, March 7, 14
@danielespeset
We need new strategies to
manage and understand it.
Friday, March 7, 14
@danielespeset
The browser is part of your
distributed system, not
just a client you support.
Friday, March 7, 14
@danielespeset
The more extensible a tool
the more useful it will be.
Friday, March 7, 14
@danielespeset
Thanks!
codeascraft.com
@codeascraft
etsy.github.io
etsy.com/codeascraft/talks
etsy.com/careers
Friday, March 7, 14
Friday, March 7, 14
Watch the video with slide synchronization on
InfoQ.com!
http://www.infoq.com/presentations/javascript
-compiler-deploy

More Related Content

Similar to Mapping Etsy's Front-end

Brightspace South Carolina Connection Opening Session
Brightspace South Carolina Connection Opening SessionBrightspace South Carolina Connection Opening Session
Brightspace South Carolina Connection Opening Session
D2L Barry
 
Philly Tech Fest Publishing
Philly Tech Fest PublishingPhilly Tech Fest Publishing
Open source delivers great digital experiences
Open source delivers great digital experiencesOpen source delivers great digital experiences
Open source delivers great digital experiences
Jeffrey McGuire
 
NativeScript Developer Day Keynote - Todd Anglin & Burke Holland
NativeScript Developer Day Keynote - Todd Anglin & Burke HollandNativeScript Developer Day Keynote - Todd Anglin & Burke Holland
NativeScript Developer Day Keynote - Todd Anglin & Burke Holland
Brian Rinaldi
 
How to Become a Data Scientist – By Ryan Orban, VP of Operations and Expansio...
How to Become a Data Scientist – By Ryan Orban, VP of Operations and Expansio...How to Become a Data Scientist – By Ryan Orban, VP of Operations and Expansio...
How to Become a Data Scientist – By Ryan Orban, VP of Operations and Expansio...
Galvanize
 
Fullstack JavaScript Developer - E-Degree
Fullstack JavaScript Developer - E-DegreeFullstack JavaScript Developer - E-Degree
Fullstack JavaScript Developer - E-Degree
DineshSingh398
 
How To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessHow To Structure Your Search Team for Success
How To Structure Your Search Team for Success
OpenSource Connections
 
Engaging your organisation in an intranet rebuild
Engaging your organisation in an intranet rebuildEngaging your organisation in an intranet rebuild
Engaging your organisation in an intranet rebuild
Rebecca Jackson
 
Internship template for review 1
Internship template for review 1Internship template for review 1
Internship template for review 1
Lahari Gowda
 
API-first Architecture Transformation at Etsy
API-first Architecture Transformation at EtsyAPI-first Architecture Transformation at Etsy
API-first Architecture Transformation at Etsy
C4Media
 
Massively maintained accessibility: WordPress
Massively maintained accessibility: WordPressMassively maintained accessibility: WordPress
Massively maintained accessibility: WordPress
Joseph Dolson
 
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
OW2
 
Ws 16
Ws 16Ws 16
Adapt Webinar on Responsive E-learning | Learning Pool, C&G Kineo, Sponge UK
Adapt Webinar on Responsive E-learning | Learning Pool, C&G Kineo, Sponge UKAdapt Webinar on Responsive E-learning | Learning Pool, C&G Kineo, Sponge UK
Adapt Webinar on Responsive E-learning | Learning Pool, C&G Kineo, Sponge UK
Learning Pool Ltd
 
Adapt Multi-Device Learning Webinar - January 22nd 2014
Adapt Multi-Device Learning Webinar - January 22nd 2014Adapt Multi-Device Learning Webinar - January 22nd 2014
Adapt Multi-Device Learning Webinar - January 22nd 2014
Kineo
 
Google Developer Student Clubs - Brand Guide & Event Kit for Leads (goo.gle_g...
Google Developer Student Clubs - Brand Guide & Event Kit for Leads (goo.gle_g...Google Developer Student Clubs - Brand Guide & Event Kit for Leads (goo.gle_g...
Google Developer Student Clubs - Brand Guide & Event Kit for Leads (goo.gle_g...
Pawar Singh
 
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
DevDay.org
 
Scaling Pinterest
Scaling PinterestScaling Pinterest
Scaling Pinterest
C4Media
 
ION Hangzhou - Opening Remarks
ION Hangzhou - Opening RemarksION Hangzhou - Opening Remarks
ION Hangzhou - Opening Remarks
Deploy360 Programme (Internet Society)
 
MSP Kick-off Meeting
MSP Kick-off MeetingMSP Kick-off Meeting
MSP Kick-off Meeting
UK MSPs
 

Similar to Mapping Etsy's Front-end (20)

Brightspace South Carolina Connection Opening Session
Brightspace South Carolina Connection Opening SessionBrightspace South Carolina Connection Opening Session
Brightspace South Carolina Connection Opening Session
 
Philly Tech Fest Publishing
Philly Tech Fest PublishingPhilly Tech Fest Publishing
Philly Tech Fest Publishing
 
Open source delivers great digital experiences
Open source delivers great digital experiencesOpen source delivers great digital experiences
Open source delivers great digital experiences
 
NativeScript Developer Day Keynote - Todd Anglin & Burke Holland
NativeScript Developer Day Keynote - Todd Anglin & Burke HollandNativeScript Developer Day Keynote - Todd Anglin & Burke Holland
NativeScript Developer Day Keynote - Todd Anglin & Burke Holland
 
How to Become a Data Scientist – By Ryan Orban, VP of Operations and Expansio...
How to Become a Data Scientist – By Ryan Orban, VP of Operations and Expansio...How to Become a Data Scientist – By Ryan Orban, VP of Operations and Expansio...
How to Become a Data Scientist – By Ryan Orban, VP of Operations and Expansio...
 
Fullstack JavaScript Developer - E-Degree
Fullstack JavaScript Developer - E-DegreeFullstack JavaScript Developer - E-Degree
Fullstack JavaScript Developer - E-Degree
 
How To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessHow To Structure Your Search Team for Success
How To Structure Your Search Team for Success
 
Engaging your organisation in an intranet rebuild
Engaging your organisation in an intranet rebuildEngaging your organisation in an intranet rebuild
Engaging your organisation in an intranet rebuild
 
Internship template for review 1
Internship template for review 1Internship template for review 1
Internship template for review 1
 
API-first Architecture Transformation at Etsy
API-first Architecture Transformation at EtsyAPI-first Architecture Transformation at Etsy
API-first Architecture Transformation at Etsy
 
Massively maintained accessibility: WordPress
Massively maintained accessibility: WordPressMassively maintained accessibility: WordPress
Massively maintained accessibility: WordPress
 
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
 
Ws 16
Ws 16Ws 16
Ws 16
 
Adapt Webinar on Responsive E-learning | Learning Pool, C&G Kineo, Sponge UK
Adapt Webinar on Responsive E-learning | Learning Pool, C&G Kineo, Sponge UKAdapt Webinar on Responsive E-learning | Learning Pool, C&G Kineo, Sponge UK
Adapt Webinar on Responsive E-learning | Learning Pool, C&G Kineo, Sponge UK
 
Adapt Multi-Device Learning Webinar - January 22nd 2014
Adapt Multi-Device Learning Webinar - January 22nd 2014Adapt Multi-Device Learning Webinar - January 22nd 2014
Adapt Multi-Device Learning Webinar - January 22nd 2014
 
Google Developer Student Clubs - Brand Guide & Event Kit for Leads (goo.gle_g...
Google Developer Student Clubs - Brand Guide & Event Kit for Leads (goo.gle_g...Google Developer Student Clubs - Brand Guide & Event Kit for Leads (goo.gle_g...
Google Developer Student Clubs - Brand Guide & Event Kit for Leads (goo.gle_g...
 
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
 
Scaling Pinterest
Scaling PinterestScaling Pinterest
Scaling Pinterest
 
ION Hangzhou - Opening Remarks
ION Hangzhou - Opening RemarksION Hangzhou - Opening Remarks
ION Hangzhou - Opening Remarks
 
MSP Kick-off Meeting
MSP Kick-off MeetingMSP Kick-off Meeting
MSP Kick-off Meeting
 

More from C4Media

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
C4Media
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
C4Media
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
C4Media
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
C4Media
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
C4Media
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
C4Media
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
C4Media
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
C4Media
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
C4Media
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
C4Media
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
C4Media
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
C4Media
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
C4Media
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
C4Media
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
C4Media
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
C4Media
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
C4Media
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
C4Media
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
C4Media
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
C4Media
 

More from C4Media (20)

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 

Recently uploaded

GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 

Recently uploaded (20)

GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 

Mapping Etsy's Front-end