Eric Tang's Blog

Startups, Software, Everything Wildcard

Understanding Design Culture

| Comments

A few weeks ago, I attended a discussion panel about building design culture with Khoi Vinh from Wildcard and Pierre Valade from Sunrise. They are both designers I respect and admire tremendously, and I was surprised by the astonishing difference in their design processes. With so many variables in practice of design, how can we, as founders, try to build a design culture?

“Design is everything engineers don’t do.” — Khoi Vinh

“Design is everything, it’s how we solve problems.” — Pierre Valade

These quotes are much broader than the traditional understanding of design. It touches every corner of a company, and it requires a culture with tremendous empathy and understanding of the design process. So, to me, good design culture means everyone in the company has a certain level of understanding and appreciation of the design process. This is especially difficult to adopt, because shifting the mentality for a group of people takes time and consistent effort.

Design is having ridiculously high standard for product experience. Design is going above and beyond to delight users. Design is being obsessive about every little detail. Design requires numerous iterations and relaxed time constraints.

Predictability of shipping date goes down dramatically when the standard of design goes up. This means engineering needs to understand that 29 out of the 30 prototypes will not ship. This means marketing and PR needs to understand the marketing plan may start 2 months after the initial planned date. This means product needs to understand that design will gather information, get inspired from unconventional processes that sometimes seems like they are “wasting time”. And our job as a founders is to make sure we create enough space to make that happen.

One cannot simply build a design culture without having first-class design DNA. You can’t fake design culture by hosting the occasional customer interviews or getting employee passes to photography exhibits. Design culture is a commitment to the art and the process, and the first step to that commitment is to work with designers who REALLY knows what they are doing.

If you are just starting out with this process, there WILL be a period of time of learning to understanding where the lines are. I have been fortunate enough to work with some talented designers over the years, and here are a few things I have learned:

  • Things WILL get thrown away. Figure out how to build CHEAP prototypes.
  • The design process requires TIME and INSPIRATION. Sometimes it means browsing Dribbble for an afternoon, sometimes it means working in complete isolation for a few days.
  • Don’t expect to validate everything in mockup form. A lot of times (especially for consumer products), you just have to play with the product.
  • Subtle things REALLY matter. Things like typography make a big difference.
  • Over-communicate, try to define a very clear goal at the beginning.
  • Know that design is a never-ending process, sometimes things cannot be measured by metrics.

If you are not a designer, what other things have you learned working with a design team? If you are a designer, what other things do you wish your counter parts would understand?

The Age of Mobile Integration

| Comments

When Tim Berners-Lee created the hypertext (think web links) at CERN in 1989, he forever changed how the internet worked by creating connections between resources. The simple concept of open and sharable references means web experiences can be integrated together in an infinite possibility. Thus the web, from its birth, promotes integration. Mobile (at least the version we know today), on the other hand, was conceived without that concept. This fundamental difference has been one of the biggest limiting factors in the mobile ecosystem for the past 6 years.

Information on the web is open. A large portion of information is openly available, another large portion is hidden behind login walls, but fairly easily accessible. Information is passed around between web apps through plugins, widgets, async apis, links, and many other formats. Information in the mobile world is locked up inside apps. There is a very high threshold for app download, and the majority of the apps on phones don’t get opened. Push notifications are used largely as a triggering mechanism rather than an unit of consumable information. SDKs are generally action-based instead of information-based. This makes the majority of mobile experiences inaccessible to users.

On the web, there are many ways we can discover new content, whether it’s through search, curation, social, or any other mechanism. This is because links on the web are open, and the “control” lowers percieved switching cost. On mobile, there are no good ways to discover new content. App search is notoriously bad, and apps are generally not created with broad discoverability in mind. Social platforms tend to keep people on the platforms, which causes the problem of “hit-and-leave” for content publishers. There is no equivalence of “just browsing the web” in the mobile app world, and hence, users lose the ability to casually discover new experiences.

The lack of accessibility and discoverability is further worsened by the lack of communication between apps. Due to OS restrictions, apps live in very controlled sandboxes. Even with the recent development in deeplinking and app plugins, we haven’t seen information passed between apps in a meaningful way except for a few very specific use cases. The “app constellation” model remains unattainable for most developers. There lacks a communication pipe so that apps are aware of other apps, and there lacks a mechanism for apps to define an “embedded experience” inside other apps.

