SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Optimizing for change:
            Taking risks safely & e-commerce


                Kellan Elliott-McCrea
                @kellan
                CTO, Etsy




Monday, October 8, 12
Monday, October 8, 12
Launched June 18, 2005 in Brooklyn
                        875,000 monthly active sellers
                        33.5MM items for sale
                        $525MM in sales in 2011
                        1.43B page views, in Aug
                        102 engineers
                        74 releases, yesterday



Monday, October 8, 12
Take more risks.
                        Build a better software.
                            Have more fun.



Monday, October 8, 12
“Sure that works when you’re
                building social software but
                what about a real business
                with $$$ involved?”
                - everybody always


Monday, October 8, 12
Continuous
   Deployment:
                         small changes,
                        pushed frequently

Monday, October 8, 12
you can’t avoid making
   mistakes
                  you can avoid making
                      BIG mistakes

Monday, October 8, 12
What are you optimizing for?



                        MTTR                      MTBF




Monday, October 8, 12
MTTR   MTBF

Monday, October 8, 12
4 core techniques:
       1. Put a Button On It
       2. Branch in Code
       3. Trunk is Always Deployable
       4. Dark/Incremental Launches


Monday, October 8, 12
Put a Button On It.

Monday, October 8, 12
Branch in code:
       use features flags
       4 core techniques:
       if ($cfg[‘awesome_new_search’]) {
           # new hotness
           $rsp = do_solr();
       } else {
           # boring old stuff
           $rsp = do_grep();
       }




Monday, October 8, 12
Branch in code:
       use features flags
       4 core techniques:
       for free you get:
       1% launches
       admin only launches
       dark launches
       split tests
Monday, October 8, 12
any engineer can launch an
   experiment to
      1% of users



   57 experiments live right now
Monday, October 8, 12
Metrics driven development


       measure everything!
       feedback loops!


Monday, October 8, 12
Engineers love to measure

       make it ridiculously
       easy


Monday, October 8, 12
Metrics driven development


    StatsD::timing("page.render", $msec);




Monday, October 8, 12
Metrics driven development




Monday, October 8, 12
Metrics aren’t optional

       a feature isn’t done
       without metrics


Monday, October 8, 12
Make metrics visible

       remove the
       passwords


Monday, October 8, 12
Some tools:

             Graphite, Ganglia, Logster*,
             StatsD*, event beacons, log
             files, EMR, Vertica, Splunk



Monday, October 8, 12
Getting started? Use StatsD

       StatsD @
       Instagram, Pinterest, Github,
       Mozilla, LAN.com, Zynga,
       Kickstarter, LivingSocial and 70+
       other companies


Monday, October 8, 12
Step 1: your 5 core metrics:

       @ Etsy:
       sign ups, logins, checkout, new
       listings, posts in the bugs forums




Monday, October 8, 12
Who watches the graphs?




Monday, October 8, 12
Automate your analysis



                        USE COMPUTERS!



Monday, October 8, 12
Automate your analysis

                        holtWintersConfidence(Upper|Lower)




Monday, October 8, 12
Automate your analysis
            continuous integration:
            unit tests, coding standards,
            static analysis, risky code paths




Monday, October 8, 12
Make effective security easy
        by default

                           Make insecure
                        patterns “grep-able”




Monday, October 8, 12
Actively monitor for attacks.


                        Spikes in 500s and failed
                        logins are your first clue.




Monday, October 8, 12
“I discovered the vuln late Friday afternoon and wasn't
       quite ready to email it to them. Saturday morning, I
       confirmed the hole was still there and fixed a few bugs
       with my demo.
       I had my girlfriend test it from her house. It didn't work
       for her. I tested again and it had stopped working for
       me. Sure enough, it was now properly sanitized and
       had the correct JSON MIME type.
       The following Monday I received a response thanking
       me for reporting it, and telling me I was right. “




Monday, October 8, 12
Treat independent security
                         researches with respect.




Monday, October 8, 12
“Culture eats
                         strategy
                         for breakfast”*




                          (*possibly apocryphal)
Monday, October 8, 12
Thank you!



Monday, October 8, 12

Weitere ähnliche Inhalte

Ähnlich wie Optimizing for change: Taking risks safely & e-commerce

5 Principles of Data Management
5 Principles of Data Management5 Principles of Data Management
5 Principles of Data ManagementPaul Bradshaw
 
SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...Phil Calçado
 
Optimizing for change: Taking risks safely & e-commerce
Optimizing for change: Taking risks safely & e-commerceOptimizing for change: Taking risks safely & e-commerce
Optimizing for change: Taking risks safely & e-commerceKellan
 
