Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The Road to Node
Search
Guille Paz
October 28, 2017
Programming
0
230
The Road to Node
The Road to Node (at a big company).
Guille Paz
October 28, 2017
Tweet
Share
More Decks by Guille Paz
See All by Guille Paz
No me robes el Scroll!
pazguille
0
230
User First
pazguille
1
190
#OfflineFirst
pazguille
3
5.9k
ES6 in Production
pazguille
10
3.1k
No me hagas esperar!
pazguille
1
160
CSS Sprites vs. Data URIs
pazguille
0
430
Hello, Style Guides!
pazguille
0
260
Decoupling your JavaScript
pazguille
0
170
Progressive Enhancement - Is it still important?
pazguille
0
120
Other Decks in Programming
See All in Programming
CSC509 Lecture 02
javiergs
PRO
0
400
Your Perfect Project Setup for Angular @BASTA! 2025 in Mainz
manfredsteyer
PRO
0
110
大規模アプリのDIフレームワーク刷新戦略 ~過去最大規模の並行開発を止めずにアプリ全体に導入するまで~
mot_techtalk
0
360
パフォーマンスチューニングで Web 技術を深掘り直す
progfay
18
4.8k
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
220
ИИ-Агенты в каждый дом – Алексей Порядин, PythoNN
sobolevn
0
150
CSC509 Lecture 01
javiergs
PRO
1
430
CSS Linter の現在地 2025年のベストプラクティスを探る
ryo_manba
10
3.2k
Let's Write a Train Tracking Algorithm
twocentstudios
0
220
プロダクト開発をAI 1stに変革する〜SaaS is dead時代で生き残るために〜 / AI 1st Product Development
kobakei
0
450
AccessorySetupKitで実現するシームレスなペアリング体験 / Seamless pairing with AccessorySetupKit
nekowen
0
210
GitHub Actions × AWS OIDC連携の仕組みと経緯を理解する
ota1022
0
230
Featured
See All Featured
The Language of Interfaces
destraynor
162
25k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
GraphQLとの向き合い方2022年版
quramy
49
14k
The World Runs on Bad Software
bkeepers
PRO
71
11k
Done Done
chrislema
185
16k
Side Projects
sachag
455
43k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
The Straight Up "How To Draw Better" Workshop
denniskardys
237
140k
RailsConf 2023
tenderlove
30
1.2k
Transcript
The Road to Node at a big company
- I’m Guille Paz - Frontend developer - Tech Lead
at Mercado Libre @pazguille (twitter / github) Hi!
Mercado Libre
Largest e-commerce ecosystem in Latin America
None
~ 1500 developers
~ 1500 developers ~ 4600 repositories
~ 1500 developers ~ 4600 repositories ~ 300 deploys per
day
~ 1500 developers ~ 4600 repositories ~ 300 deploys per
day ~ 800 frontend apps
~ 1500 developers ~ 4600 repositories ~ 300 deploys per
day ~ 800 frontend apps ~ 3 Million rpm
~ 1500 developers ~ 4600 repositories ~ 300 deploys per
day ~ 800 frontend apps ~ 3 Million rpm ~ 900 coffees per day
Back to 2016
Frontend Frontend developers Backend developers
Frontend
Frontend Access Data UI Logic Business Logic Build assets Auth
i18n e2e testing ...
TOO many Technologies
TOO many Responsibilities
It’s a kilombo!
“The world is changing and we must change with it.”
- Ragnar Lothbrok
Hey Guille, coffee? Hey, what's happened? Nothing, just running grails
run-app... Sure! I have 10-15 mins.
New Team Frontend Core
We made Big decisions!
Node is the new UI Layer
Frontend Middleend UI Layer Business Logic
Frontend API API Middleend
Frontend API API Middleend Mobile Native
None
The new frontend stack
None
LTS version
None
None
None
ES6 Modules vs CommonJS
None
None
Use ES Features and don’t transpile the server.
node.green
None
six-speed
None
Use ES Stable Features and don’t transpile the server.
None
Shared Version
Default Middlewares
Authentication Device Detection Security Default Middlewares
Default Routes (“/ping”)
An Express Instance on Steroids
Routers (“mini-applications”)
Start Server (development vs production)
None
Using React Is A Business Decision, Not A Technology Choice.
- Eric Baer
Server-Side Rendering
React on the Server
Only transpile JSX in runtime
JSX (template engine)
res.render(‘View.js, props);
None
Render React Middleware
Override res.render( ).
res.render(<View />, props);
Universal UI Components
Universal Views
React on the Server & Client
None
Hey Guille, coffee? Hey, what's happened? Nothing, just running npm
install... Sure! I have 2-3 mins.
None
None
nordic & nordic-dev packages
None
None
react-router on the server
None
None
[email protected]
async hooks (onEnter ) are defined globally
None
None
process.env
It’s not a normal JavaScript object...
Server rendering is slower...
cache all the values!
React 16
Takeaway
⇢ Knows your dependencies ⇢ Node is the new UI
Layer ⇢ New roles and responsibilities ⇢ ~ 126 coffees per day (86% real) ⇢ Today we feel like...
None
None
Thank you! @pazguille