Coffee Chats with Founders Around the World

I have become a permanent nomad since this Spring and continued my habit of having coffee chats with startup founders. After traveling through 13 countries and speaking to dozens of founders, I found myself receiving lots of wisdom from many amazing people. My friend and mentor Martin suggested that I publish these gems of knowledge. Here are some of the distilled takeaways from a select few of my chats. I hope you find these excerpts useful in your own journey.

Thank you very much to everyone that has taken the time to chat with me!

Starting Up

People doing startups are not necessarily the best and brightest. They are people that can take a lot of risks.

Bradford Cross, CEO of Prismatic

Bradford talked about the Bay Area startup culture with me. My takeaway is that a solid engineering culture is a necessary condition for any great startups. I need to learn from the best. So where can I find the best cultures? While it is trendy to look at places like Airbnb or Uber, I should learn from established companies like Google and Facebook, which have had the time to develop their best practices from experience.

The way to distinguish people with empty ideas versus those with real ones is that those with real ideas have the problems themselves.

Diego Basch, Founder of IndexTank (acquired by LinkedIn)

Diego and I spoke for a couple hours about the right problems to solve and how to find them. There are two kinds of people to look for inspiration from:

  1. those that can build, and
  2. those that have needs but don't know how to build.

People in (1) can usually build what they need themselves. Our job as startup founders is to find (2). The farther away the problem from tech, the better. People in these industries have felt the pain and identified a problem to solve from experience. Look for people with at least a few years experience in an industry.

Be diligent and ask specific questions when reaching out for information interviews.

Martin Scholl, co-founder of an unannounced startup

I met up with Martin in Berlin, where he has started a handful of companies in the past 10 years. Currently, he's working on a tech startup for the art industry. I asked Martin where he gets his far-fetched but obvious in-hindsight inspirations from.

Talk to people outside of technology, he told me. Not only that, but he would spend days studying an expert's area of expertise before speaking to them. Research papers, academic books, and whatever material that he could get his hands on. Imagine putting in that amount of work for each outreach. That's why he said that I should not hesitate to spend an entire year just looking for the right problems to solve.

People think most of my ideas are ridiculous at first. What actually matters is: are your users loving it?

Tim Allison, CEO of Darling Dash

I visited Tim in his office in Copenhagen just weeks before they were launching their next product. Tim recalled the time of his launch of Cupple (acquired by Tenthbit, January 2013), when all the investors that he pitched to thought his idea was stupid. Who would want a social network for 2 people?! But he knew that there was something to it because his users loved it. He listened to them and executed his vision.

Team Building

Discover the strengths of people that you work with.

Paco Nathan, Director at O'Reilly Learning

Many years ago, Paco was on the management team at a company. There was a star engineer, who management pulled aside and gave him more responsibility to head some greenfield projects. He made no progress and Paco was tasked with firing him. He spoke to the guy and worked with him to discover that he was a finisher. Paco placed him as the go-to person in the data team, so PhD's would go ask him for help. The guy excelled and became the "most valuable player" there, then moved on to do great things.

We document all our communication and processes on Github.

Mårten Gustafson, Technical Director at Schibsted Media Platform

I find the vigorousness of Mårten's approach to improving their engineering processes fascinating. For example, he uses mind maps to illustrate the cost of software maintenance. He made me realize that the same level of critical thinking and data-driven feedback for businesses can be applied to evolve a company culture too.


Solve a need. Don't sell the implementation.

Mary Adams, Founder of Smarter Companies

Mary trains consultants on measuring intangible capital for enterprises. Mary's service was the most abstract business I'd ever heard of. One of my first questions to her was, How do you sell that?

She asked me to think in the shoes of her target customers. Suppose you are the CEO of a company like FedEx. And you're trying to raise money for your company. What are your company's assets? Machinery, people, properties? For FedEx, it's their logistics processes and operational knowledge. These are all intangible capital. Her value proposition is attaching numbers to abstract ideas, which is what her customers are doing in their heads anyway.