More women in engineering: Something that ACTUALLY WORKED.
More women in engineering: Something that ACTUALLY WORKED.More women in engineering: Something that ACTUALLY WORKED.
More women in engineering: Something that ACTUALLY WORKED.Kellan
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous DeliveryJez Humble
 
Engineering Change
Engineering ChangeEngineering Change
Engineering ChangeKellan
 
Engineering culture
Engineering cultureEngineering culture
Engineering culturePamela Fox
 
Big Data, Big Changes: Data-Driven Product Development at Etsy
Big Data, Big Changes: Data-Driven Product Development at EtsyBig Data, Big Changes: Data-Driven Product Development at Etsy
Big Data, Big Changes: Data-Driven Product Development at EtsyJason Davis
 
Continuous delivery a happier, safer alternative to release trains
Continuous delivery   a happier, safer alternative to release trainsContinuous delivery   a happier, safer alternative to release trains
Continuous delivery a happier, safer alternative to release trainsThoughtworks
 
HOW TO DO AI IN 2013 from Roadmap 2012
HOW TO DO AI IN 2013 from Roadmap 2012HOW TO DO AI IN 2013 from Roadmap 2012
HOW TO DO AI IN 2013 from Roadmap 2012Gigaom
 
Putting the Magic in Data Science
Putting the Magic in Data SciencePutting the Magic in Data Science
Putting the Magic in Data ScienceSean Taylor
 
Why we are getting better at catching nation-state sponsored malware
Why we are getting better at catching nation-state sponsored malwareWhy we are getting better at catching nation-state sponsored malware
Why we are getting better at catching nation-state sponsored malwarePositive Hack Days
 
A living hell - lessons learned in eight years of parsing real estate data
A living hell - lessons learned in eight years of parsing real estate data  A living hell - lessons learned in eight years of parsing real estate data
A living hell - lessons learned in eight years of parsing real estate data lokku
 
A New Model for Creative Campaigns: Open Source
A New Model for Creative Campaigns: Open SourceA New Model for Creative Campaigns: Open Source
A New Model for Creative Campaigns: Open SourceDigiday
 
BSidesLV 2013 - Using Machine Learning to Support Information Security
BSidesLV 2013 - Using Machine Learning to Support Information SecurityBSidesLV 2013 - Using Machine Learning to Support Information Security
BSidesLV 2013 - Using Machine Learning to Support Information SecurityAlex Pinto
 
Technical Debt
Technical DebtTechnical Debt
Technical DebtKmanthei
 
Data Science An Engineering Implementation Perspective
Data Science An Engineering Implementation PerspectiveData Science An Engineering Implementation Perspective
Data Science An Engineering Implementation PerspectiveLalit Mohan Chandra Bhatt
 
Workshop, social media bestaan niet
Workshop, social media bestaan nietWorkshop, social media bestaan niet
Workshop, social media bestaan nietIVRM
 
Data Driven Security, from Gartner Security Summit 2012
Data Driven Security, from Gartner Security Summit 2012Data Driven Security, from Gartner Security Summit 2012
Data Driven Security, from Gartner Security Summit 2012Nick Galbreath
 
NCDevCon2012_designing the mobile experience
NCDevCon2012_designing the mobile experienceNCDevCon2012_designing the mobile experience
NCDevCon2012_designing the mobile experienceDee Sadler
 

Ähnlich wie Optimizing for change: Taking risks safely & e-commerce (20)

5 Principles of Data Management
5 Principles of Data Management5 Principles of Data Management
5 Principles of Data Management
 
SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...SpeakerConf: my findings in trying to use this functional programming busines...
SpeakerConf: my findings in trying to use this functional programming busines...
 
Optimizing for change: Taking risks safely & e-commerce
Optimizing for change: Taking risks safely & e-commerceOptimizing for change: Taking risks safely & e-commerce
Optimizing for change: Taking risks safely & e-commerce
 
More women in engineering: Something that ACTUALLY WORKED.
More women in engineering: Something that ACTUALLY WORKED.More women in engineering: Something that ACTUALLY WORKED.
More women in engineering: Something that ACTUALLY WORKED.
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Engineering Change
Engineering ChangeEngineering Change
Engineering Change
 
Engineering culture
Engineering cultureEngineering culture
Engineering culture
 
Big Data, Big Changes: Data-Driven Product Development at Etsy
Big Data, Big Changes: Data-Driven Product Development at EtsyBig Data, Big Changes: Data-Driven Product Development at Etsy
Big Data, Big Changes: Data-Driven Product Development at Etsy
 
