Hacker News new | ask | show | jobs
by sghael 5411 days ago
This is Sandeep (co-founder of Ravid). My co-founder (keithba) and I found that sending private, asynchronous video messages on mobile devices is way more difficult than it should be. We created Ravid to solve this problem.

Note: US-only for now & requires a phone (so no tablets.)

The stack & tools:

  * Rails 3 (MRI) for our API servers.  
  * Worker nodes running Sinatra (JRuby) w/ Resque
  * Monit for monitoring services / Fabric for quick provisioning
  * The Android client is typical Java (using IntelliJ)
  * iPhone development w/ Monotouch! 
  * S3 for storage, and our public website using Jekyll
  * C2DM message delivery (our Gem: https://github.com/sghael/speedy_c2dm)
Lessons learned so far:

- Fragmentation on Android is a b. Especially when dealing with hardware stuff like cameras, expect to do a lot of device specific coding. Front-facing cameras are a perfect example. Gingerbread solves these problems in theory, but not in practice.

- Uploading video files over mobile connection is non-trivial (duh) - We've put a lot of work towards reliable and efficient uploads and downloads (intelligent packetization, retry logic, etc). We solve for the "elevator scenario". User sends a message, but steps into an elevator half way through delivery. Aside from Gmail, most mobile apps suck at this.

- On the positive side, 4G+ speeds are really impressive.

- Creating a portrait oriented camera application for Android is way harder than it should be (really poor API implementation around camera rotations). Contrast to iOS where it's super easy.

- UX matters - A friction-free UX required a lot of work. We had many alpha testers (both family and friends & paid services like usertesting.com/mobile) that helped us find the sticking points.

We'd love your feedback on anything!