"Often the best sales are done when the clients don't even know the name of your product, and you focus the discussion entirely on the problems they have and how you can solve them.

Jeff Kaplan, Director of Multilateral and NGO at Socrata

Jeff showed me that good sales means doing hard work. Spend time researching your potential customer and think about what problems they might have. Given a typical 30-minute first appointment, you can save precious client time on the introductory What do you do? question and focus on What problems do you have? to establish a rapport with the potential customer as quickly as possible.

Running a server on Microsoft Azure: A UX report

Given the proliferation of open source cluster managers (for example, Mesos and Kubernetes) and PaaS software (for example, Deis and Dokku), the infrastructure layer is being abstracted further away from the application. The result is a cleaner separation between development and operation. The simplest example is probably Dokku. You install Dokku on a server, then git push to deploy your applications. That's it. Just as you would do on Heroku. There are no Puppet or Chef scripts to mess with to deploy your app. Given the freedom that these tools provide for less demanding deploy workflow, I've decided to try another Infrastructure as a Service.

I spinned up a Ubuntu 14.04 virtual machine on Azure, set up Dokku on it, and deployed my applications for a data privacy project. From account sign up to a running stack took less than an hour. There were no surprises, and the process was straightforward. Sign up for an account, then follow the instructions. Once you're in the portal, click on the giant New button to create a virtual machine. The UI itself guides you step-by-step through a horizontally expanding panel. Don't Make Me Think. I like it.

Azure new VM

I have to point out that the UI I'm showing is a preview for the next portal version. Compared to Azure's old UI, the improvements on both function and esthetics are evident. For example, in the old UI, they had a quick create for Ubuntu machines, but using that would mean you could only log in with a password. Which is bad practice. If you want to use an SSH key, you need to go through the detailed settings (screenshot below), which aren't apparent for a user to try. You can't use an RSA key either, and need to upload an X.509 certificate. The new UI has neither of those problems. There are a few small annoying quirks like that in the old UI. I would recommend anyone trying Azure for the first time to use the Preview Portal. You can opt-in at your Account menu on the top right.

Azure old VM

Once your VM is up and running, which took less than a minute for me, the instance view (back to the new portal preview) is informative and clean. Grab the SSH information from there to connect, and you're in. I'm impressed by the fact that information which I would want to see on each page is exactly where it should be. It's like Microsoft made the effort to think about the UX.

Azure VM information

Navigating to the Home dashboard, you can recognize Microsoft's signature Metro design. And guess what, billing information is right there! No need to jump to another part of the site like on AWS.

Azure dashboard

As much as I like the Azure management portal, in reality it might not be the best choice for many ops people. If you're an ops person spending most of your time on the web management console, then you're probably doing it wrong. For my use case of spinning up a server or two to host personal projects every now and then, the management UI is a convenient tool to have. Azure seems to beat AWS on the web design. However, if that's your use case, you probably don't need an IaaS and would get better value with a smaller provider like Linode or Digital Ocean.

I haven't had the chance to use Azure much yet. Anyway,the server is still up and running after a week. I haven't needed to tinker with it , which is a good thing. The obvious negative at the moment is that the free trial only lasts 30 days. Other than that, so far so good.

Posted 19 June 2015 in computing.

19:57 from Castro to Twin Peaks

I've been running from Castro Station to Twin Peaks almost every morning for a month. I started off at about 25 minutes and 30 seconds from bottom to top. Today on my last day here in San Francisco, I broke below the 20 minutes mark. It's a 2+ mile distance up 800 ft. Pretty proud of myself for making it in 20. Here's a step through of my run using Google StreetView.

The start at Philz Coffee.

Left turn onto Castro Street.

First right onto 19th Street.

Left onto Diamond St. First hill.

Right onto 20th. More hill.

Up these stairs. More to come ...

At the top of the stairs, go across the street and up these steps to run along the elevated sidewalk on the right of Douglass St.

Turn right onto Romain St. This is a steep hill. Go all the way to the end.

Up this spiral and cross Market St. with the pedestrian bridge. Continue on Romain St. on the other side until the end.