Continuous delivery a happier, safer alternative to release trains
Continuous delivery   a happier, safer alternative to release trainsContinuous delivery   a happier, safer alternative to release trains
Continuous delivery a happier, safer alternative to release trains
 
HOW TO DO AI IN 2013 from Roadmap 2012
HOW TO DO AI IN 2013 from Roadmap 2012HOW TO DO AI IN 2013 from Roadmap 2012
HOW TO DO AI IN 2013 from Roadmap 2012
 
Putting the Magic in Data Science
Putting the Magic in Data SciencePutting the Magic in Data Science
Putting the Magic in Data Science
 
Why we are getting better at catching nation-state sponsored malware
Why we are getting better at catching nation-state sponsored malwareWhy we are getting better at catching nation-state sponsored malware
Why we are getting better at catching nation-state sponsored malware
 
A living hell - lessons learned in eight years of parsing real estate data
A living hell - lessons learned in eight years of parsing real estate data  A living hell - lessons learned in eight years of parsing real estate data
A living hell - lessons learned in eight years of parsing real estate data
 
A New Model for Creative Campaigns: Open Source
A New Model for Creative Campaigns: Open SourceA New Model for Creative Campaigns: Open Source
A New Model for Creative Campaigns: Open Source
 
BSidesLV 2013 - Using Machine Learning to Support Information Security
BSidesLV 2013 - Using Machine Learning to Support Information SecurityBSidesLV 2013 - Using Machine Learning to Support Information Security
BSidesLV 2013 - Using Machine Learning to Support Information Security
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
 
Data Science An Engineering Implementation Perspective
Data Science An Engineering Implementation PerspectiveData Science An Engineering Implementation Perspective
Data Science An Engineering Implementation Perspective
 
Workshop, social media bestaan niet
Workshop, social media bestaan nietWorkshop, social media bestaan niet
Workshop, social media bestaan niet
 
Data Driven Security, from Gartner Security Summit 2012
Data Driven Security, from Gartner Security Summit 2012Data Driven Security, from Gartner Security Summit 2012
Data Driven Security, from Gartner Security Summit 2012
 
NCDevCon2012_designing the mobile experience
NCDevCon2012_designing the mobile experienceNCDevCon2012_designing the mobile experience
NCDevCon2012_designing the mobile experience
 

Mehr von Kellan

More women in engineering: Something that ACTUALLY WORKED.
More women in engineering: Something that ACTUALLY WORKED.More women in engineering: Something that ACTUALLY WORKED.
More women in engineering: Something that ACTUALLY WORKED.Kellan
 
Future of handmade
Future of handmadeFuture of handmade
Future of handmadeKellan
 
Architecting for Change: QCONNYC 2012
Architecting for Change: QCONNYC 2012Architecting for Change: QCONNYC 2012
Architecting for Change: QCONNYC 2012Kellan
 
Metrics driven engineering (velocity 2011)
Metrics driven engineering (velocity 2011)Metrics driven engineering (velocity 2011)
Metrics driven engineering (velocity 2011)Kellan
 
Solving the "Brooklyn Problem"
Solving the "Brooklyn Problem" Solving the "Brooklyn Problem"
Solving the "Brooklyn Problem" Kellan
 
Social Software For Robots
Social Software For RobotsSocial Software For Robots
Social Software For RobotsKellan
 
Beyond REST? Building data services with XMPP
Beyond REST? Building data services with XMPPBeyond REST? Building data services with XMPP
Beyond REST? Building data services with XMPPKellan
 
Advanced OAuth Wrangling
Advanced OAuth WranglingAdvanced OAuth Wrangling
Advanced OAuth WranglingKellan
 
Casual Privacy (Ignite Web2.0 Expo)
Casual Privacy (Ignite Web2.0 Expo)Casual Privacy (Ignite Web2.0 Expo)
Casual Privacy (Ignite Web2.0 Expo)Kellan
 

Mehr von Kellan (9)

More women in engineering: Something that ACTUALLY WORKED.
More women in engineering: Something that ACTUALLY WORKED.More women in engineering: Something that ACTUALLY WORKED.
More women in engineering: Something that ACTUALLY WORKED.
 
Future of handmade
Future of handmadeFuture of handmade
Future of handmade
 
Architecting for Change: QCONNYC 2012
Architecting for Change: QCONNYC 2012Architecting for Change: QCONNYC 2012
Architecting for Change: QCONNYC 2012
 
Metrics driven engineering (velocity 2011)
Metrics driven engineering (velocity 2011)Metrics driven engineering (velocity 2011)
Metrics driven engineering (velocity 2011)
 