We all know that mobile doesn’t live on a single device. We live in a multi-device world and the devices are in different environments. Environments are important because their refer contexts and the underlining expectations of users. Other than large companies with proprietary homegrown solutions, most apps are not aware of other environments, and have no easy way to communicate between environments. With the upcoming smart watches and internet of things, communication in a multi-device world is a huge opportunity. Cross device experiences like iMessage is and inspiration for thinking about a user as she is using a service.

In the app-centric world, experiences largely live in silos. The switching cost between apps is high, and the poor navigability of the OS makes information inaccessible. It’s quite ironic that the highly accessible hardware (you can take the phone out of your pocket at anytime) is coupled with an inaccessible software layer. Comparing to the ease of information flow in the desktop environment, smartphones don’t come close. We are handicapped by legacy technology layers and OS-layer restrictions to take full advantage of the internet infrstrcutured built up over the last 20 years. The rigid programming paradigms make development slower and more costly. The lack of access to low-level functionality limits the programmer’s ability to innovate. The existing legacy web makes re-designing for a small screen extremely difficult.

With so many problems in the mobile software layer, many companies (include Wildcard - the company I helped to start) are working on new solutions. Mobile cards, deeplinks, various SDKs for identity management, mobile payment are all solutions that give mobile apps new super powers. With the base layer established and many interesting use cases explored, here comes the age of mobile integration.

Technology Behind Wildcard

| Comments

Wildcard launched our first product a few weeks ago - a card-based mobile browser. It’s a new way of browsing the internet on your smart phone, and it’s just the beginning. A group of incredibly talented people came together, designed and built the app over the past 12 months. I want to share a few things under the hood for those who are curious.


We started our journey with the goal of a thin client on iOS. Instead of making a runtime that interprets programming languages and specification of behaviors, we opted to build an app that recognizes “types” of cards and focus on the data. For example, the browser understands the a “product” card, or an “article” card. We did this because of the speed of implementation, and the risk of increasing complexity for a “card language”.

The effort involved, however, is far from the sound of a “thin client”. It’s carefully designed and built by our product / iOS team. Significant efforts has gone into things like custom animation, custom gesture, local caching, etc.

The Wildcard browser is written in Objective-C. We chose this because of implementation speed and user experience. Cross-compiling technologies like PhoneGap or RubyMotion break down quickly when you want to have custom UX. Even though this means we have to start from scratch for Android, I expect the Android UX to be quite different that code-sharing would be very difficult regardless.


When we started our journey, the mobile card ecosystem was in its nascent state. We started by decomposing webpages into their most essential components - which eventually evolved into our own concept of “mobile cards”. A platform was created to convert generic webpages into cards.

For example, a product page on Lululemon might have a search bar, the product details, a checkout button, and a locator to find the closest store. We would create a “product search” card, a “product” card that allows users to checkout, and a store locator card.

Many iterations have gone into the platform, and it has evolved into a framework to execute commands like “extract image url at this XPATH” or “Parse this piece of string into a proper U.S Address”. Many of the iterations have to do with getting to the right level of abstraction, so that humans can manipulate the data pipeline as well as computers (through layers of abstraction). These commands also became building blocks for more complex algorithms - and we are working on machine learning techniques to make the platform more robust.

The platform acts as a blackbox that turns inputs like an URL or a piece of structured data, into a mobile card. It’s configurable by humans and algorithms, it’s parallelizable across machines, and it’s at the core of our technical infrastructure. We chose Java and Dropwizard for a good trade off between performance and ease of implementation. The renaissance in the JVM stack gives us confidence in our technology choice.

Data Services

Wildcard works on many large-scale data problems. As the complexity of our system grew, we grouped together services that directly manipulate data. This set of services includes things like RSS feed readers, small web crawlers, one-off scripts for data processing, and GUI tools to allow direct data manipulation. This is a high-touch/offline environment, where a lot of “raw data” gets processed into a state that can be fed into the platform through a simple API.

Having an offline environment gave us the ability to move quickly without worrying about the stability of our platform. Things can get a little messy if you are not careful, so following good software engineering practices is extra important here. We use a mixture of different technologies in this system, with the dominant languages being Ruby and Javascript.

Search Engine

As we built more and more cards, we started to realize the importance of search. Search is often the best way to expose a large variety of experiences to users. In our case, it has become an essential component of our product.

