Top Banner
Cheap tricks for Startups Lanyrd.com Simon Willison @simonw Monki Gras, 31st January 2013 http://lanyrd.com/sccqcy
26

Cheap tricks for startups

Oct 18, 2014

Download

Technology

My talk from Monki Gras 2013.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Cheap tricks for startups

Cheap tricks for Startups

Lanyrd.com

Simon Willison @simonwMonki Gras, 31st January 2013

http://lanyrd.com/sccqcy

Page 2: Cheap tricks for startups

Early-stagestartup engineering

is different

Page 3: Cheap tricks for startups

What are the quickest tools to

build that provide the most value?

Page 4: Cheap tricks for startups

Cheap experimentation

Page 5: Cheap tricks for startups

FEATURE_FLAGS = { 'new_maps': 'Uses MapBox rather than Google', 'login_picker': '/signin/ page with picker', 'login_linkedin': 'Sign in with LinkedIn', # ...}

Page 6: Cheap tricks for startups

@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'): # ...

Page 7: Cheap tricks for startups

<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>

Page 8: Cheap tricks for startups

Feature flags applyto individual users

and/or user tags, e.g.alpha, beta, lanyrd-team

Page 9: Cheap tricks for startups

“preview” tag controls flags available on private

preview.lanyrd.com(for testing logged-out

features)

Page 10: Cheap tricks for startups

Feature flags help keep trunk deployable

Page 11: Cheap tricks for startups

Cheap deployment

Page 12: Cheap tricks for startups

$ fab e:live deploy

$ fab e:staging target:feature/linkedin deploy

Page 13: Cheap tricks for startups
Page 14: Cheap tricks for startups
Page 15: Cheap tricks for startups

Deployment should be...

EasyFastCheap

Page 16: Cheap tricks for startups

Everyone deployson their first day!

Page 17: Cheap tricks for startups

Read only mode

Page 18: Cheap tricks for startups

MySQLon EC2

PostgreSQLon SoftLayer

with no downtime

http://lanyrd.com/blog/2012/lanyrds-big-move/

Page 19: Cheap tricks for startups

Cheap analytics

Page 20: Cheap tricks for startups

The History table

Page 21: Cheap tricks for startups

Internal metrics

• created_at field on EVERY table, no exceptions

• Makes building graphs of site growth trivial

• updated_at useful but not essential

Page 22: Cheap tricks for startups

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

Page 23: Cheap tricks for startups
Page 24: Cheap tricks for startups

Cheap tricksFeature flagsRead only modeHistory tableDaily calculated reports

http://lanyrd.com/sccqcy

Page 25: Cheap tricks for startups
Page 26: Cheap tricks for startups