Payments in Asia is a Royal Pain in the Ass

So you’re a developer in Asia and you want to do payments online. You’ve been checking out the news and can’t wait to get started with shiny new API’s like stripe and brain tree. Great! Except that you probably can’t.


Currently Stripe is US and Canada only (from the FAQ, you will need a US or Canadian bank account, SSN or SIN, address, and–if filing as a company–EIN or BN). That said, we are working very hard to expand (but don’t have any definite timelines just yet). – Link

Balanced Payments

Sellers/merchants must reside in the US, have a US mailing address and a US bank account. Buyers can reside in nearly all countries and use any Visa, MasterCard, American Express or Discover card (debit and credit). – Link

Brain Tree

International credit card processing just got a lot easier, and smarter. Online companies domiciled in the EU, Australia and Canada can now use Braintree to launch, support and scale their businesses, just like their US counterparts. – Link

With Authorize.Net you can accept international transactions from customers worldwide. However, your bank must be based in the United States, Canada, or United Kingdom. To process payments in additional currencies, please see our CyberSource Advanced Solution. – Link


We require your Social Security Number to verify your identity and to comply with state and federal regulations.  WePay does not run credit checks on any of our users, so signing up for a WePay account will not impact your credit score.  Your SSN and Tax ID will only be reported to the IRS in the event that you collect more than $20,000 and 200 payments in the calendar year.  Check out our article on 1099-K reporting for more information on that.  – Link

The current incumbent, Paypal, is doing themselves no favours by routinely freezing legitimate accounts. From smashing violins, t0 ebay loopholes, no wonder Max Levchin is starting a new payments startup. But for us startups and SME’s in Asia (or Singapore where I’m from), Paypal Standard is pretty much the only option. For some reason, Paypal Pro isn’t offered in Singapore but that’s a separate point.

For most US/EU/CA customers, there are options outside of Paypal. For the rest of us, all we can do is twiddle our thumbs and look enviously at our western counterparts. Realistically, Paypal offers the fastest integration, no questions asked, approach. Well, you could go to the bank and setup a merchant account. Hahaha, good one.

How about payment gateways like worldpay? Well, to be honest, that’s a very viable alternative. You just have to wade through endless documentation to get something going. How do I know? I implemented one a while back. Also, they charge more.

Well, from what I know of, there are still a few more options available. I have not tried them so I’m not sure of the costs or integration process involved. If you’ve integrated with these guys before, do share your experience!

But really, can someone please start a stripe-for-asia? That would be great, thanks.


Recently came to know about Xfers, they seem promising in offering seamless internet banking payments.

Update 2

Braintree is in Singapore, Malaysia and Hong Kong. Joy~!

Analyzing a Business Idea, A Developer’s Perspective

As a tech guy, you will undoubtedly be pitched partnership opportunities in today’s startup crazed world. In agreeing to be the tech half of the venture, you will essentially be delegating the ‘business’ aspect to your partner which hopefully has domain knowledge in the problem you guys are trying to solve.

But how does one tell the difference between a genuine opportunity or a castle in the sky. This list of questions serve as my litmus test and roughly sums up my thought process, in no specific meaningful order:


  • What’s the nature of the relationship between the existing partners
    • Are there more than one business partners? What is the nature of their relationship?
  • Cultural fit for all partners
    • Do you like them? Do they like you? Don’t work with assholes.
  • How vested are the partners
    • Is he going to quit his full time job? He had better if you are.
  • Experience of the partners in the domain
    • Do they possess niche domain expertise that other people don’t have?
  • How trustworthy are the partners
  • Who will be doing what
  • Do they look like they are passionate in the problem they are trying to solve
    • Are they doing this for money?

Product (non tech)

  • What’s the unfair advantage
  • What is the product
  • What’s the problem being solved
  • How is the current problem being solved
  • What options are there at the moment
    • What’s the price of the product relative to the amount that’s being spent already
    • How much are they spending to solve the current problem


  • What will you be doing that is better or different from everyone else that is going to make the customers happy


  • Competing products
  • Who would be the biggest competitor
    • Another startup or Google


  • Who are the buyers
    • List all the people involve in making the purchase decision
  • How many buyers are there (How big is the market)
  • How likely are they to adopt the product
  • Who are the early adopters
  • What’s the cost of adoption


  • How defensible is the product
    • What’s stopping new entrants from entering and wow to prevent them
  • What’s the main risk facing the business
    • If the business were to fail, what is the main reason, conversely, if the business were to succeed, what is the main reason
  • What’s the time to market
    • How fast can you get the product out there in front of customers


  • How do you make money


  • How will the product be market
    • What are the top 3 channels
  • How much spending is required
  • Who is going to manage the marketing
  • What’s the initial marketing plan
  • What’s the scalable marketing plan


  • What’s the sales cycle like
    • Is it going to take 1 year to sell the product or 1 week
  • Who is going to manage the sales process
  • What’s the initial sales plan
  • What’s the scalable sales plan


  • What are the main costs involved in the product