Building a search engine from scratch is no easy task. We started out with a vertical approach - focusing on e-commerce first. We used techniques like LSA to map queries onto commerce brands, rank the brands, and automatically kick off search within the brands. This is a powerful feature because users will always get the most up-to-date search results from the brands, and we wouldn’t have to do a massive/costly web crawl.

Since then, we have added many more result types into our search index. We have also built a scalable and configurable crawler (across the brands that use mobile cards). Search is the fastest evolving service in our stack, and we are constantly trying to expand our capacity / use cases.

We currently use a combination of Redis, Elasticsearch and different python scripts for search. As the index sizes continue to grow, more scalable solutions will be needed.

Integration Systems

One of the goals of Wildcard is to make our mobile card platform “writable”. This means any content publisher, retailer, service provider is able to take advantage of the system and control their own cards. To make this as easy as possible, we’ve created a product just for that. It allows anyone to publish to Wildcard, Twitter and Pinterest.

We built a schema translation layer in Java to support this product. We also built tools like this to help developers validate and visualize their own card implementations.

Dev Ops

As our engineering team grew, automation became more and more important. We started out with using Chef, Jenkins on top of AWS, and have since adapted an concoction of automation tools.

At the core, we use AWS as the base layer of our infrastructure. We use Chef for server configuration, terraform for orchestration, docker for resource management, graphite/keen for metrics and monitoring, consul for async jobs (like deployment), github/circleci for continuous integration, hubot to tie everything together, and probably many more tools I forgot to mention.

Automation has been a game changer in our daily engineering lives. It’s a significant investment - and it’s necessary. When done well, it can be a significant productivity booster for the engineering team.

As our 15-person product/engineering team continue to grow, our technology will continue to evolve and adapt to new needs. If you are interested in anything discussed here, shoot me a line and I’m happy to chat more.

The Dirty Secret of 10x Engineers

| Comments

"Taken from"

There is a mantra in the startup world - “we only hire 10x engineers”. This is exactly the arrogant, bullshit attitude that turns your company into a fear-driven, political and unproductive place to work. Nobody is consistently a 10x engineer. Here is why:

If someone constantly works at a rate 10 times more productive than the average engineer, this person is an expert who has stopped challenging himself. This could be due to a variety of reasons, but trust me, the smartest engineers got there by constantly challenging themselves and learning new stuff.

In flow theory, the “flow state” is when the right amount of expertise and right amount of challenge intersect. This is a rare occurrence when you are productive at your highest potential. This is your “10x” state. Everyone can have this 10x state. (for more, read this post by Jeff Dickey)

However, almost by default, you are rarely in the flow state when you are working at a startup. Startups work on problems that have not been solved, and they are usually extremely challenging. You should have enough basic understanding in related topics to gain the expertise, but rarely do you already have the expertise. (Already having the expertise would mean you are working on the exact same problem as the one you solved before, and we have a much bigger problem here)

The mode of operation is usually something like this:

  • Hit your head against the wall for a few days
  • Search google, email friends, read papers / books
  • Prototype a few different solutions, realize they are all flawed
  • Cold email experts in the field (or get introduced by friends), set up coffee/skype meetings
  • Build new prototype with newly gained knowledge
  • Repeat

This process is filled with learning new tools, new terminologies and new ways of thinking. None of this qualifies for the prerequisite of operating at your 10x state.

Will you eventually learn all the things you need to learn to be productive? Of course. But that’s usually short-lived. You will get to be 10x when you are building the last prototype (which will grow into the real product). At this point you are so knowledgable in this particular topic that it takes you 10% of the time compare to the first prototype. This is your 10x state.

At this point, you realize the problem you solved is just one piece of the 3000 piece Seurat Sunday Afternoon Jigsaw Puzzle Now you have to move on to the next problem. And the seemingly never-ending death cycle of prototyping starts all over again. Oh by the way, you have to somehow magically align this effort with timeline on the business side, figure out a reasonable deployment strategy, manage your AWS instances, find time to see your boy/girlfriend, etc.

But there is a silver lining here. The more you go through this process, the better you get at navigating the unknown. You learn to use the right tools, you learn resources to look for, you meet other smart people, and most importantly, you learn to look at a unknown problem from an inventor’s eye. All of the experiences you’ve learned will increase your chances of entering your 10x state, and soon people will start calling you a 10x engineer. But you won’t let that get to your head, because now you know too much to know that you can’t possibly know it all.

