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
Marco Cecconi
November 07, 2014
Programming
730
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
910
L'architettura di Stack Overflow, {codemotion} Milano 2014
sklivvz
0
720
Guerrilla Programming - code.talks 2014
sklivvz
0
730
The Architecture of Stack Overflow - Merge Lisbon 2014
sklivvz
4
430
The Architecture of Stack Overflow - Info Share 2014
sklivvz
3
680
The Architecture of Stack Overflow - Dev Sum 2014
sklivvz
2
700
The Architecture of Stack Overflow - QCon Japan 2014
sklivvz
2
260
The Architecture of StackOverflow - QCon China 2014
sklivvz
1
290
The Localization of Stack Overflow- QCon China 2014
sklivvz
1
440
Other Decks in Programming
See All in Programming
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
180
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
250
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
130
Flow は今どうなっているか
mizdra
PRO
0
820
FDEとは、何者なのか?
masapyon1212
0
110
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
260
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.1k
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
400
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
220
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
110
MySQLとPostgreSQLって何が違うの?
akagami
0
150
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
460
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.6k
Skip the Path - Find Your Career Trail
mkilby
1
210
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
510
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
400
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
510
A Soul's Torment
seathinner
7
3.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
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!