Product (tech)

  • How many hours does the MVP require
  • What are the complexities involved to get to MVP
  • Future complexities
  • What technical ability is needed to execute on the product
  • Is there synergy with existing code base of past/current projects


  • Is the product recession proof
  • Exit options
  • What other opportunities will you be passing up to undertake this venture


  • Is there potential to grow other products in adjacent spaces
    • How big are these spaces
  • Is there scope for personal growth
    • Will you be learning something cool along the way


  • Is the problem you’re solving meaningful


  • What are the terms being offered
  • What’s the funding arrangement
  • Who’s paying for what


  • Are there any important deadlines
  • What do you want to achieved in 3, 6, 12 months time

What Every New Python/Django Web Developer Should Know in 3 Months

This is a collection of things I think any beginner web developer working on the Python/Django stack ought to know. This assumes zero knowledge in web development or programming to begin with.

  1. Web Related
    1. What is a GET and POST request
    2. 200/301/302/403/404/500 status codes
    3. What is a cookie and how is it used
    4. Learn how to search and read documentation
    5. Basic SEO knowledge
      1. Best book to read: The Art of SEO
  2. Frontend
    1. How a page is loaded in the browser (DOM)
    2. Working/basic knowledge of HTML/CSS/JS – You will learn this by osmosis
    3. What is AJAX
    4. What is HTML5
    5. Basic UX/UI understanding
      1. Best book to read: Don’t make me Think
  3. Python
    1. Write Fizzbuzz
    2. Read Learn Python the Hard Way then an intermediate book like Dive into Python or one of the O’Reilly series
  4. Django
    1. Do the tutorial project at
    2. Read Definitive Guide to Django Development Done Right
    3. Be able to setup a new project from scratch using virtualenv locally with a skeletal folder structure and settings that caters to a production and development environment
    4. What a view function does
      1. GET/POST paradigm within a view function
    5. What a model class does
    6. What does a template do
      1. What is template inheritance
    7. Basic Regex and URLS
    8. How do urls, views, models and template relate with one another
    9. Difference between model forms and forms
      1. How does form validation occur
    10. How to write a test that tests the view functions, models and utility methods
    11. How to debug and find the source of a problem
  5. Database/Models
    1. How to model Foreignkey relations
    2. How to model M2M relations
    3. Basic data types
  6. Tools in your Employ
    1. iPython
    2. South
      1. How does a migration work
      2. How to do an initial migration
      3. How to migrate subsequent changes to a schema
      4. Trouble shoot migration conflicts
    3. Git
    4. IDE of choice, preferably VIM
    5. Firebug
    6. Fabric
  7. Processes
    1. Deployment process at your team. How it works, what git hooks are used for what purposes. What fabric scripts do what etc
    2. Git Flow
      1. How to add, commit, release, rollback, fix, merg and conflict management
  8. Soft Skills
    1. Communication with product owners
    2. Communication with colleagues
    3. Cultivating a Growth mindset
  9. Graduating Project!
    1. Create a one page Django project that will allow me to:
      1. View all the users on the project
      2. Edit the details of the users
      3. Create a new user
      4. Delete a user

A note on doing too much reading:

Oftentimes as a beginner, we’re overwhelmed by the amount of information we need to do something. The knee jerk reaction, a badge of the fine education doctrines what have been ingrained in us, is to read about the topic/subject. I find this hits a wall of diminishing returns quickly.

For the reading to be truly effective, you need a certain amount of wisdom to absorb it. This can only be done by reading backwards. What this means is that say you’re tasked to create a dashboard page from scratch. In your mind you’ll probably think something like: whoaaaa, I have on idea how to do this. I need to do some research! And then you try to do random reading at djangoproject or various books and then bite off more than you can chew. The human brain has a tendency to make things more complex than it really is. The right question you should be asking in your mind is: how do I first load a page and then present a form on this page to manipulate data? This will make your reading much more directed and effective.