So this is OUR mantra at Wildcard - “We hire ridiculously intelligent people and challenge them to constantly get better”. We are working on problems no one has solved, and we will constantly push ourselves to learn new things. May we never become 10x engineers.


| Comments

Taken from frothingslosh

5 months ago, Jordan, Doug and I sat in Doug’s living room in San Francisco for a week, talking about the mobile web and our visions of what it should be. It was an exciting week. Github account was created, AWS machines provisioned, and sketches were drawn.

We were all fed up with the current state of the mobile internet. It is an ecosystem plagued by terrible user experiences and little-to-no common practices. Users are left to their own devices and businesses lost precious opportunities. So we set out to change all that. Our goals are ambitious, our problems are hairy, and on top of that we decided to bootstrap, which means resources are scarce.

In the subsequent months, we moved back to New York, got a few desks at a co-working space (thanks to Lerer Ventures), and went to work. To better understand the problem, we talked to the smartest people we know, and created prototype after prototype.

We are still in the thick of it - changing the mobile web on a fundamental and infrastructural level is no easy task. It’s one of those rare projects that sit at the borderline between a completely crazy idea and a huge opportunity. This type of projects need time and a massive amount of effort. We will create infrastructure that the mobile web lacks today, we will create new modes for people to interact with “the internet” on the go, and we will invent new ways for businesses to reach their customers. The difference between now and 5 months ago is that now we have $3 million bucks, a few awesome new additions to the team, new prototypes to play with, and a new company name.

Our new company is called Wildcard. Jordan describes it well in his blog post about what we are up to, and Doug has posted about some technical problems we are working on.

Drop me a line if you want to learn more, or sign up for early access to the future by putting your email in the sign up form.

Where Is My Robot Scientist?

| Comments


Shot from the Movie AI

Mass production is something that most of us take for granted today. We enjoy the effect of it everyday but rarely think about the dramatic change it has brought to the world. Almost everything we buy today is mass produced.

One thing that’s never been able to be mass-produced is ideas. An idea can be a song, a piece of writing, a software program, or a business plan. The process of idea creation is a personal experience that requires creativity and complex thinking. It seems impossible for machines and science to create ideas like we can.

But times have changed since the day of mechanical, dumb machines that can only handle simple tasks. Recent advancements in AI and data science are giving us signs of truly “intelligent” machines, capable of mass-producing original ideas. How exactly can we do it? To answer this question, we have to understand:

  • Fundamental pieces of a mass-production system
  • Categories of ideas in the world.

Mass Production System

It’s fairly straight-forward to understand a mass-production system. People have been studying and improving it for centuries, ever since the industrial revolution (one can argue it started a lot earlier than that, but you get the point). Such systems usually involve

  • Supply chain to gather raw materials
  • Transformation process to change raw materials into generally useful, multi-purpose forms
  • Assembly lines that assemble small pieces into functional units, again, usually multi-purpose
  • Assembly lines that assemble functional units into final products
  • Quality assurance in each step

There are also distribution and fulfillment systems, but let’s focus on the creation process for now.

Categories of Ideas

Categorizing all ideas in the world is much harder. One can turn to cosmology or epistemology, but that tends to get philosophical pretty quickly. It gets even more confusing when the categories of ideas itself is an idea (hmm… did somebody say M.C Escher?) But for arguments sake, let’s group ideas into:

  • Metaphysical ideas (music, modern art - ideas for ideas sake)
  • Worldly ideas (journalism, a business plan, a piece of computer program - ideas rooted in the physical world)

Mass Producing Ideas

To imagine a mass production system for metaphysical ideas, let’s think about music. Notes/sound are the raw materials. Rhythm, riffs, choruses, movements are the small, functional units. Songs are the final products. The brute-force approach would be generating an infinite number of rhythms, riffs, choruses, create all permutation of these elements and listen to every generated song to find the ones you like. But that would take an infinite amount of time.

The key here is quality control. At each step, we identify the “quality” we care about, and create a filter to only let through what we care about. Machine learning technology can already learn “styles” of music. Rules can be created to structure pieces of music into songs, and music analytics engines + recommendation algorithms can analyze them to determine if you will like the music.

Worldly ideas on the other hand, are harder to create. There are many constraints that are hard to capture using mathematics / rules. How can we generate a piece of original news article? What about a business plan to solve a real-world problem? It seems that we have to teach machines to “understand” the real world before we can generate “analysis” from it.

