Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cheap tricks for startups
Search
Simon Willison
January 31, 2013
Technology
2
110
Cheap tricks for startups
My talk from Monki Gras 2013 -
Simon Willison
January 31, 2013
Tweet
Share
More Decks by Simon Willison
See All by Simon Willison
Massively increase your productivity on personal projects with comprehensive documentation and automated tests
simon
0
2.2k
Datasette (CSVConf 2019)
simon
0
210
Instant serverless APIs, powered by SQLite
simon
1
1.7k
Datasette
simon
1
540
The denormalized query engine design pattern
simon
2
1.1k
Exploring complex data with Elasticsearch and Python
simon
1
690
Django Origins (and some things I have built with Django)
simon
1
170
Monitoring and Introspecting Django
simon
2
3.3k
Feature Flags
simon
3
3.6k
Other Decks in Technology
See All in Technology
チームでロジカルシンキングに改めて向き合っている話 〜学習環境と実践⽅法〜
sansantech
PRO
3
2.4k
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
2
380
GrafanaMeetup_AmazonManagedGrafanaのアクセス制御機能とマルチテナント環境下でのアクセス制御について
daitak
0
200
競技としてのKaggle、役に立つKaggle
yu4u
3
1k
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
2
1k
Além do else! Categorizando Pokemóns com Pattern Matching no JavaScript
wmsbill
0
620
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
170
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
0
140
エンジニア候補者向け資料2024.04.24.pdf
macloud
0
3.3k
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
350
On Your Data を超えていく!
hirotomotaguchi
2
680
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
520
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
Making Projects Easy
brettharned
108
5.5k
How to Ace a Technical Interview
jacobian
272
22k
Adopting Sorbet at Scale
ufuk
68
8.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
24
2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
20
1.9k
Atom: Resistance is Futile
akmur
259
25k
Designing for humans not robots
tammielis
248
25k
How to train your dragon (web standard)
notwaldorf
73
5.2k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Imperfection Machines: The Place of Print at Facebook
scottboms
260
12k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
Transcript
Cheap tricks for Startups Lanyrd.com Simon Willison @simonw Monki Gras,
31st January 2013 http://lanyrd.com/sccqcy
Early-stage startup engineering is different
What are the quickest tools to build that provide the
most value?
Cheap experimentation
FEATURE_FLAGS = { 'new_maps': 'Uses MapBox rather than Google', 'login_picker':
'/signin/ page with picker', 'login_linkedin': 'Sign in with LinkedIn', # ... }
@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'): # ...
<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 topic</a></p> </div> {% flagactive topic_tracking %} BETA ONLY {% endflagactive %} {% endflag %} <!-- ... --> </div>
Feature flags apply to individual users and/or user tags, e.g.
alpha, beta, lanyrd-team
“preview” tag controls flags available on private preview.lanyrd.com (for testing
logged-out features)
Feature flags help keep trunk deployable
Cheap deployment
$ fab e:live deploy $ fab e:staging target:feature/linkedin deploy
None
None
Deployment should be... Easy Fast Cheap
Everyone deploys on their first day!
Read only mode
MySQL on EC2 PostgreSQL on SoftLayer with no downtime http://lanyrd.com/blog/2012/lanyrds-big-move/
Cheap analytics
The History table
Internal metrics • created_at field on EVERY table, no exceptions
• Makes building graphs of site growth trivial • updated_at useful but not essential
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
None
Cheap tricks Feature flags Read only mode History table Daily
calculated reports http://lanyrd.com/sccqcy
None
None