SlideShare a Scribd company logo
1 of 84
Download to read offline
You Don’t know Node.js®
Quick Intro to Core Features
Hengki Sihombing
Co-Founder & CTO at Urbanhire
Agenda
• Why use Node.JS
• How it’s work
• Quick Intro Core Features Node
• Node.js at Urbanhire
• Q & A
Slides & Code
Everything: github.com/aredo/tia-pdc-2017
or
Just pdf Slides: goo.gl/4z6TrZ
What the Hell Node.js is
• JavaScript runtime built on Chrome's V8 JavaScript
engine.
• an event-driven
• Asynchronous (libuv)
• Single Threaded but highly Scalable
• Non Buffering
Starting with basics:
Why Use Node.js®
Why Node.js
• Speed Development
• Effective single codebase
• It is a good fit for real-time applications
• Node.js app will take up less system RAM
• Because is Asynchronous
Input/output is one of the
most expensive
type tasks (>CPU)
The cost of I/O ?
• Accessing RAM ~ 250 CPU cycle
• Disk Operations ~ 41 000 000 CPU cycle
- Read a file
- Write a File
• Network I/O ~ 240 000 000 CPU cycles
- Database Query responses
- Http responses
- Memcache results
https://goo.gl/aU4TfP
Node has
non-blocking I/O
PHP Sleep Node.js Sleep
So…,
How Node.js
works?
Blocking Web Server
Non-Blocking Web
Server
Most web applicantion are I/O
Bound not CPU Bound
https://www.slideshare.net/marcusf/nonblocking-io-event-loops-and-nodejs
https://help.dreamhost.com/hc/en-us/articles/215945987-Web-server-performance-comparison
Blocking systems have to
be multi-threaded
Thread per connection
is Expensive
[Multi-threading] is the software
equivalent of a nuclear device because
if it is used incorrectly, it can blow up in
your face.
https://blog.codinghorror.com/threading-concurrency-and-the-most-powerful-psychokinetic-explosive-in-the-univ
Node is single
threaded…and that's
good!
Event Loop
JavaScript has a concurrency model
based on an "event loop". This
model is quite different from models
in other languages like C and Java.
How exactly Event Loop
works?
Bert Belder
Libuv & Node.js Core developer
https://www.youtube.com/watch?v=PNa9OMajw9w
https://goo.gl/aiT9Ga
https://www.youtube.com/watch?v=PNa9OMajw9w
https://www.youtube.com/watch?v=PNa9OMajw9w
https://www.youtube.com/watch?v=PNa9OMajw9w
https://www.youtube.com/watch?v=PNa9OMajw9w
https://www.youtube.com/watch?v=PNa9OMajw9w
Entering Node.js
• Single thread for your code
• … but I/O run in parallel
• Handle thousand of concurrent with single connection
• Need to be careful with CPU-intensive code
But..,
It's still possible
to write
blocking code in
Node.js
Blocking Node.js Code
Blocking Node.js Code
Non-Blocking Node.js Code
Most of Node.js is JavaScript
Node.js !== Browser JavaScript
global || GLOBAL
How to create global variables
(no window in Node.js) ???
global has properties
global.__filename
global.__dirname
global.module
global.require()
global.process or process
with process, you can do…!!
• Access CLI input?
• Get system info: OS, platform, memory usage,
versions, etc.?
• Read env vars (passwords!)?
process.env
process.argv
process.pid
process.cwd()
process.exit()
process.kill()
https://nodejs.org/api/process.html
Who likes and
understands
callbacks?
callbackhell.com
Handling Callback Hell
• Async.js
• Promises (Native, Bluebird, Q)
• Generatos / co module
• async/wait (Node v7 and v8)
How to handle
async errors?
Handling Async Errors
• Event Loop: Async errors are harder to handle/debug,
because system loses context of the error. Then,
application crashes.
• Try/catch is not good enough, but for sync errors
try/catch works fine
Best Practices for Async Errors?
• Listen to all “on error” events
• Listen to uncaughtException
• Use domain (soft deprecated) or AsyncWrap
• Log, log, log & Trace
• Notify (optional)
• Exit & Restart the process
on(‘error’)
Anything that inherits from or creates an instance of the
above: Express, LoopBack, Sails, Hapi, etc.
uncaughtException
uncaughtException is a very crude mechanism for exception
handling. An unhandled exception means your application - and
by extension Node.js itself - is in an undefined state. Blindly
resuming means anything could happen.
How to deal with uncaughtException
• You application shouldn’t have uncaughtexceptions. This is clearly insane.
• You should let your application crash, find uncaught exceptions and fix them.
This is clearly insane.
• You should swallow errors silently. This is what lots of people do and it is bad.
• You should let your application crash, log errors and restart your process with
something like pm2, forever, upstart or monit. This is pragmatic.
• Testing… Testing.. Testing...
uncaughtException Examples
Events
Events are part of core and supported by most of
the core modules while more advanced patterns
such as promises, generators, async/await are
not.
Events == Node Observer Pattern
• Subject
• Observers (event listeners) on a subject
• Event triggers
Events in Node.js
Events in Node.js
Listeners
Problems with Large Data
• Speed: Too slow because has to load all
• Buffer limit: ~1Gb
• Overhyped
Stream
Abstractions for continuous
chunking of data
a stream is a sequence of data elements made available over time.
https://en.wikipedia.org/wiki/Stream_(computing)
No need to wait for
the entire resource to load
Streams Inherit from
Event Emitter
Streams are Everywhere!
• HTTP requests and responses
• Standard input/output (stdin&stdout)
• File reads and writes
List native Node.js objects implement the
streaming interface
Read & Write Steam
Streams and Buffer Demo
Results
Streams Resources
Stream automated workshop: https://github.com/substack/
stream-adventure
$ sudo npm install -g stream-adventure
$ stream-adventure
https://github.com/substack/stream-handbook
How to scale a single
threaded system?
Cluster Usage
• Master: starts workers
• Worker: do the job, e.g., HTTP server
• Number of processes = number of CPUs
Cluster
pm2
https://github.com/Unitech/pm2
http://pm2.keymetrics.io
Advantages:
• Load-balancer and other features
• 0s reload down-time, i.e., forever alive
• Good test coverage
Node.js at Urbanhire
99.5% Urbanhire code
write with Node.js
Use Case
• Express REST API (Microservices)
• Scraping engine
• Realtime Notification
• Streaming data from MongoDB to Elasticserch
• Queue message with NSQ
• Cronjob
One Last Thing
Atwood’s Law
Any application that can be
written in JavaScript,
will eventually be writen in
JavaScript
Codinghorror.com
Thank You
Be a part our Team
https://www.urbanhire.com/careers
"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)

