Pownce Lessons Learned
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


Pownce Lessons Learned

Uploaded on

Lessons learned while developing Pownce, a social messaging web application.

Lessons learned while developing Pownce, a social messaging web application.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • What a great presentation!!!
    I would love to know more about the monitoring piece. And if by any chance you have the talk recorded...? Synchronized audio with this would be super-cool
    Are you sure you want to
    Your message goes here
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 5,600

http://www.leahculver.com 2,919
http://leahculver.com 1,188
http://almaer.com 419
http://www.lonerunners.net 212
http://www.centernetworks.com 95
http://www.slideshare.net 84
http://www.almaer.com 77
http://internet.blogosfere.it 63
http://www.polle.net 56
https://demo.viadesk.com 41
http://asiermarques.com 39
http://delreal.biz 38
http://pascal.vanhecke.info 31
http://blog.context.com.br 31
http://kasamata.com 29
http://www.asiermarques.com 28
http://philmindspot.blogs.sapo.pt 28
http://www.tanasi.it 23
http://zee.com.br 21
http://michielsikkes.nl 21
http://www.linkist.com 17
http://www.zee.com.br 15
http://www.kasamata.com 14
http://www.netvibes.com 12
http://1nation.eu 10
http://www.schwartzlink.net 10
http://missha.tumblr.com 7
http://agileweb.org 7
http://interactiveentertainment.blogspot.com 6
http://teacher-tec.blogspot.com 5
http://webcenter.worldbank.org 4
http://newshutch.com 4
http://feeds.feedburner.com 3
http://www.ivancampos.com 3
http://www.techgig.com 3
http://delreal.tumblr.com 3
http://ivancampos.com 2
http://www.filescon.com 2
http://www.webspiritus.com 2
http://davidohalloran.com 2
http://deltatangobravo.com 2
http://www.zeedesign.com.br 2
http://webdevcampsp.ning.com 2
applewebdata://E110B17C-7110-451B-A0B2-E5CB91A6F3EE 1
http://freewi-fihotspots.net 1 1
http://www.teacher-tec.blogspot.com 1
http://nslu2 1
http://hidethedeadgirl.org 1
http://portfolio.pierrelord.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Social messaging application Developed in 4 months Invite-only launch in June We’ve learned a lot ...
  • 2. Lesson: Think about technology choices • We could pick anything! • Social as well as technological reasons factored into our decisions • Took risks • Open to new technologies
  • 3. Why Django? Django is a Python web framework • Yay! Web frameworks! • Documentation and readability • Auto-generated admin • Active community • Framework open to growth Think about tech choices...
  • 4. Why S3? Amazon’s Simple Storage Service • Pownce files are stored on S3 • Less maintenance for Pownce • Inexpensive • Been very reliable so far Think about tech choices...
  • 5. Why AIR? Adobe Integrated Runtime • Works on both PC and Mac • Easy to develop • Encourages good UI • Lots of good buzz Think about tech choices...
  • 6. Lesson: Do a lot with a little • Pownce has a tiny team • One website developer • Self-funded • Short deadlines
  • 7. Small Teams We wear many shoes. • Multiple roles • Learn quickly • Dedicated Do a lot with a little...
  • 8. Open Source Tools Plenty of web application help • Someone has solved this problem before • ... and they’re probably smarter than me • Lots of tools available • Free to use Do a lot with a little...
  • 9. Use Your Resources Get some help. • Documentation websites • IRC • Network and learn from friends • Exchange knowledge with other sites • Participate in communities Do a lot with a little...
  • 10. Lesson: Be kind to your database • Pownce’s database is its main bottleneck • One MySQL database • Responding quickly to slow queries has helped keep Pownce running • Few simple tips...
  • 11. Caching: “I’ve already done that.” • We use memcached • Caching at page and object / list level • Cached our static pages since launch Be kind to your database...
  • 12. Queuing: “I’ll do that later.” • Taking a (shorter) note of a (longer) process to do later • We “send” notes via a job queue • Need to improve our queuing system and add more processes Be kind to your database...
  • 13. Limits and Pagination: “I don’t need to do ALL of that.” • Notes list, friends list, recipient lists... • Good user interface as well • Django Paginator object is a good starting point Be kind to your database...
  • 14. Index: “I’ll mark that to find it later.” • We had to re-think how we were accessing our data • Friend searching is a prime example of where good indexing can improve performance Be kind to your database...
  • 15. Avoid Complexity: “I won’t make the db do that.” • Some queries are just too complicated (for a new web app) • Consider if they’re actually NEEDED • Usually good to avoid abstract or conceptual data display Be kind to your database...
  • 16. [ JARRING CHORD ] Expect Anything!
  • 17. Lesson: Expect Anything • Young sites can run into many problems • Need to respond quickly • Can’t prepare for everything • Every web application is unique
  • 18. Keep Backups Because stuff happens. • Use version control • Have a system to revert code changes • Track dependencies and updates made • If developing locally, backup personal work Expect anything...
  • 19. Duly Noted: Keep lots of data. • Stats to monitor • Quantitative measures • Pretty graphs Expect anything...
  • 20. Community Keep in touch with your community. • Let users know what you’re working on • Respond to individual bug reporters • Inform users of bug fixes and new features • Be careful about asserting deadlines Expect anything...
  • 21. Friendships Matter Social sites are all about friends. • Strive to make it easy to establish, maintain or break relationships • Accurately represent user relationships • Online friends have real-world effects • Don’t mess this up! Expect anything...
  • 22. A feature that matters. (from Satisfaction) Expect anything...
  • 23. Prepare to Scale Up It’s a good problem to have. • “Don’t prematurely optimize” • ... unless you work with Kevin Rose • Design for success • Accept that your code will change Expect anything...
  • 24. Lessons Learned Think about technology choices Do a lot with a little Be kind to your database Expect anything
  • 25. Thanks!