Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The Architecture of Stack Overflow - Merge Lisb...
Search
Marco Cecconi
September 26, 2014
Programming
430
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The Architecture of Stack Overflow - Merge Lisbon 2014
The Architecture of Stack Overflow slides from Merge Lisbon 2014
Marco Cecconi
September 26, 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
Stack Overflow - it's all about performance
sklivvz
2
740
Guerrilla Programming - code.talks 2014
sklivvz
0
730
The Architecture of Stack Overflow - Info Share 2014
sklivvz
3
690
The Architecture of Stack Overflow - Dev Sum 2014
sklivvz
2
710
The Architecture of Stack Overflow - QCon Japan 2014
sklivvz
2
260
The Architecture of StackOverflow - QCon China 2014
sklivvz
1
300
The Localization of Stack Overflow- QCon China 2014
sklivvz
1
440
Other Decks in Programming
See All in Programming
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
190
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.2k
スマート反転とウェブアクセシビリティ
camiha
0
210
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
500
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
8.3k
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
370
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
220
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
120
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
250
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
160
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
330
Workers Cache を知る
syumai
0
210
Featured
See All Featured
Marketing to machines
jonoalderson
1
5.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
YesSQL, Process and Tooling at Scale
rocio
174
15k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
900
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
260
The Spectacular Lies of Maps
axbom
PRO
1
1k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Typedesign – Prime Four
hannesfritz
42
3.2k
Building an army of robots
kneath
307
46k
How to Talk to Developers About Accessibility
jct
2
550
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Transcript
The Architecture Of Marco Cecconi @sklivvz http://sklivvz.com
Sizing up the problem
None
None
None
*source: Quantcast, Alexa #50-‐ish network for traffic* (between imdb.com
and t.co)
#50-‐ish network for traffic* …and #17 in Portugal!?
*source: Quantcast, Alexa much successful very traffic obrigado, yo!
543,255,552 pageviews in the last 30 days* *source: Quantcast
Our datacenter?
None
web servers load balancers redis search database http(s) http rest
http protobuf sql sql protobuf tag engine
None
We are sNll scaling up!
Our development cycle
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
Network Level Caches (CDN, etc.) Server Level Cache (HttpRuntime.Cache) Site
Level Cache (Redis) SQL Server Database Cache (384 gigs of RAM!) Solid State Disk
None
None
None
RisoQo & SpagheS
None
None
None
None
None
Throwing away risotto… one grain at a time!
Abuse caching for GC performance
IRepository<Order> orderRepository = container.Resolve<IRepository<Order>>();
Order order = orderRepository.Get(35); This is what you think you are doing…
…but if you think about it a bit more…
...this is what you are actually doing! IRepository<Order> repository =
new ValidatingOrderRepository ( new SecurityRepository<Order> ( new LoggingRepository<Order> ( new CachingRepository<Order> ( new NHibernateRepository<Order> () ) ) ) ); Order order = repository.Get(35);
Throwing away spaghetti… one strand at a time!
Dependency InjecNon is our version of spagheS code
Our source code
Few projects :-)
Few projects :-) Few lines of code :-)
Few projects :-) Few lines of code :-) Eeek! very
few tests :-S
Few projects :-) Few lines of code :-) Awesome community
to help :-D Eeek! very few tests :-S
YAGNI* * You Ain’t Gonna Need It!
Libraries and open source
None
None
None
Wrap code in libraries and open source it
None
None
None
“SUPERHERO” CODING
HIRE “NINJA” CODERS
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!