But short of creating original worldly ideas, we can create derivatives of existing ideas. With sufficient data, machines can “learn” from existing ideas and create similar ideas or other forms of the same ideas. The process varies depending on the algorithm, but usually statistical analysis and natural language processing is involved. For example, text analysis engines like the SRI Internaional are able to take existing text and create short summaries from them. Diagnostic engines are able to use patient data and symptoms to create diagnosis.


The goal of mass production is a very simple economic principle: dramatic reduction on cost and dramatic increase on supply. We are still far away from creating music as good as Bach, or generating news reports worthy of the New York Times, but technologies that create ideas have fundamental impacts on society.

With SRI’s text summary technology, it now takes 10% of the time it did before to achieve the same breath in the past, which means it increased our reading speed by 1000%. Electronic music lowers the bar for music production by eliminating the necessity of learning to play musical instruments (biggest hurdle of music creation). The amount of new electronic music changed the fundamentals of the publishing side of the music industry. Companies like Game Salad try to lower the threshold for creating games, and the effect has been the commoditization of game creation. With the same level resources, my friends are way more likely to create games I want to play than Zanga ever will.

Technology is at a point to challenge the traditional method of idea creation. With the right application, we will be able to create more new ideas than ever before. And maybe one day, we will have a robot scientist making things for us.

Of Flying Cars and Meal in a Pill

| Comments

If you haven’t watched this video of the debate between Marc Andreessen and Peter Thiel, you should. It’s some of the best content I’ve consumed in the past 6 months, and I highly recommend watching it.

I really like the way Andreessen describe the Internet. While the internet alone is not enough to “save innovation”, it will be the information backbone for almost any new innovation going forward. Self-driving cars, wearable smart devices, or even cancer treatment will rely on it. At its core, the internet is an information management / distribution system, supported by governments and some of the biggest corporations in the world. It takes in information and sends it to the people who want it with incredible speed and accuracy. Since almost everything with significant impact needs management and distribution, the internet will be the most important piece of support infrastructure for innovation in the foreseeable future.

One of the downsides of the internet infrastructure as a distribution system is the restriction of wired networks. Since we haven’t figured out how to economically scale satellite data transmission, the next best thing is local/regional wireless transmission. To that extend, mobile will be a larger infrastructure than the internet today. For one reason or another, mobile hardware did not pan out like the open architecture of PCs. This places a lot of trust on companies for an open ecosystem to create enough room and incentive for innovation. The iPhone might not be the best suited for connecting self-driving cars, but they have the best distribution and that’s valuable. It’s too great of a hurdle for someone to create a self-driving car control panel that plugs into the iPhone, when Apple is charging developers ridiculous fees just to connect through the data port. Of course they are not trying to make a buck here, it’s a “more acceptable” way to limit competition and that’s why almost all hardware innovations on top of the iOS ecosystem has been low-data-transmission devices like Square or Kinsa that go through the headphone jack. Open access to widely distributed hardware will be important to the mobile ecosystem and sustaining the rate of innovation.

It’s exciting to think about innovation in the fields of energy, raw material, transportation, and bio tech. Andreessen and Thiel talked a lot about the obstacles in these fields, but I’d like to think about the ideal situation. For example, energy is a highly controlled and regulated field. Most people make money in energy because of the lack of innovation. It’s all about supply chain control and price control. Fracking is the “latest and greatest” in oil, but it was first invented and commercialized in the 40s. It took close to 70 years and multiple wars for it to be as big as it is today. What will it take for there to be as many energy hackers as there are javascript hackers? It’s not because there are less energy / chemical engineers. It’s because of the (negative) hollywood effect and the lack of clear path to success. Being a code hacker means you will at least be financially self-sufficient, with the possibility of creating the next Napster or Facebook and have huge impact. Being an energy hacker means you will probably be jobless, have no prior examples to follow, and eventually be acuqa-hired by one of the 3 giant corps in your industry for pennies while they go on and use your technology to make millions.

Equally as important is the business side of these industries. Not just venture capital, but also “business guy” founders, marketers, community management, etc. It takes a few successful examples and some marketing to set a trend, but it will be hard for these examples to come from within the industry because of its ingrained culture. University research groups / outsiders might be better positioned to create new innovation in these industries, and software startups have created a great model of operation. The key here is for the ecosystem to provide enough support so these young companies can survive on their own. Even though the constraints are different, energy / transportation / bio tech startups can take a lot of the same principles when it comes to figuring out product-market fit, creating communities, human-centric design, etc.

