Sunday, December 11, 2011

More love from Shopify

Turns out, apart from t-shirts, open source also pays stickers. The hand-written card is a nice personal touch. It's the little things like this, that go a long way in building a community. Good show Edward my man. Keep it up.

If your a Shopify customer, check out Fliptabify, the easiest way to showcase your products on Facebook and drive traffic to your Shopify store.

Friday, December 09, 2011

Open-source pays t-shirts

Shopify sent me some swag for creating shopify.php, the open source lightweight PHP client for the Shopify API that I built to scratch my own itch. It replaced Shopify's own PHP adapter and is now the officially recommended PHP adapter to use for the Shopify API.

If your a Shopify customer, check out Fliptabify, the easiest way to showcase your products on Facebook and drive traffic to your Shopify store.

Sunday, November 13, 2011

Worse is Better Design Rules

The Worse is Better design rules:

  • Prefer Simplicity over everything else.
  • Sacrifice Correctness for Simplicity.
  • Sacrifice Completeness for Consistency.
  • Sacrifice Completeness for Simplicity.
  • Sacrifice Consistency for Completeness if Simplicity can be retained.

Invisible Design

Ironically, invisible design in UX requires adding constraints while in programming it requires removing them to find abstractions.

Monday, November 07, 2011

Start. Finish. Repeat.

If you haven't started, start. If you've started, finish. Repeat.

Finding the optimal path between start and finish is not important; finishing is. Take the shortest path.

Monday, August 22, 2011

A Nuanced World

We live in a nuanced world. A world with multiple layers of detail and meaning. With connections that are sometimes impossible to uncover given our limited perception. So we choose to simplify, generalize and polarize, and lose out on the richness that is this life.

Sunday, August 21, 2011

Bigfoot Says

The best thing about not really existing is never having back troubles or eyesight issues, even though I have been around long enough to have been haunting gullible people’s imaginations for hundreds of years.
- None So Blind

P.S. The post where I found that comment is funny too:
 I mean, seriously? Scientists?! What have they ever done for me?

Sunday, July 03, 2011

Google+'s killer feature

Hangouts is a killer feature! The possibility of "hanging out" with people you haven't met in person and making real connections is a game changer.

Tuesday, June 28, 2011

The Right Solution Test

You know your on the right track when customers (with very little effort) totally get how your product solves their problems and take ownership of the process of moving to your solutions, regardless of the obstacles they need to overcome along the way.

Tuesday, June 21, 2011

The most important reason to do your own startup

I'll write a detailed post soon about all aspects that I considered while deciding to do my own startup, but for now, I want to talk about the most important reason of them all: Personal Growth.

For the first time in a long time, I have the feeling that I am fulfilling my potential and it is amazing the growth I have seen in myself in these past few months.

Putting yourself outside your comfort zone, sharply brings into focus your values and forces you to think hard about them and make some tough choices. You will be pleasantly surprised to find yourself doing things you never thought you could. And there will be times when you will be upset at yourself for doing things you believed you never should. But in the process, you will learn a lot about yourself.

In the end, with all the uncertainties, if nothing else, I know at least one thing for sure: I will be a better person than I started out and that is worth more than anything else you might think is important.

Are you doing a startup? Why are you doing it? Are you on the fence? What is keeping you from starting up? I'd love to hear from you.

Tuesday, June 07, 2011

The Business Guy

Update: For various reasons, we paused AceSeller and are not working on it currently.

Given the fact that ecommerce is just taking off in India and we did not have enough market knowledge, it was very clear from the beginning that considerable effort would have to be put into doing Customer Development, Vendor Partnerships, Sales and Marketing (the business side of the startup) for AceSeller.

And then there were three
A recent chance meet over coffee with Rakesh, who recently quit his job at Directi to pursue his own startup; heard about what we were working on and was interested in collaborating with us given his background working with large high-volume ecommerce websites (most recently at Cleartrip).

Doing what it takes
At this point I already had a scrappy prototype of AceSeller ready in PHP, but it was time to take a call. Now that we had Rakesh on board, who could take care of the tech, I could choose to stop focusing on developing the software and instead focus on the business side of things.

It was a tough choice to make, but in the end if you really want to make your startup work, you have to do what it takes. In our case it was clear that someone had to take care of the businessy stuff and that someone turned out to be me. 

And that's how I became the business guy at AceSeller.

Monday, June 06, 2011

Stumbling upon a problem

Update: For various reasons, we paused AceSeller and are not working on it currently.

While researching a startup idea of selling quality limited edition t-shirts online, I realized that selling online in India was not easy nor cheap and there weren't any options targeted specifically towards the Indian market and solving its problems.

Around the same time I also happened to meet a lot of fashion designers and artists (thanks to my wife) that were trying to connect with their customers online (blog, Twitter, Facebook) and over and over again I stumbled upon online conversations where their customers would ask how they could buy their products online and saw them being sent an email address instead!

It looked like I had stumbled upon an interesting problem to solve with a sizable market and it was time to validate it.


Meanwhile, Jinesh was also looking at selling t-shirts online at around the same time and had experienced firsthand the obstacles to setting up an online store in India. We got talking and he was soon on board taking care of design.

And that's how the startup journey of AceSeller began...

Tuesday, May 31, 2011

CodeMirror vs. Ace

Here's why I went with CodeMirror over Ace for Rewritepad:

Saturday, May 28, 2011

Ask for what you want