Solving the "Brooklyn Problem"
Solving the "Brooklyn Problem" Solving the "Brooklyn Problem"
Solving the "Brooklyn Problem"
 
Social Software For Robots
Social Software For RobotsSocial Software For Robots
Social Software For Robots
 
Beyond REST? Building data services with XMPP
Beyond REST? Building data services with XMPPBeyond REST? Building data services with XMPP
Beyond REST? Building data services with XMPP
 
Advanced OAuth Wrangling
Advanced OAuth WranglingAdvanced OAuth Wrangling
Advanced OAuth Wrangling
 
Casual Privacy (Ignite Web2.0 Expo)
Casual Privacy (Ignite Web2.0 Expo)Casual Privacy (Ignite Web2.0 Expo)
Casual Privacy (Ignite Web2.0 Expo)
 

Optimizing for change: Taking risks safely & e-commerce

  • 1. Optimizing for change: Taking risks safely & e-commerce Kellan Elliott-McCrea @kellan CTO, Etsy Monday, October 8, 12
  • 3. Launched June 18, 2005 in Brooklyn 875,000 monthly active sellers 33.5MM items for sale $525MM in sales in 2011 1.43B page views, in Aug 102 engineers 74 releases, yesterday Monday, October 8, 12
  • 4. Take more risks. Build a better software. Have more fun. Monday, October 8, 12
  • 5. “Sure that works when you’re building social software but what about a real business with $$$ involved?” - everybody always Monday, October 8, 12
  • 6. Continuous Deployment: small changes, pushed frequently Monday, October 8, 12
  • 7. you can’t avoid making mistakes you can avoid making BIG mistakes Monday, October 8, 12
  • 8. What are you optimizing for? MTTR MTBF Monday, October 8, 12
  • 9. MTTR MTBF Monday, October 8, 12
  • 10. 4 core techniques: 1. Put a Button On It 2. Branch in Code 3. Trunk is Always Deployable 4. Dark/Incremental Launches Monday, October 8, 12
  • 11. Put a Button On It. Monday, October 8, 12
  • 12. Branch in code: use features flags 4 core techniques: if ($cfg[‘awesome_new_search’]) { # new hotness $rsp = do_solr(); } else { # boring old stuff $rsp = do_grep(); } Monday, October 8, 12
  • 13. Branch in code: use features flags 4 core techniques: for free you get: 1% launches admin only launches dark launches split tests Monday, October 8, 12
  • 14. any engineer can launch an experiment to 1% of users 57 experiments live right now Monday, October 8, 12
  • 15. Metrics driven development measure everything! feedback loops! Monday, October 8, 12
  • 16. Engineers love to measure make it ridiculously easy Monday, October 8, 12
  • 17. Metrics driven development StatsD::timing("page.render", $msec); Monday, October 8, 12
  • 19. Metrics aren’t optional a feature isn’t done without metrics Monday, October 8, 12
  • 20. Make metrics visible remove the passwords Monday, October 8, 12
  • 21. Some tools: Graphite, Ganglia, Logster*, StatsD*, event beacons, log files, EMR, Vertica, Splunk Monday, October 8, 12
  • 22. Getting started? Use StatsD StatsD @ Instagram, Pinterest, Github, Mozilla, LAN.com, Zynga, Kickstarter, LivingSocial and 70+ other companies Monday, October 8, 12
  • 23. Step 1: your 5 core metrics: @ Etsy: sign ups, logins, checkout, new listings, posts in the bugs forums Monday, October 8, 12
  • 24. Who watches the graphs? Monday, October 8, 12
  • 25. Automate your analysis USE COMPUTERS! Monday, October 8, 12
  • 26. Automate your analysis holtWintersConfidence(Upper|Lower) Monday, October 8, 12
  • 27. Automate your analysis continuous integration: unit tests, coding standards, static analysis, risky code paths Monday, October 8, 12
  • 28. Make effective security easy by default Make insecure patterns “grep-able” Monday, October 8, 12
  • 29. Actively monitor for attacks. Spikes in 500s and failed logins are your first clue. Monday, October 8, 12
  • 30. “I discovered the vuln late Friday afternoon and wasn't quite ready to email it to them. Saturday morning, I confirmed the hole was still there and fixed a few bugs with my demo. I had my girlfriend test it from her house. It didn't work for her. I tested again and it had stopped working for me. Sure enough, it was now properly sanitized and had the correct JSON MIME type. The following Monday I received a response thanking me for reporting it, and telling me I was right. “ Monday, October 8, 12
  • 31. Treat independent security researches with respect. Monday, October 8, 12
  • 32. “Culture eats strategy for breakfast”* (*possibly apocryphal) Monday, October 8, 12