Btw, who do you think won the debate? Personally I liked Thiel’s arguments better - more quantitative and less anecdotal, but I agree with Andreessen that innovation is happening faster than ever before.

Flying cars and meals in a pill are figurative imagination from the past, and we have embodiments of these concepts today. Think Google self-driving cars and new dietary movement (juice, protein shakes, multi-vitamin pills and other meal supplements) With the macro trends like the hardware renaissance and biohacking, I’m very excited to see more entrepreneurs in other engineering disciplines.

Intent and the Internet

| Comments

I’ve been thinking about intent lately. In the world of “big data”, “sentiment analysis”, “behavioral marketing” (blah blah blah…), “we use intent to drive user behavior change” is the party line. It’s a shame that “driving intent” is this black box that “our data scientists created” and no one else understands it. What does it really mean in the context of the internet we live in today?

To Lay the Ground Work

On the most fundamental level, every small action we do on a webpage is triggered by an intent. These are not “want to buy a car”, “want babies” intent. These are more like “click on name link”, “navigate to home page”, “sign up”, etc. Micro-view, super short-term, knee-jerk reaction type of stuff. From that we can define an “Intent” as “the desire of performing an action”, which really is the action itself + some meta data (like time, location, etc).

Now that’s quite a simplistic and lower-value view of Intents. What people really want is to derive “insights” from “intents”, which are the more “meta” intents people talk about in the advertising world (“want to buy a BMW”, “want to go to Daft Punk concert”, etc).

Let’s call the more insightful intents “meta-intents”, and the lower-level, action-representations “simple-intents”.

The Problem Of Predicting Intent

So what does it take to arrive at the “meta-intents” from a bunch of recorded “simple-intents”? When we translate it to “data science” terms, the question becomes “Given a series of prior simple actions, how likely is it for a person to take a particular action I care about in the immediate future?”

Statisticians have long studied this problem. Countless research studies have been conducted, ranging from brand loyalty, purchase behavior, to World of Warcraft and condom usage. Many regressions and latent-models and collaborative filters later, they all have one thing in common: the data has to be high-signal and low-noise. Said in another way, we have to know all of the relevant actions and at the same time filter out actions that are not relevant.

To put it in an example: in a cookie-centric world, an advertiser typically have about 10%-25% of the data. This means if I visited 100 sites this morning, they know about 10-15 of them. How high of a signal is that? How accurately can they predict what I’m trying to do?

In Real Life

Simple intents and meta intents inform one-another. We can derive simple-intents from meta-intents to guide users down to specific paths, and we can observe users’ simple-intents to derive meta-intents. But these 2 operations require different amounts of efforts. “Meta-to-simple” can be achieved almost automatically (mostly driven by algorithms), “simple-to-meta” is much more manual (data scientists or analysts validating assumptions on top of hadoop clusters). On by the way, it’s not obvious what those meta intents are so the assumptions are hard to make. Think the book Freakonomics.

From a cold-start, since you don’t have enough data to study any patterns of simple intents, ‘meta-to-simple’ is the only approach. There might still be room to use public data sets to generate meta-intents, but that’s a timed window as data science becomes commoditized over time. A data-driven product needs to have enough data science DNA in-house to continually experiment with new assumptions, and that’s how you build true advantages that no one else can copy.

There are a lot more topics to think about, like personal profile and short-term vs. long-term intent. We’ll talk about that in another post.

Advice From an Early Startup Employee

| Comments

Just a short 14 months ago, I was faced with a decision of joining a startup as the first employee. Having worked at a slightly bigger startup, I have had some experience with working in small teams. But the decision of joining a team of 2 people is still a tough one. It was a leap of faith, facilitated by some gentle persuasion by Jordan and Doug. Late last week, we announced that Hyperpublic is acquired by Groupon. I can’t say I knew this was going to happen 14 months ago, but I know that I’ve made the right decision. If you are in a similar situation, I hope this post will help you rationalize your decision making process.

People join startups for different reasons, but almost everyone does it partially for the upside of making lots of money through the equity plans. This is probably the biggest myth for startup employees. The chance of your startup turning into Google or Facebook is practically zero. So the first question you should ask is:

Why should I join a startup if it’s not for the money?