My Secret Book for UI & UX

Everyone has a secret book. You know, that one book chock full of WHAM-WHAM-WHAM information and wisdom that leaves your mouth hanging. The one which you bring over to your co-worker and say: hey check this out, this isgood stuff! The one which you wished you read BEFORE you implemented feature XYZ..

So, this is my secret book: Designing for the Social Web by Joshua Porter

No matter what type of web site or application you’re building, social interaction among the people who use it will be key to its success. They will talk about it, invite their friends, complain, sing its high praises, and dissect it in countless ways. With the right design strategy you can use this social interaction to get people signing up, coming back regularly, and bringing others into the fold. With tons of examples from real-world interfaces and a touch of the underlying social psychology theory, Joshua Porter shows you how to design your next great social web application.

Inside, you’ll discover:
• The real reasons why people participate online and the psychology behind them
• The Usage Lifecycle—or how people use your web application over time
• How to get people past that trickiest of hurdles: sign-up
• What to do when you’ve launched a web application and nobody is using it
• How to analyze the effectiveness of your application screens and flows
• How to grow your social web application from zero users to 1000—and beyond

Designing for the social web is about much more than adding features. It’s about embracing the social interaction of the people who make you successful—and then designing smartly to encourage it.

This profoundly impacted the way I thought about viral loops, engagement loops, social objects, retention — the whole works, in the early days of my first startup, Avenue7.

It’s a very easy read, full of actionable insights which you can apply immediately. Check it out.

Useful Links:

Growth Hacking: What is it?

Andrew Chen defines it as

Growth hackers are a hybrid of marketer and coder, one who looks at the traditional question of “How do I get customers for my product?”

Which I agree but I don’t agree completely on the next part:

and answers with A/B tests, landing pages, viral factor, email deliverability, and Open Graph

I would define a growth hacker as someone who writes code to scale the user acquisition process. If you were to slap a KPI to such a person it would look something like: acquired traffic/lines of code written.

Andrew gives the example of Airbnb’s tight integration with Craigslist. That’s definitely an example of growth hacking at work. Tight integration/import & export type functionality is really a marketing play that sits in the domain of the developer. No traditional marketer would be able to implement that. I will show you another impressive example of growth hacking at play:

Polyvore + Widgets

Polyvore is a beautiful collage making fashion site that’s brimming with creative users. Early on, they correctly identified that their users were spending so much time making a set, they were often immensely proud of their creation. So what Polyvore did was to allow their users to embed a set on their blog for them to show off. This brings traffic in 2 ways:

  1. Direct click throughs from the blog where the set is embedded on
  2. Keyword rich backlink acquisition through embedded keywords resulting in higher ranking pages in SERPS

I remember reading an article about Youtube a long time ago on how they purposely kept the urls short like this:

The rationale behind that is to prevent the link from being truncated in emails to maximise clickthrough rates from emails. That’s another example of growth hacking.

Obviously, the context has to be right for the implementation to work. There are also thin/dodgy implementations like address book/friend inviter spamming which works…. if this was 2005. Don’t do it. You’ll piss off your users and  your conversion rate would likely be low. Authenticity and trust is the currency of the internet, don’t blow it all in one bad move!

So, to reiterate once more, the job of the growth hacker is to get traffic to the website – a pure user acquisition oriented focus. Once the visitor is on the website, it’s a whole different ball game and ideally, another member of takes over.

The optimisation of the ‘click to $’ funnel to me is a sales process where for a website, the sales person is the website! So tools like A/B testing, analytics, conversion funnels, , engagement loops, retention and cohort analysis etc comes into play. There is no ‘growth’ to ‘hack’ here. But it doesn’t mean that once the user is on your site, there isn’t any growth hacks to be had! See viral loops.

Of course, all the optimisations would be for nought if your growth hacker brings in unqualified traffic of course or if you haven’t found product/market fit yet. So the right hand gotta know what the left is playing at otherwise there won’t be any hands left to play.

Obviously, a good VP of Marketing, as suggested by Andrew Chen, ought to know all of these processes and have a good overview of the the entire start to finish funnel but it is not the prerogative of the growth hacker. I like to keep my job scopes very well defined.

Your thoughts?

Hacking a Social Media Presence 101

I wrote this for my bro a while ago when he was figuring how to get more visibility online. Thought it might be useful to repost this to my blog. This is more applicable for an individual as opposed to a company.

Define Objectives

