Slides of the presentation given in November 2014 at Øredev
Marco Cecconi@sklivvzhttp://sklivvz.com
View Slide
ARCHITECTURE?WHAT THE HECK ISTHAT?
Grew to 130 sites (+20%)Global site rank went from #56 to #44 (-12)
*source: Quantcast, Alexa#50-‐ish network for traffic* (between imdb.com and t.co)
http://stackexchange.com/performance
Agile
BAT!CAVECode-build-test cyclerunning on home machinefeature requests
BAT!CAVE DEV.SOTest on the real serversgit push
BAT!CAVE DEV.SOMETA.SE1-click deployUsers test onmeta.stackexchange.com(“baking”)git push
BAT!CAVE DEV.SOMETA.SE1-click deployHALP!git revertgit push
BAT!CAVE DEV.SONETWORK META.SE1-click deploygit push1-clickdeployIt’s live! Tons of users use it…
BAT!CAVE DEV.SONETWORK META.SE1-click deploygit push1-clickdeploy…andprovide newfeature requests
Move fast and break things* * Not the home page or question page :-)
Abusing caching
Our frienemy: The Garbage Collector
Cache abuse to help GC
Compiler abuse to help GC
IRepository orderRepository = container.Resolve>(); Order order = orderRepository.Get(35);Ye olde dependency injection
IRepository repository = new ValidatingOrderRepository ( new SecurityRepository ( new LoggingRepository ( new CachingRepository ( new NHibernateRepository () ) ) ) ); Order order = repository.Get(35);
Our source code
YAGNI* * You Ain’t Gonna Need It!
Libraries and open source
Wrap code in libraries and open source it
“SUPERHERO” CODING
TOOLS LEVEL: “NINJA”
• Performance is a feature • Always. Be. Shipping. • Use your circumstances. • Open source your libraries • 3 obscenely big monitors. KEY TAKEAWAYS
Marco Cecconi@sklivvzhttp://sklivvz.comwe are hiring new ninjas from anywhere in the world!