This means completely rule out the money factor, and this is where people’s opinions diverge. For some people it’s the thrill of building something from the ground up, for some people it’s the prospect of taking on a wide range of responsibilities. Whatever it is for you, this is not a matter to be taken lightly. Here are some questions I see people often have and my thoughts about them:

Q: I want to get in early so when this company goes big I’ll be on top. Should I join a startup?
A: If this is your main motivation, it’ll be a long and treacherous process for you. The benefit is far out-weighted by the risk here, you’d have to be a really irrational person to do it. I find the carrot is usually not enough incentive to carry people over the hump. You will be exposed the ugly truths as the company figures out a path to survival, and it’s sometimes soul-crushingly painful. At times you will feel like you’ve just wasted the last 6 month, year, 2 years making something that is doomed to fail, and your friends who work at the big-co next door is making 150k salary while cruising through life. And you will get discouraged. But unlike the founders, you are not nearly as invested in the mission, so you will quit.

Q: I’m not sure about the founders, but I love the mission of this startup. Should I join?
A: From my experience, the is almost a sure death. As proven by history time and time again, ideas aren’t worth much. Ten years ago, people use to value ideas alot more, partially because the startup culture back then was less open. But today startups have become more agile, and the startup landscape is changing more rapidly than ever. Don’t join someone you can’t completely respect.

Q: I don’t know a lot about this industry, but I’m super impressed by the founders. Should I join?
A: Opposite of the last one, and much more promising. Sometimes it’s difficult to evaluate the quality of an idea, especially if you haven’t been working in that industry for more than a few years. Valuable companies are the ones able to adapt and execute, which makes the original idea less valuable. This puts more emphasis on the founders. How do you evaluate a founder? A great track record helps, but not having it doesn’t mean they cannot succeed. They have to be intelligent, genuine, and most importantly, super resourceful. If you find someone who check off all of these marks, I’d say go for it. Good founders have the tendency of getting stuff done come hell or high water. Even if the startup ends up failing, having worked with great people leads you to other great opportunities.

Q: I’m ready to move on, but my team now needs me. Plus, my boss would kill me if I leave.
A: We’ve all been there. You don’t want to let your teammates down by leaving. But this is a 2-way street. This is what happens if current job is not doing it for you and you try to be a “nice guy” by staying: you still don’t enjoy working there, your current work will go as it’s always been, and the startup will suffer. No one really wins in this situation. Give your 2-weeks notice, be respectful, and move on.

Q: I feel like I’ve worked in the corporate environment, it’s time to move onto a new challenge with more responsibilities. Should I join?
Q: I want to start my own company some day, so I’m here to learn. Should I join?
A: These are what I consider “the right reasons” to join a startup. To me, startup is a lifestyle. It’s really exciting at times, pretty fun and interesting most of the time, and really stressful and devastating occasionally. What carries you through the tough times is your personal resilience, passion and curiosity. You will get the opportunity of doing a little bit of everything, taking something by the horn and running with it. You get rewarded for taking risks and learn from making mistakes. The right attitude here takes you a long way.

Q: I can always go work at another startup if this one doesn’t work out right?
A: True. But you want to be careful here. Think of joining a startup as a 2-3 year career investment. How many 2-3 year chunks do you have? How many are you willing to invest?

Here are some day-to-day stuff to think about:

Q: I hear startup people work crazy hours.
A: That’s true somewhere. But if a company is well-ran, you shouldn’t be working more than 65 hrs a week on average. I’d say I worked a 60 hr week on average at Hyperpublic.

Q: I’ve made a lot of friends at my old job. Will I do the same at a startup?
A: It really depends on the company. Some companies are really social and some keep it professional. If you really like a social work environment, you’ve gotta make sure they have that.

Q: I hear you meet a lot of cool people (outside of your own company) by working at a startup. Is that true?
A: It’s true, but it doesn’t come for free. There are plenty of “networking” events, going to all of them can suck up a lot of time. You don’t want to talk to the people who are JUST NETWORKING. My advice is to pick events hosted by good startups, and pick the ones that will teach you something. Getting out of a conversation politely is a good skill to learn. Remember to always be respectful.

Q: I’m a PHD in (Machine Learning | NLP | PL | Cryptography| etc…), what’s it gonna be like for me at a startup?
A: Pretty different than your academic research life for sure. I don’t have a PHD but I’ve done a few years of academic research and have worked with many PHDs both in research settings and startup settings. Sometimes you are gonna have to write that simple CRUD app or that piece of front-end javascript just because everyone else is busy and the company really needs it. But you’ll also have a lot more control in the work you do, and that’s utilizing science in a truly practical manner.

