Cheap tricks for startups

  • 3,617 views
Uploaded on

My talk from Monki Gras 2013.

My talk from Monki Gras 2013.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
3,617
On Slideshare
0
From Embeds
0
Number of Embeds
5

Actions

Shares
Downloads
31
Comments
1
Likes
9

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Lanyrd.comCheap tricks for Startups Simon Willison @simonw Monki Gras, 31st January 2013 http://lanyrd.com/sccqcy
  • 2. Early-stagestartup engineering is different
  • 3. What are the quickest tools tobuild that provide the most value?
  • 4. Cheap experimentation
  • 5. FEATURE_FLAGS = { new_maps: Uses MapBox rather than Google, login_picker: /signin/ page with picker, login_linkedin: Sign in with LinkedIn, # ...}
  • 6. @login_required@flag_required(topic_tracking)def topic_track(request, slug): topic = get_object_or_404(Topic, slug=slug) # ... if user.has_flag(topic_enhancements): # ...
  • 7. <div class="secondary"> {% flag topic_tracking %} <div class="icon-feature feature-topic"> <em class="title">Keep exploring</em> <p class="med"><a href="/topics/"> Browse and track events by&nbsp;topic</a></p> </div> {% flagactive topic_tracking %} BETA ONLY {% endflagactive %} {% endflag %} <!-- ... --></div>
  • 8. Feature flags apply to individual users and/or user tags, e.g.alpha, beta, lanyrd-team
  • 9. “preview” tag controlsflags available on private preview.lanyrd.com (for testing logged-out features)
  • 10. Feature flags helpkeep trunk deployable
  • 11. Cheap deployment
  • 12. $ fab e:live deploy$ fab e:staging target:feature/linkedin deploy
  • 13. Deployment should be... Easy Fast Cheap
  • 14. Everyone deployson their first day!
  • 15. Read only mode
  • 16. MySQL PostgreSQLon EC2 on SoftLayer with no downtimehttp://lanyrd.com/blog/2012/lanyrds-big-move/
  • 17. Cheap analytics
  • 18. The History table
  • 19. Internal metrics• created_at field on EVERY table, no exceptions • Makes building graphs of site growth trivial• updated_at useful but not essential
  • 20. Our report system• Reports are arbitrary calculations• Run daily by cron• Backfill available on date-field based reports• Points are stored in the database• Site can graph any report• We can export any report to a spreadsheet
  • 21. Cheap tricksFeature flagsRead only modeHistory tableDaily calculated reports http://lanyrd.com/sccqcy