I've noticed that in most situations my assumption that what I want won't be feasible (for my employer, family and friends, service providers, business partners)  is exaggerated and just plain wrong.

Have the clarity to know what you want and the courage to ask for it and more often than not you will get it.

Starting up

Starting Jan 1, 2011, I switched to consulting part-time (3 days a week) at my regular gig Directi (which IMO, is one of the best companies to work for in India) to spend some quality time with my then pregnant wife and focus on building products that scratched my own itch.

So far, I've become a dad (it's a girl!), shipped Owe.toshipped OboxApps, almost shipped Rewritepad and saw bombay evolve in the process.

Along the way I also stumbled upon what looks like an interesting problem to solve, with a sizable market that I'm very excited about.

Overall, its been a great year so far and I'm looking forward to the rest of it.

Sunday, May 01, 2011

Business 101

  1. Find a pressing problem faced by enough (depending on how much money you want to make) customers* .
  2. Come up with a solution to the problem and offer it to customers. The price is a part of the solution.
  3. If enough customers are not willing to pay for your solution, then either the problem was not pressing enough (go to step 1) or faced by enough customers (go to step 1)  or you don't have the right solution yet (go to step 2).
  4. Rinse and repeat till you have enough paying customers.
* Customers are people with a problem that they are willing to pay to solve. Your users are not always your customers. For example, users of a site/product might just be people that your customers can advertise to.

Monday, April 25, 2011

Secure (transient) storage of passwords for external APIs that don't support OAuth

My latest project,, a mobile app suite for LogicBoxes (LB) and Resellerclub (RClub) users, has to deal with the the awkward situation of storing the users credentials to make API calls on their behalf.

Searching turned up some great answers by ircmaxell on how to deal with situations like this:
  1. PHP 2-way encryption: I need to store passwords that can be retrieved
  2. Encoding cookies so they cannot be spoofed or read etc

For increased security, I wanted the storage to be transient (duration of the session) and did not want to store the password on the server. So this is what I came up with:
  • I ask the user for the API credentials over HTTPS.
  • Verify that the creds works by making an API call.
  • Generate a 128 character random salt.
  • Encrypt the password using the random salt with the method used in the Encryption class from answer 1 above.
  • Store the random salt and API username in the session.
  • Send the encrypted password to the client in a secure (HTTPS), httponly cookie.
The API credentials and the encrypted password cookie are transmitted over HTTPS to protect against any kind of sniffing and the httponly property of the encrypted password cookie ensures that client side JavaScript cannot access it through XSS attacks (although it is not supported by all browsers).

Additionally (as suggested by ircmaxell in a private conversation), I could also look at implementing the Secure Cookie Protocol (pdf) for the encrypted password cookie and ensure the salt is sufficiently strong by using a derivation function such as KDF3 on the random salt to prevent or at least curb brute force attacks against the key generator, but I think this is good enough for now.

Tuesday, March 08, 2011 Facebook Application

I created the Facebook Application over the weekend to skip the email address verification step (that was required to prevent others from pretending to be you). I can skip it in the Facebook application because Facebook has already verified your email address.

Go to App or check out the Application Profile Page.

You will be asked for the send me email permission when you access the app for the first time. requires this permission to access your Facebook verified email address.

Would love to get feedback form you. Please leave a comment below or visit

Friday, February 25, 2011 Update: Group Reminders, Remember Email Verification Status and Sneak Peak of Android App

Here is a quick update on
  • Group Reminders: You can now setup reminders for more than one person by simply filling in additional email addresses separated by commas. This is perfect for keeping track of shared expenses like parties and celebrations, going clubbing, group holidays or buying a gift for special events like a friend's birthday, wedding, housewarming or baby shower.
  • Remember Email Verification Status: If you are a regular user of, then you won't have to verify your email address every time you want to setup a reminder. When you verify your email address by clicking on the link sent in the verification email, it will remember the verification status for your email address and won't ask you for verification for all subsequent requests in the same browser. 

I've tried to implement these without sacrificing the immediacy and simplicity of Hope you like it. To give feedback to improve visit:

Coming soon: My friend Mital is working on an Android app for

Friday, February 11, 2011 (my "little" app) featured in The Times of India's Mumbai Mirror

I woke up on Feb 9, 2011, to see a lot of users on Ok, a lot is not really a lot, more like a few hundreds, but it was more than the usual, considering I hadn't announced it anywhere and only showed it to few friends.

Looking at the access logs, I stumbled upon a few requests coming in from the online version of The Times of India's Mumbai Mirror. Turns out that someone at Mumbai Mirror came across and featured it on Page 24 (the sci-tech section).

The reason I hadn't announced it yet was because I was still wrapping up the finishing touches on it (lots of small things to do). This forced launch had me scrambling to finish off stuff, but it was also kind of liberating and exciting. Plus I now have a nice pitch for thanks to the description in the paper:
Fed up of friends who borrow money and then conveniently forget? A website to send friendly automated email payment reminders to them.

Other places has been spoted so far:

Thursday, January 06, 2011

4 things the MacBook Pro gets right

I've been using a MacBook Pro for a while now, and while I still prefer Linux over OS X (with the exception of  Safe Sleep), here are 4 things I love about the hardware:
  • Backlit island-style/chiclet keyboard that is very comfortable and an absolute saviour  when working at night and in low-light situations.
  • Large trackpad that is a joy to use.
  • MagSafe, the magnetic power connector, which has saved the laptop a couple of times from serious damage.
  • The nifty external battery indicator.