Make a left on Corbett Ave. and follow the curves.

Up Hopkins Ave. on your right, which is the steepest road on this run. I've been told the house at the bottom of Hopkins has had cars rammed into it twice.

Go left on Burnett Ave.

Up these stairs just around the bend on Burnett Ave. It's all stairs from now on ...

Keep going up, up, and up.

Once you've reached the end to Parkridge Dr., go right follow the left bend up the hill.

Get on these last set of stairs on your right.

Almost there! Take a right on Twin Peaks Blvd.

There's a plaque on the ledge there. That's my end of the run marker. Enjoy the view!

Posted 15 June 2015 in journal.

A magical promise of releasing your data and keeping everyone's privacy

Differential privacy is one of those ideas that sound impossible. It is a mechanism outputting information about an underlying dataset while guaranteeing against identification attempts by any means for the individuals in the data [1]. In a time when big data is so hyped on one hand and data breaches seem rampant, why aren't we hearing more about differential privacy (DP)?

I quote Moritz Hardt from his blog:

To be blunt, I think an important ingredient that’s missing in the current differential privacy ecosystem is money. There is only so much that academic researchers can do to promote a technology. Beyond a certain point businesses have to commercialize the technology for it be successful.

So what is differential privacy? First of all, DP is a constraint. If your data release mechanism can satisfy that constraint, then you can be assured that your data is safe from de-anonymization. DP came out of Microsoft Research initially and it's been applied in many different ways. There are DP implementations for machine learning algorithms, data release, etc. Here's an explain-like-I'm-5 description courtesy of Google Research Blog on their RAPPOR project, which is based off of DP.

To understand RAPPOR, consider the following example. Let’s say you wanted to count how many of your online friends were dogs, while respecting the maxim that, on the Internet, nobody should know you’re a dog. To do this, you could ask each friend to answer the question “Are you a dog?” in the following way. Each friend should flip a coin in secret, and answer the question truthfully if the coin came up heads; but, if the coin came up tails, that friend should always say “Yes” regardless. Then you could get a good estimate of the true count from the greater-than-half fraction of your friends that answered “Yes”. However, you still wouldn’t know which of your friends was a dog: each answer “Yes” would most likely be due to that friend’s coin flip coming up tails.

Googles Chrome uses RAPPOR to collect some sensitive data that even Google doesn't want to store because of end-user privacy risks [2]. With the use of DP, they're able to get access to some useful data that they wouldn't have been able to otherwise.

By this point, I hope you have a sense of what DP is and why it's useful. But how does it work? Luckily, I found out that Moritz open sourced his MWEM algorithm on Github. Then I spent a couple weekends deploying his Julia package and built a web application around it. homepage

The site is live at (note the unsecure HTTP). Give it a try! It doesn't do much yet though. is a weekend hack so I'm not sure if I'll do anything more with it. Email me if you think this can be useful to you. For now the app only takes binary values. So pretend your data are all Yes/No responses. The app can be patched to take in any numeric data. Moritz describes how to do that in his paper [3] and he's open to sharing his existing C# code for reference.

The way the web application works is by exposing Moritz's package as a Restful API using Morsel.jl. The frontend is done with Clojurescript's Reagent. I couldn't find any PaaS that can run Julia applications so I containerized the Julia part in Docker and deployed it. That was a bit annoying to do as I kept finding bugs and had to submit a few patches on the way. I guess not many people are deploying Julia applications yet.

The whole stack is open sourced: web application, DP micro-service, and MWEM algorithm. Let me know of your thoughts.


  1. Ji, et al., Differential Privacy and Machine Learning: a Survey and Review, arXiv:1412.7584 [cs.LG]
  2. Erlingsson, et al., RAPPOR: Randomized Aggregatable Privacy-Preserving Ordinal Response, arXiv:1407.6981 [cs.CR]
  3. Hardtz, et al., A simple and practical algorithm for differentially private data release, arXiv:1012.4763 [cs.DS]

With thanks to Chris Diehl for bringing DP to my attention.

continue   →