More Related Content

What's hot

What's hot (20)

Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 
Tech io nodejs_20130531_v0.6
Tech io nodejs_20130531_v0.6Tech io nodejs_20130531_v0.6
Tech io nodejs_20130531_v0.6
 
Getting Started with Web Services
Getting Started with Web ServicesGetting Started with Web Services
Getting Started with Web Services
 
Best Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft AzureBest Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft Azure
 
SERVERLESS MIDDLEWARE IN AZURE FUNCTIONS
SERVERLESS MIDDLEWARE IN AZURE FUNCTIONSSERVERLESS MIDDLEWARE IN AZURE FUNCTIONS
SERVERLESS MIDDLEWARE IN AZURE FUNCTIONS
 
Get Started with ASP.NET Core Training, Tutorial - Beginner to Advance
Get Started with ASP.NET Core Training, Tutorial - Beginner to AdvanceGet Started with ASP.NET Core Training, Tutorial - Beginner to Advance
Get Started with ASP.NET Core Training, Tutorial - Beginner to Advance
 
Spinnaker Microsrvices
Spinnaker MicrosrvicesSpinnaker Microsrvices
Spinnaker Microsrvices
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
 
Azure cloud for the web frontend developers
Azure cloud for the web frontend developersAzure cloud for the web frontend developers
Azure cloud for the web frontend developers
 
Kiss.ts - The Keep It Simple Software Stack for 2017++
Kiss.ts - The Keep It Simple Software Stack for 2017++Kiss.ts - The Keep It Simple Software Stack for 2017++
Kiss.ts - The Keep It Simple Software Stack for 2017++
 
Fastest to Mobile with Scalatra + Swagger
Fastest to Mobile with Scalatra + SwaggerFastest to Mobile with Scalatra + Swagger
Fastest to Mobile with Scalatra + Swagger
 
Rik Hepworth - ARM Yourself for Effective Azure Provisioning
Rik Hepworth - ARM Yourself for Effective Azure ProvisioningRik Hepworth - ARM Yourself for Effective Azure Provisioning
Rik Hepworth - ARM Yourself for Effective Azure Provisioning
 
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
 
Vs java (1)
Vs java (1)Vs java (1)
Vs java (1)
 
Mean stack
Mean stackMean stack
Mean stack
 
AtlasCamp 2014: Building a Production Ready Connect Add-on
AtlasCamp 2014: Building a Production Ready Connect Add-onAtlasCamp 2014: Building a Production Ready Connect Add-on
AtlasCamp 2014: Building a Production Ready Connect Add-on
 