You have to figure out what you want to achieve online. It could be any of the following:

  1. Increase sales through marketing
  2. Create dialogue with customers
  3. Increase brand/person exposure and awareness
  4. Reach out to like minded people for collaboration
  5. Could be all of the above!

Who’s the target audience you’re trying to reach

  1. Create a user archetype. This is an assumption you need to verify later on (e.g., 20 – 30 something marketing professionals). Have it in your mind, bonus points if you write it down and stick it on the wall. I find the act of writing something helps to clarify my thoughts.
  2. Use blog aggregators like Technorati to search for bloggers talking about your area of interest. Bookmark them, set up an RSS feed and start joining the conversation. Ask yourself: Does the archetype still hold? Are there more than 1 archetypes?
  3. What topics are interesting to them? What can you say or write about that is valuable to them?
  4. Look for relevant Twitter hashtags and tweets.
  5. Does a subreddit exist for your area of interest?

Keyword Research

  1. What keywords are relevant? Another way of looking at this question is: what should your users type into Google such that your blog/content shows up?
    1. Make a top 5 list
      1. Be specific. So don’t use terms like ‘make money’ but ‘make money from running a small office home office selling headphones’
    2. Set up Google alerts for these keywords
      1. This helps you establish the sites/people who so that you can follow them
    3. Use Google Adwords Keyword Tool to see relevant keywords
      1. There are tons of keyword research tools out there but I find Google KW tools to be the best
  2. Who are currently ranking for these keywords on SERPS? If possible engage in dialogue with them through leaving comments on their blogs
    1. Note that you will get different results depending on which search engine you use (Bing, Yahoo) and also the country you are accessing the information from ( vs
  3. Use Google Insights and Google autocomplete/autosuggest for additional datapoints of interest
  4. Are people using the same terms on other social media sites like Twitter?


  1. Blog
    1. Services such as WordPress/Blogger. This is super important and the most basic and low hanging fruit you can do to get things going.
    2. It’s probably tempting to get a blog on tumblr but I recall having a hard time integrating a comment plugin like disqus into it. So go with wordpress if you can help it (unless your target audience consists of young/creative/hipster people which tumblr seems to be full of)
  2. Twitter
    1. Search and follow the people you have identified in Step 3 and other relevant personalities you know of. is a helpful site to find such people
  3. LinkedIn
    1. Update profile to include keywords identified in Step 3
  4. Quora
    1. Follow topics and answer questions in your area of interest
  5. Slideshare
    1. Upload presentations and include links to your blog, Twitter, Linkedin accounts
  6. Industry specific channels
    1. Every industry has its own eco system of websites and such. Participating in the conversations occurring on those sites are important
    2. E.g., Flickr for photography enthusiasts, Vimeo for video buffs, Mendeley for academics


  1. Consistency is key. This is a long term investment so don’t be discouraged if you don’t see results immediately. Try to push out a blog post at least once a week. Everyday if you can help it
  2. Description, profile image and contact details of yourself should be consistent on all channels
  3. Prepare a short 2 liner description about who you are and what you do. Throw this in your Twitter profile, Facebook about me, LinkedIn bio etc you get the picture
  4. From the keywords you have identified above, use them consistently in writing/uploading content on your social media channels. Also remember who you are writing for as identified in Step 2.

Secret Sauce

The currency of the internet these days is authenticity. Don’t fake it!!. If you have good content and you’re a domain expert in your respective field, it’s as simple as putting your thoughts on a blog and having a conversation with like minded people. In today’s noisy internet, good quality information is hard to come by so if you have something to share that people will find valuable, they will find a way to your content! This takes time to build up so again, persist!

How and Why am I Learning Objective-C


  1. Looks fun 🙂
  2. Coming from a Python background, knowing C will improve my overall knowledge of programming in general since Python abstracts a lot of the heavy lifting away.
  3. Many developers have staked their careers learning Java and C# whilst riding on the coat tails of Oracle(Sun Microsystems) and Microsoft respectively. The assumption is that these large software companies will provide them with career growth opportunities due to their monopolistic nature of their business. Do I see the same thing occurring with Apple? The answer is a resounding quite simply yes. Apple has built a formidable moat in its supply-chain process, cutting edge software, iTunes platform and above all, its brand equity. Moat = monopoly = longevity.
  4. Looking at current consumption patterns, it seems fairly obvious that the current and following generation of consumers will be born into an app generation. The iPad is omnipresent at every dinner table where there is young child. Demand will be there for many years to come.
  5. iTunes reduces the marketing and sales burden of a developer.
  6. Straight to App as a strategy. Instagram showed that this can be done.
  7. At $0.99, an app built for the masses at that price point is recession proof.


  1. Short C Tutorial –
  2. Short Objective-C Tutorial –
  3. Books
    1. Programming Objective-C –
    2. Learn C on the Mac –
    3. Learn Objective-C  on the Mac –
      1. This is a follow up to Learn C on the Mac
  4. Standford iOS class –


Got this series of tutorials. Seem pretty good so far! 

Opportunity Cost of Higher Education and National Service

This article resounds with me a lot. Imagine I didn’t have my NS obligations and skipped university. Instead, I spent those 5 years learning and building products. At 8 hours a day, I would have clocked about 10,000 hours in programming and product knowledge. What a powerful experience and skillset that would be now. The best part is, I would have spent exactly $0 dollars in that time.

Right now, I would be reaping the benefits of that knowledge instead of starting from near ground zero. When I think about the the opportunity costs and the compounded effects of that, I get seriously depressed.

National Service is not just 2.5 years (at least it was during my time) of my life, it’s 2.5 years and whatever compounded wealth I would have gained otherwise.

Well, I guess that’s the price one has to pay for semi-reliable MRT services these days.

For those of you thinking of going to uni, why not check this out instead instead?

Keep Putting Yourself Out There

The most significant and life changing experiences are typically ones you didn’t plan for. This I call serendipitous events. But there is a problem: serendipitous events are essentially random. But how does one plan for that?

Answer: By putting yourself out there.

The only way to increase your chances of such events occurring is by just simply going out, talking to people and doing things. The more times you put yourself out there in the wild, the higher the likelihood of you encountering a serendipitous event.

How I got my job at Odeon, and now the startup I’m working with, is really through a series of quite random events. If I had stayed within my comfort zone, I doubt I would be in the position I am in now.

So get out of your room and your comfort and do something! You never know just what might happen.

Could Youtube be the next Reddit?

Anyone who’s been around youtube from the early days will know just how bad the comments were. Trolling was rampant, the experience was just plain bad.

Sometime in the last 1-1.5 years, youtube made a change not just to their over UI but also the way comments were getting displayed. Top comments now appear on above the rest. This had a profoundly strong impact on the quality of comments that I’ve been reading over the last year. It used to be such that I would watch the video and ignore the comments knowing them to be an utter waste of time. Now, the comments are just as time-worthy as the video itself (if not more). They are often quite funny and meme-related. Not too long ago, every top comment went along the lines of taking something to the knee, a Skyrim reference.

So what’s this gotta do with Reddit? As any Redditor can tell you, one core retention driver for Reddit is about one-upping each other with witty comments in any given thread. If you ‘win’, you are bestowed  karma, if you ‘lose’, you get down voted into oblivion. What can you do with karma points? Absolutely nothing. However, the accumulation of karma (by karma whores) is one of the core driving usages on the site. This ‘witty content’ alone is powering an entire army of lurkers and upvoters. As someone who is becoming more of a content creator as opposed to content consumer of late, I certainly appreciate the upvotes and karma whenever I leave a ‘witty’ comment. And it makes me want to do more more more. Engagement goes up an order of magnitude. Such ‘point mechanics’ have been discussed to death over the last couple of years. It works but you need to adapt it to your context (website).

So what’s stopping Youtube from becoming like Reddit? The game of comments on a Youtube video works in exactly the same fashion. Who can come up with the wittiest comment gets visibility and ‘thumbs up’ points. The strange thing about this is that your comment score, via the number of thumbs up you have received, is not visible anywhere at all. Not on your profile, not next to your nick, not anywhere.

Now, the smart folks at youtube are probably very aware of this. They are deliberately not presenting such information to the audience. I can only thing of one reason for doing this: they want to keep the main thing, the main thing. Come to youtube to watch videos, not leave witty comments. They do not want to disturb the underlying retention driver that has seen them grow to become the largest viral video site (and also the largest video search engine).

Is this where arguments for Google’s ‘dont get social’ comes in? Perhaps. What I do know is that if they were to start displaying thumb’s up scores, the social dynamics of the site will lead to something like Reddit’s. Whether they want this or not is another matter altogether. Oh, they also need to fix the way comment replies are being done at the moment. It’s a bloody pain in the arse to keep track of sub comment threads.