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
Stack Overflow - it's all about performance
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Marco Cecconi
November 07, 2014
Programming
730
2
Share
Stack Overflow - it's all about performance
Slides of the presentation given in November 2014 at Øredev
Marco Cecconi
November 07, 2014
More Decks by Marco Cecconi
See All by Marco Cecconi
Stack Overflow - It's all about performance - Codemotion Rome 2015
sklivvz
0
900
L'architettura di Stack Overflow, {codemotion} Milano 2014
sklivvz
0
700
Guerrilla Programming - code.talks 2014
sklivvz
0
700
The Architecture of Stack Overflow - Merge Lisbon 2014
sklivvz
4
420
The Architecture of Stack Overflow - Info Share 2014
sklivvz
3
670
The Architecture of Stack Overflow - Dev Sum 2014
sklivvz
2
680
The Architecture of Stack Overflow - QCon Japan 2014
sklivvz
2
250
The Architecture of StackOverflow - QCon China 2014
sklivvz
1
270
The Localization of Stack Overflow- QCon China 2014
sklivvz
1
430
Other Decks in Programming
See All in Programming
GoogleCloudとterraform完全に理解した
terisuke
1
200
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
350
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
3
1.1k
AI時代のエンジニアリングの原則 / Engineering Principles in the AI Era
haru860
0
1.2k
ハーネスエンジニアリングとは?
kinopeee
13
7k
実用!Hono RPC2026
yodaka
2
320
リセットCSSを1行消したらアクセシビリティが向上した話
pvcresin
4
520
KMP × Kotlin 2.3 - How Android Got Slower While iOS Builds Improved by 47%
rio432
0
200
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
3.1k
Are We Really Coding 10× Faster with AI?
kohzas
0
180
書き換えて学ぶTemporal #fukts
pirosikick
2
380
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
390
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.6k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Site-Speed That Sticks
csswizardry
13
1.2k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
180
sira's awesome portfolio website redesign presentation
elsirapls
0
240
Ruling the World: When Life Gets Gamed
codingconduct
0
230
So, you think you're a good person
axbom
PRO
2
2k
SEO for Brand Visibility & Recognition
aleyda
0
4.5k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
690
GraphQLとの向き合い方2022年版
quramy
50
15k
Being A Developer After 40
akosma
91
590k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
230
Transcript
Marco Cecconi @sklivvz http://sklivvz.com
ARCHITECTURE? WHAT THE HECK IS THAT?
None
None
Grew to 130 sites (+20%) Global site rank went from
#56 to #44 (-12)
None
*source: Quantcast, Alexa #50-‐ish network for traffic* (between imdb.com
and t.co)
None
None
None
None
None
None
None
None
None
None
None
None
None
http://stackexchange.com/performance
Agile
BAT!CAVE Code-build-test cycle running on home machine feature requests
BAT!CAVE DEV.SO Test on the real servers git push
BAT!CAVE DEV.SO META.SE 1-click deploy Users test on meta.stackexchange.com (“baking”)
git push
BAT!CAVE DEV.SO META.SE 1-click deploy HALP! git revert git push
BAT!CAVE DEV.SO NETWORK META.SE 1-click deploy git push 1-click deploy
It’s live! Tons of users use it…
BAT!CAVE DEV.SO NETWORK META.SE 1-click deploy git push 1-click deploy
…and provide new feature requests
Move fast and break things* * Not the home
page or question page :-)
Move fast and break things* * Not the home
page or question page :-)
Abusing caching
None
None
None
Our frienemy: The Garbage Collector
None
None
None
None
None
None
Cache abuse to help GC
None
None
Compiler abuse to help GC
None
None
None
None
IRepository<Order> orderRepository = container.Resolve<IRepository<Order>>();
Order order = orderRepository.Get(35); Ye olde dependency injection
None
IRepository<Order> repository = new ValidatingOrderRepository (
new SecurityRepository<Order> ( new LoggingRepository<Order> ( new CachingRepository<Order> ( new NHibernateRepository<Order> () ) ) ) ); Order order = repository.Get(35);
Our source code
None
None
None
None
None
None
YAGNI* * You Ain’t Gonna Need It!
Libraries and open source
None
None
None
Wrap code in libraries and open source it
None
None
“SUPERHERO” CODING
None
TOOLS LEVEL: “NINJA”
• Performance is a feature • Always.
Be. Shipping. • Use your circumstances. • Open source your libraries • 3 obscenely big monitors. KEY TAKEAWAYS
None
Marco Cecconi @sklivvz http://sklivvz.com we are hiring new ninjas from
anywhere in the world!