The tools & technologies behind Resin.io
The tools & technologies behind Resin.ioThe tools & technologies behind Resin.io
The tools & technologies behind Resin.io
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
 
12-factor-jruby
12-factor-jruby12-factor-jruby
12-factor-jruby
 

Similar to "You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)

T4T Training day - NodeJS
T4T Training day - NodeJST4T Training day - NodeJS
T4T Training day - NodeJS
Tim Sommer
 
Node.js introduction
Node.js introductionNode.js introduction
Node.js introduction
Prasoon Kumar
 
What I learned from FluentConf and then some
What I learned from FluentConf and then someWhat I learned from FluentConf and then some
What I learned from FluentConf and then some
Ohad Kravchick
 

Similar to "You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire) (20)

introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
 
Understand How Node.js and Core Features Works
Understand How Node.js and Core Features WorksUnderstand How Node.js and Core Features Works
Understand How Node.js and Core Features Works
 
Scalable server component using NodeJS & ExpressJS
Scalable server component using NodeJS & ExpressJSScalable server component using NodeJS & ExpressJS
Scalable server component using NodeJS & ExpressJS
 
Introduction to Node JS.pdf
Introduction to Node JS.pdfIntroduction to Node JS.pdf
Introduction to Node JS.pdf
 
Node js internal
Node js internalNode js internal
Node js internal
 
Introduction to node.js aka NodeJS
Introduction to node.js aka NodeJSIntroduction to node.js aka NodeJS
Introduction to node.js aka NodeJS
 
Introduction to Node.js: What, why and how?
Introduction to Node.js: What, why and how?Introduction to Node.js: What, why and how?
Introduction to Node.js: What, why and how?
 
NodeJS Concurrency
NodeJS ConcurrencyNodeJS Concurrency
NodeJS Concurrency
 
20120306 dublin js
20120306 dublin js20120306 dublin js
20120306 dublin js
 
Hello world - intro to node js
Hello world - intro to node jsHello world - intro to node js
Hello world - intro to node js
 
Node.js for beginner
Node.js for beginnerNode.js for beginner
Node.js for beginner
 
T4T Training day - NodeJS
T4T Training day - NodeJST4T Training day - NodeJS
T4T Training day - NodeJS
 
Nodejs
NodejsNodejs
Nodejs
 
JavaScript Event Loop
JavaScript Event LoopJavaScript Event Loop
JavaScript Event Loop
 
18_Node.js.ppt
18_Node.js.ppt18_Node.js.ppt
18_Node.js.ppt
 
Node.js: A Guided Tour
Node.js: A Guided TourNode.js: A Guided Tour
Node.js: A Guided Tour
 
Node.js introduction
Node.js introductionNode.js introduction
Node.js introduction
 
18_Node.js.ppt
18_Node.js.ppt18_Node.js.ppt
18_Node.js.ppt
 
GeekCampSG - Nodejs , Websockets and Realtime Web
GeekCampSG - Nodejs , Websockets and Realtime WebGeekCampSG - Nodejs , Websockets and Realtime Web
GeekCampSG - Nodejs , Websockets and Realtime Web
 
What I learned from FluentConf and then some
What I learned from FluentConf and then someWhat I learned from FluentConf and then some
What I learned from FluentConf and then some
 

More from Tech in Asia ID

More from Tech in Asia ID (20)

Sesi Tech in Asia PDC'21.pdf
Sesi Tech in Asia PDC'21.pdfSesi Tech in Asia PDC'21.pdf
Sesi Tech in Asia PDC'21.pdf
 
"ILO's Work on Skills Development" by Project Coordinators International Labo...
"ILO's Work on Skills Development" by Project Coordinators International Labo..."ILO's Work on Skills Development" by Project Coordinators International Labo...
"ILO's Work on Skills Development" by Project Coordinators International Labo...
 
