Our Philosophy

Southeast Asia is where the action is…

Innovation has become globally distributed. If you are a talented entrepreneur, you should base yourself where the accessible regional market is large, the infrastructure world-class and its an attractive place to live. If you are not here… Why not invest in or acquire a company with those same attributes?


Sector-agnostic but Leader-specific

No technology sub-sector or thesis dominates our plan. By having a diversified portfolio there is a great chance for our entrepreneurs to work and grow together. But we do aim to back the best talent, with the strongest models, and ahead-of-the-pack traction every time we invest.


Think as a Team

Our entrepreneurs are our closest partners.

When we develop our termsheets, we listen to what matters and aim to build the foundations for real teamwork. When we manage companies, we address risks and seize opportunities together.


Get Ahead of the Issues

Our experiences tells us there will be bumps and even quicksand to go along with the occasional open expressway. We need to build an all-terrain vehicle.

You should explore new opportunities while an existing business is on fire. Talent should be found a job, not searched for when there is a vacancy. Governance should be IPO-able quality. It is never too early to identify more capital.

/** * helper function to take the form and * get back a js object with field/value mappings * ignoring submit fields and fields whose name we can't ascertain */ function serialize(form){ return Array.prototype.slice.call(form.elements) .filter(isInputElement) .filter(isNotSubmit) .filter(hasFieldName) .reduce(function(data, node, index) { data[getFieldName(node)] = node.value return data; }, {}); } /** * Check if this form element is of type input */ function isInputElement(node) { return node.tagName.toLowerCase() === 'input'; } /** * Check if this is a 'submit' input element */ function isNotSubmit(node) { return node.type !== 'submit'; } /** * Ensure field has a derived name */ function hasFieldName(node) { return getFieldName(node) !== 'unknown'; } /** * Attempt to ascertain "name" of field. * * they don't give inputs real `name` attributes, so * best guess is to hack around the element's label text, * falling back to the placeholder text. (their html is * not semantic and often labels erroneously reference * parent divs instead of sibling input elements) * * strip out the stars they show when validation fails * * if label is misplaced _and_ there's no placeholder, * this function is insufficient */ function getFieldName(input) { if (!input.labels.length) return input.placeholder || 'unknown'; var labelText = input.labels[0].textContent.trim(); return ~labelText.indexOf(' *') ? labelText.slice(0, labelText.indexOf(' *')) : labelText; } /** * Listen for form submissions and send identify * if you'd like an event too, just delete the '//' in the track line */ document.forms[0].addEventListener('submit', function(e) { analytics.identify(serialize(e.target)); // analytics.track('Submitted Form'); });