You are on page 1of 11

Walls

And ladders to bring with you. Liyan Chang liyan@lepicker.io

This is not the coolness that is HTML5. Nor is it how to build it. This is the execution. This talk is for those of you who are starting companies, or those of you looking to do so in the future. This talk is about walls that come up and how to make the walls more manageable when you hit it.

Scalability is not a solved problem.

Who am I: MIT YCombinator Summer 12. Ive done coding projects, toy compilers, ray tracers for class. 6th Sense at Media Lab. Filepicker is a web-enabled open/save dialog. You know when you upload a le and a box pops up asking you which le? Its like that, but can see into all your les on cloud storages, like Dropbox/Box/Drive, Gmail attachments, Facebook/Instagram/Flickr photos, Google Image Search, etc. Brett and I on a bus to Napa. Vision: - Working & living online. Building out the parts of the lesystem that are needed for people to do work online. Open dialog was the rst foothold. Launch. April 19th. Growth. Been a year. Lots more traffic. 8 million les a day. I thought scalability was solved. Classes in distributed systems, networking, etc taught me that it was. Internship at Google taught me that it was. VMware said it was.

Walls are both bad and good.

This talk is about avoiding walls. Walls are good. It means that you have growth and that you didn't prematurely optimize. Walls are bad as it takes time to climb over. More then anything: Time to market is most importatn. These are just tips that help lay the foundation If you dont think about this and miss something, no worries. Everything can be xed with growth ~= money ~= people. If you don't do something right, you can always redo it when you have growth. but you'll grow faster if you don't have to.

1. Staying Up

First wall. Getting the thing to be public. and stay up. Start on Heroku to get on the market. Use AWS West. Close to customers, you, investors. Smaller and easier for Amazon to manage. Not signicantly more. Hasnt gone down yet (knock on wood). - Dont' use Elastic Block Store. Its a hard problem and they are still guring things out. Cause of most AWS failures.

2. Splitting it up

2nd wall. Splitting it up from one monolithic app into smaller components. Use subdomains. A pain to set up but worth it. -We use api. dev. www. etc -It would be like a building with only one door and everything, from deliveries to VIPs came through one door. -Helps you split off Keep as little state as possible Corollary. Static pages whenever possible. Part of Filepicker dream. Use us for lesystem. Use Firebase/Meteor for DB. etc. Flat le js can do everything. MSFT Word didn't need a remote db. Most things can probably architected to avoid and use other peoples scaling. Keep your framework out of the application logic as much as possible. E.G. Flask specic stuff (request, session magic variables) should stay at the edge.

3. Visibility

3rd wall. No idea what is going on. Logging Caution: Tools are not always quite what you want. New Relic doesnt work well for our particular use case. Depends on how standard your usage patterns are. A couple good tools rather then many disparate tools. Inclination to use Nginx for more things, rather then HAProxy+Nginx. Reason: unicode stuff, other quirks that I understand about Nginx.

4. Mo Features. Mo Bugs.

4th wall. Bugs. Code doesn't have to be pretty. Youre going to rewrite, refactor as you know more. What does matter is testing. 80% code coverage that just documents what your current code does.

5. Mo Customers. Mo Problems.

5th. More customers more problems. Support. Takes time.

6. Mo People. Mo Problems.

6th. More people. More problems. Things that break down process-wise: Needed to add Jira, Hipchat, Kanban. Communication on Github pull requests became really tough past 3 engineers.

Liyan Chang liyan@lepicker.io


Come build the Filesystem of the Internet with us jobs@lepicker.io

7. Real Estate

Real Estate Buy a bigger space. Reason, its jarring to have to move every time you grow. CS Analog: Why we have hash tables that are 2x size of elements. Real world: Buying the bigger size for a growing kid. What to do with extra cost, space? Have the founders live there until the company grows into it.

You might also like