"Women in STEM: Leveraging Talent in ICT Sector" by Maya Juwita (Executive Di...
"Women in STEM: Leveraging Talent in ICT Sector" by Maya Juwita (Executive Di..."Women in STEM: Leveraging Talent in ICT Sector" by Maya Juwita (Executive Di...
"Women in STEM: Leveraging Talent in ICT Sector" by Maya Juwita (Executive Di...
 
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Ketiga Tahun 2018
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Ketiga Tahun 2018Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Ketiga Tahun 2018
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Ketiga Tahun 2018
 
LinkedIn Pitch Deck
LinkedIn Pitch DeckLinkedIn Pitch Deck
LinkedIn Pitch Deck
 
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Kedua Tahun 2018
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Kedua Tahun 2018Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Kedua Tahun 2018
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Kedua Tahun 2018
 
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Pertama Tahun 2018
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Pertama Tahun 2018Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Pertama Tahun 2018
Laporan Kondisi Pendanaan Startup di Indonesia Kuartal Pertama Tahun 2018
 
Laporan Kondisi Pendanaan Startup di Indonesia Tahun 2017
Laporan Kondisi Pendanaan Startup di Indonesia Tahun 2017Laporan Kondisi Pendanaan Startup di Indonesia Tahun 2017
Laporan Kondisi Pendanaan Startup di Indonesia Tahun 2017
 
"Less Painful iOS Development" by Samuel Edwin (Tokopedia)
"Less Painful iOS Development" by Samuel Edwin (Tokopedia)"Less Painful iOS Development" by Samuel Edwin (Tokopedia)
"Less Painful iOS Development" by Samuel Edwin (Tokopedia)
 
"Product Development Story Loket.com" by Aruna Laksana (Loket.com)
"Product Development Story Loket.com" by Aruna Laksana (Loket.com)"Product Development Story Loket.com" by Aruna Laksana (Loket.com)
"Product Development Story Loket.com" by Aruna Laksana (Loket.com)
 
"Making Data Actionable" by Budiman Rusly (KMK Online)
"Making Data Actionable" by Budiman Rusly (KMK Online)"Making Data Actionable" by Budiman Rusly (KMK Online)
"Making Data Actionable" by Budiman Rusly (KMK Online)
 
"DOKU under the hood : Infrastructure and Cloud Services Technology" by M. T...
"DOKU under the hood :  Infrastructure and Cloud Services Technology" by M. T..."DOKU under the hood :  Infrastructure and Cloud Services Technology" by M. T...
"DOKU under the hood : Infrastructure and Cloud Services Technology" by M. T...
 
Citcall : Real-Time User Verification with Missed-Call Based OTP
Citcall : Real-Time User Verification with Missed-Call Based OTPCitcall : Real-Time User Verification with Missed-Call Based OTP
Citcall : Real-Time User Verification with Missed-Call Based OTP
 
"Functional Programming in a Nutshell" by Adityo Pratomo (Froyo Framework)
"Functional Programming in a Nutshell" by Adityo Pratomo (Froyo Framework)"Functional Programming in a Nutshell" by Adityo Pratomo (Froyo Framework)
"Functional Programming in a Nutshell" by Adityo Pratomo (Froyo Framework)
 
"Building High Performance Search Feature" by Setyo Legowo (UrbanIndo)
"Building High Performance Search Feature" by Setyo Legowo (UrbanIndo)"Building High Performance Search Feature" by Setyo Legowo (UrbanIndo)
"Building High Performance Search Feature" by Setyo Legowo (UrbanIndo)
 
"Building Effective Developer-Designer Relationships" by Ifnu Bima (Blibli.com)
"Building Effective Developer-Designer Relationships" by Ifnu Bima (Blibli.com)"Building Effective Developer-Designer Relationships" by Ifnu Bima (Blibli.com)
"Building Effective Developer-Designer Relationships" by Ifnu Bima (Blibli.com)
 
"Data Informed vs Data Driven" by Casper Sermsuksan (Kulina)
"Data Informed vs Data Driven" by Casper Sermsuksan (Kulina)"Data Informed vs Data Driven" by Casper Sermsuksan (Kulina)
"Data Informed vs Data Driven" by Casper Sermsuksan (Kulina)
 
"Planning Your Analytics Implementation" by Bachtiar Rifai (Kofera Technology)
"Planning Your Analytics Implementation" by Bachtiar Rifai (Kofera Technology)"Planning Your Analytics Implementation" by Bachtiar Rifai (Kofera Technology)
"Planning Your Analytics Implementation" by Bachtiar Rifai (Kofera Technology)
 
"How To Build and Lead a Winning Data Team" by Cahyo Listyanto (Bizzy.co.id)
"How To Build and Lead a Winning Data Team" by Cahyo Listyanto (Bizzy.co.id)"How To Build and Lead a Winning Data Team" by Cahyo Listyanto (Bizzy.co.id)
"How To Build and Lead a Winning Data Team" by Cahyo Listyanto (Bizzy.co.id)
 
"How Scrum Motivates People" by Rudy Rahadian (XL Axiata)
"How Scrum Motivates People" by Rudy Rahadian (XL Axiata)"How Scrum Motivates People" by Rudy Rahadian (XL Axiata)
"How Scrum Motivates People" by Rudy Rahadian (XL Axiata)
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)