Slide 1

Slide 1 text

http://rdegges.com Randall Degges CTO Telephony Research @rdegges

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

1. a command line app for the web (see also: library)

Slide 5

Slide 5 text

print 'Yo' curl http://yo.com

Slide 6

Slide 6 text

Like a web page...

Slide 7

Slide 7 text

... but easier.

Slide 8

Slide 8 text

Find a problem

Slide 9

Slide 9 text

APIs are for

Slide 10

Slide 10 text

Caller ID (CNAM) 1-(818) 217-9229 Randall Degges

Slide 11

Slide 11 text

Big Companies Monopolize Infrastructure

Slide 12

Slide 12 text

Telco negotiations Data access cost $xxx, xxx requires special hardware and software

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Old Standards Have been around since early 1900s. 15 character ASCII string. Vary from country to country. Aren't available in US mobile networks. Are complex....

Slide 15

Slide 15 text

CNAM is complex. (925) 333-3333 (925) 222-2222 (925) 111-1111

Slide 16

Slide 16 text

Small Community

Slide 17

Slide 17 text

What Doesn't Suck about CNAM? CNAM sucks!

Slide 18

Slide 18 text

Build a

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

What is A simple API for programmers that want Caller ID -- without the bullshit.

Slide 22

Slide 22 text

How Works:

Slide 23

Slide 23 text

$ curl https://api.opencnam.com/v2/phone/+16502530000

Slide 24

Slide 24 text

$ curl -H "Accept: application/json" \ https://api.opencnam.com/v2/phone/+16502530000 { "created": "2012-10- 12T06:53:05.194858", "updated": "2012-12- 05T19:58:13.770770", "name": "GOOGLE INC", "number": "+16502530000" }

Slide 25

Slide 25 text

Make it Affordable 300% cheaper than telcos

Slide 26

Slide 26 text

Free CNAM queries (60 per hour) No account necessary

Slide 27

Slide 27 text

(funny story)

Slide 28

Slide 28 text

How Open CNAM Really Works

Slide 29

Slide 29 text

Version 1 (beta)

Slide 30

Slide 30 text

Why? &

Slide 31

Slide 31 text

● Django is well supported. ● Tastypie did almost all the API work (initially). ● PostgreSQL is reliable and simple. ● Celery is configurable and fast. ● Heroku is awesome. The Good

Slide 32

Slide 32 text

● Django + PostgreSQL are kinda slow. ● Tastypie required lots of customization (throttle, API key authentication, serialization). ● Celery has a lot of configuration options, and I kept messing them up. The Bad

Slide 33

Slide 33 text

● One big Django application with lots of lines of code. ● Tricky to deploy. Poor Architecture

Slide 34

Slide 34 text

It Worked!

Slide 35

Slide 35 text

Get some

Slide 36

Slide 36 text

Goal: Feedback

Slide 37

Slide 37 text

Hacker News https://news.ycombinator.com

Slide 38

Slide 38 text

Programming Subreddit http://www.reddit.com/r/programming

Slide 39

Slide 39 text

#startups irc://irc.freenode.net/#startups

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

Listen to Your Users

Slide 42

Slide 42 text

Go out of your way to help. tip:

Slide 43

Slide 43 text

Simplify. tip:

Slide 44

Slide 44 text

Keep a clear vision. tip:

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

We <3 SOA

Slide 47

Slide 47 text

Simple code base. SOA Rocks:

Slide 48

Slide 48 text

Clear purpose. SOA Rocks:

Slide 49

Slide 49 text

Well defined APIs. SOA Rocks:

Slide 50

Slide 50 text

Independent scaling. SOA Rocks:

Slide 51

Slide 51 text

Isolated failure. SOA Rocks:

Slide 52

Slide 52 text

● Flask ● Amazon DynamoDB ● Heroku ● PostgreSQL

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

Simple. Flask Rocks:

Slide 55

Slide 55 text

Lightweight. Flask Rocks:

Slide 56

Slide 56 text

Great Libraries. Flask Rocks:

Slide 57

Slide 57 text

No content

Slide 58

Slide 58 text

Simple JSON data store. DynamoDB Rocks:

Slide 59

Slide 59 text

Hosted by Amazon. DynamoDB Rocks:

Slide 60

Slide 60 text

Fast. Really Fast. DynamoDB Rocks:

Slide 61

Slide 61 text

Like 1ms fast. DynamoDB Rocks:

Slide 62

Slide 62 text

2500% faster than PostgreSQL. DynamoDB Rocks:

Slide 63

Slide 63 text

Cheap. DynamoDB Rocks:

Slide 64

Slide 64 text

Reliable (data replicated). DynamoDB Rocks:

Slide 65

Slide 65 text

SSD storage. DynamoDB Rocks:

Slide 66

Slide 66 text

"DynamoDB is so fast, you don't need

Slide 67

Slide 67 text

CNAM Lookup (free)

Slide 68

Slide 68 text

No content

Slide 69

Slide 69 text

Built on top of AWS. Heroku Rocks:

Slide 70

Slide 70 text

Simple. Heroku Rocks:

Slide 71

Slide 71 text

Reliable 99.99% Heroku Rocks:

Slide 72

Slide 72 text

Easy to scale. Heroku Rocks:

Slide 73

Slide 73 text

Lots of addons. Heroku Rocks:

Slide 74

Slide 74 text

No content

Slide 75

Slide 75 text

● heroku addons: add heroku-postgresql. ● fork ● follow PostgreSQL Rocks:

Slide 76

Slide 76 text

No content

Slide 77

Slide 77 text

SSL Everywhere!

Slide 78

Slide 78 text

Which libraries do you use?

Slide 79

Slide 79 text

dynamodb-mapper

Slide 80

Slide 80 text

dynamodb-mapper Queries

Slide 81

Slide 81 text

flask-login

Slide 82

Slide 82 text

flask-login Loader

Slide 83

Slide 83 text

flask-login Decorator

Slide 84

Slide 84 text

How do you do billing?

Slide 85

Slide 85 text

Stripe

Slide 86

Slide 86 text

Bitpay

Slide 87

Slide 87 text

No content

Slide 88

Slide 88 text

Marketing....

Slide 89

Slide 89 text

YOU DON'T NEED MARKETERS

Slide 90

Slide 90 text

You need to talk to people!

Slide 91

Slide 91 text

No content

Slide 92

Slide 92 text

Google your industry!

Slide 93

Slide 93 text

Find your customers.

Slide 94

Slide 94 text

Put contact names, company names and URLs into a Google doc.

Slide 95

Slide 95 text

Email 3 potential customers per day, asking for feedback.

Slide 96

Slide 96 text

Listen to feedback.

Slide 97

Slide 97 text

Best Practices

Slide 98

Slide 98 text

Support a single serialization format (JSON). Best Practices

Slide 99

Slide 99 text

Make use of drip email (intercom). Best Practices

Slide 100

Slide 100 text

No content

Slide 101

Slide 101 text

Best Practices Automate everything.

Slide 102

Slide 102 text

No content

Slide 103

Slide 103 text

Give it a Go Automate everything.

Slide 104

Slide 104 text

Build Something Awesome

Slide 105

Slide 105 text

http://rdegges.com @rdegges Thank You