Q: What’s the most exciting part about joining a startup?
A: I can only speak from my own experience. The most exciting thing is that I’ve grown so much faster in the past 14 months. I find myself becoming more resourceful. I have more ideas when it comes to getting stuff done, and I learned it through getting stuff done everyday in the last 14 months.

Q: What’s the suckiest part about joining a startup?
A: As a startup, there is no room for HR mistakes. That’s why when there is a misfit, you have to execute quickly. This is not personal, and it’s not even a statement on the person’s ability. It’s simply a “misfit”. But it still sucks to see people who have become your close friends being let go.

Q: Just how much WILL I make if all goes well?
A: Let’s just do a back-of-the-envelope calculation: let’s say you get 3% of the company (This is completely arbitrary. See PG’s essay for an idea on how much you should ask for). After a few rounds of funding (and most likely 2-3 years), you will be diluted to less than 2%. This means if your company gets sold at 100million, you will make less than 2million. Think about how many companies you know that’s sold for 100million, then think about how many launch announcements you hear per week. I think you get the picture. Also see here and here

Q: I’ve considered everything. Still not sure about this.
A: Try joining on trial basis. This is a great idea for both the startup and the employee if executed correctly. If you decide to do this, do some research about the startup and make sure they don’t have a bad track record of trying to get “cheap” work out of people this way. Do it on a project-basis and set the terms for both cases (hire or no hire) before you start.


Each of these points can be its own blog post, and I might pick specific topics to go into depth in the future. Good luck with this decision. It can be the best thing you’ll ever do for your career.

Brainstorming vs. Casual Conversations

| Comments

Brainstorming is an integral part of the creative process, and it’s especially true for software/product design.

The New Yorker published a great article this week titled “Group Think: The Brainstorming Myth”. The article tries to prove that “brainstorming” is not as efficient as “casual conversations”, mainly because it discourages criticism. Also see the linkbate on Hacker News “Brainstorming Doesn’t Really Work”.

The author makes great points about some downsides of brainstorming, backing it up with experiments and data. For example, the 2003 UC Berkeley experiment suggests that, groups who arrive to results through a “debate” process is often more productive than groups who use a “brainstorm” process, even though at times debating is unpleasant. On a slightly tangential topic, the author also brings up the point that “unfamiliarity” can increase productivity. (Backed by the Broadway production experiment conducted by Brian Uzzi at Northwestern) The article goes through many successful examples of modern work space setups that encourage casual conversations between multiple disciplines.

I totally disagree with what the linkbate suggests. (Although the article itself is quite interesting) Brainstorming and casual conversation have very different roles in the creative process. The points presented in the article are all valid, but the comparison is inappropriate. In a modern-day work environment, we need both.

Brainstorming is an organized activity. While it’s difficult to administor (therefore most brainstorming sessions are pretty poorly ran), it’s quite effective if implemented right. Here is why:

  • It gets all the shitty ideas out of your system. Everyone has them, it doesn’t matter how smart/creative you are. Getting all the shitty ideas out of your head frees more mental space for you to focus on the good ones.
  • It’s highly collaborative. It’s difficult to have a 5-way casual conversation. But having 5 different perspectives is super valuable. Sometimes 1 small idea changes the whole game.
  • Most brainstorming sessions involve Whiteboards. This is good. Laying things out visually can again, free up more energy to focus on the hard problems.
  • Breath-first vs. depth-first. For those who are not familiar with graph theory, BFS means exploring all of the adjacent points first, and DFS means go as deep as possible on one idea before exploring other ideas. Brainstorming tends to be on the BFS side, and that’s important especially at the early stage of a product.

I’m personally a huge fan of casual conversations. It’s a pressure-free and natural way to refine ideas and solve problems from other angles. These mini sessions can be extremely productive, but it’s kind of a hit-or-miss. To maximize the probablility of productive casual conversations here at Hyperpublic, we essentially sit in one big circle with the snack table in the center. Some of our best work come from casual conversations. Coffee trips is another good source of interesting discussions. When you are solving a technical problem, being able to talk to someone else while the problem is fresh in your head can be very productive.

Brainstorm and casual conversation are both important. They compliment each other in various ways, and the right practice of both can increase our productivity by leaps and bounds.