Apr 14, 2014

Hunger to Succeed

What makes an excellent entrepreneur?

I've been asking myself this question a lot lately. It's been two years since I quit my job to pursue entrepreneurship full-time. I've read, discussed, and/or thought much about this question. There exist many opinions - some very well-qualified and some not so qualified - on the characteristics that constitute an excellent entrepreneur.

From my observation and experience, the following traits are the most important and necessary: general IQ, education, specialized knowledge, risk appetite, work ethic, and access to capital. However, any subset of them are insufficient.

The one missing element that unifies all these traits, and whose absence acts as a veto on the strength of all of them, is the Hunger to Succeed. This desire must be insatiable, obsessive, and totally all-consuming, or else all the other traits are insufficient. The hunger to succeed must permeate all thoughts, both when awake and when asleep, to an extent that it dominates everything.

The incorrect perspective and mindset, that I find in many startup enthusiasts:
"I'm going to see if I can get that next raise and promotion, and if the opportunity presents itself, then maybe, just maybe, I'll give entrepreneurship a shot. Hopefully, I can make some money. I'm kinda scared of failing and looking stupid. What things can I put on my resume and LinkedIn profile to show I'm interested in entrepreneurship? I need work-life balance and a general normal life."

The correct perspective and mindset, that I find in some other entrepreneurs and myself:
"I want to succeed so bad that everything else simply doesn't matter. There's no hedging, I'm "all-in." I have absolutely no desire to include another line on my resume or LinkedIn profile in order to secure my next job - I want this venture to make any other job optional. I'm willing to sacrifice everything and work until I drop. Work-life balance be damned. Living a normal life are for people who will never get much accomplished in their lives."

Most of the day-to-day in early-stage entrepreneurship is gritty, annoying, mundane, unsexy, etc. The victories and successes are small, infrequent, and fleeting, but the failures, frustrations, anxieties, and general pain are constant and loom large. The only real way to continue despite these issues is to have that insatiable hunger to succeed. It's the one trait that dominates all others.

- Kevin

Dec 11, 2013

The Importance of Talent

Arguably, one of the most crucial, if not the most crucial decision you have to make as a start-up founder is choosing who you surround yourself with. And knowing how to hire is one of the most difficult parts of the job.

Traditionally, companies emphasize first-order competency in their hiring process. They look at the specific experience and skills you have. Are you good with Excel; can you code in Javascript; are you familiar with Healthcare; have you brought a product to market? Although these big companies will claim to look for "smart people" with "potential", their main imperative is to fill in a specific position with a specific candidate. They are not looking for the best, and why should they? They just need someone who can fill the role with minimal risk and friction. Eric Paley encapsulates this concept well in The Curve of Talent. "The large company corporate world is filled with C players. [...] C performers struggle to competently fill their role, but are somewhat productive with sufficient coaching. [...] Large companies thrive on inertia and the core job description of a large company employee is to keep that inertia going and do nothing to screw it up.

As much as this type of thinking works for large companies, it can lead to costly mistakes for start-ups. Start-ups are constantly on the edge of failure and cannot afford to have reasonably competent individuals at their core - people who deliver only the bare minimum. The truism "If there's any doubt, there's no doubt." is particularly applicable here. What they need are individuals with strong second-order competency - those who can learn quickly, adapt and roll with the punches without losing their resolve.
If you think about return on investment as a curve over time, you will realize that those with simply experience have a higher Y-intercept - they are more valuable at the time of hiring, but their competency is "maxed out". On the contrary, a candidate with greater potential but less relevant experience has a steeper curve - he starts lower but will, not too far down the line, become far more valuable to the company.

Don't hire based on Y-intercept.

(Taken from Professor Ousterhout's class at Stanford).

These individuals are much harder to find, because their potential is not written black on white on their resume. These are hires you can only appraise by sitting down and engaging with, rather than putting them through a formulaic interview process. Not only that, they are very selective about who they choose to work with. So keep looking for that candidate that will give your team a boost, and don't settle.

The compounding return on hiring decisions doesn't only apply to your core team, but all the people who are involved in helping your venture in some shape or form: lawyers, accountants, contractors and even advisers. In these situations, the better options are often the pricier ones, but well worth the cost. Their increased competency and better decision-making will have an outsized effect on the fate of your start-up.
Unless you can't afford it, you are better off with a lawyer who is twice is expensive if you think they are at least twice as good as your other options. Even more so for a top-notch developer who can get the job done 10x as fast and take your product to the next level. A caveat to my point is that the more expensive options are not always the best ones - as with everything you buy, the price tag is reflective of quality only to a certain degree, the rest is up to your better judgement.

The bottom line is, you should always be selective about who you work with, even if that means taking a little longer to find the right person.

Dec 6, 2013

Research, Tech, and Business

Happy to sneak this quick post out. This startup has been consuming every single moment of my waking life, and sometimes I dream about it too. I love writing, both in English and in code (Python, Javascript [jQuery], HTML, CSS, PHP, R) but have been spending almost all my time in code.

Coming from a scientific and math background, was thinking of the relationship between scientific research in a mathematical field, software engineering, and business.

1. Research in Physics and Applied Math
Lifting an 80-pound weight 80% of the time (deep, creative, hard thinking that requires your entire attention) and lifting a 20-pound weight 20% of the time (checking your factors of two, sub- and superscripts, minus signs, and using various prepackaged theorems in, for example, partial differential equations or group theory, and being generally aware of the latest facts in the literature).

2. Software Engineering and Coding
Lifting an 80-pound weight 60% of the time (conceptualization and problem-solving on slightly less difficult problems than pure physics/math, on average) and 40-pound weight 40% of the time (actually writing the code efficiently while not making various syntactic/semantic mistakes, bread and butter debugging and testing, following proper software engineering principles).

3. Business and Entrepreneurship
Lifting a 20-pound weight 80% of the time (logistical, operational, and housekeeping tasks that need to be done efficiently, such as following up with people, lower-level soft skills, executing plans efficiently and cost-effectively) and an 80-pound weight 20% of the time (strategizing and deeply understanding how macroeconomic/market factors relate to the microeconomic concerns of your business, or higher-level soft skills such as understanding the various incentives of all parties).

- Kevin

Jun 11, 2013

Market vs. Technological Risk

We've observed the proliferation of social, mobile and gaming start-ups in the last few years, and how some of them managed to hit the 'lottery ticket' and make large exits, while most others crash and burn. It is my opinion that most start-ups in those spaces are doomed to failure due to the intense competitiveness of those markets. Or at the very least unable to build a long term business model by focusing purely on user growth.

A better way of understanding the current problem in the start-up ecosystem is to think about market risk vs. technological risk. The risk involved in creating a new company is inevitably a mixture of those two, and it is interesting to think about where on the spectrum a given start-up will fall.

Many of the over-valued and 'pump and dump' start-ups in the social, e-commerce and mobile space are faced with the challenge of extreme market risk. Although they are not necessarily tackling a difficult problem from a technological standpoint, the intense competition with other similar start-ups and uncertainty when it comes to user adoption and monetization make them highly volatile. And their outcome is less in the hands of the founders, thus the label of 'lottery ticket'.
The only ones that succeed are those that manage to create their own specific market (ex: Twitter) or brand themselves exceptionally (ex: Zappos). 
For that reason, many start-up will often try to label themselves as unique or different, and narrow their market, despite that not being the case. They will tell intersection stories: LinkedIn ∩ Artists ∩ Online Gallery. Peter Thiel has a good example of this type of start-up:
"Starting a new South Indian food restaurant on Castro Street ... is, a hard way to make money. It’s a big, competitive market. But when you focus on your one or two differentiating factors, it’s easy to convince yourself that it’s not."
There is a rush to get into the 'trendy' markets and get a product off the ground quickly, pivot as many times as necessary and get accelerated ad nauseum, losing sight of any real long term goal. Even though the initial execution might be easier, at the end of the day the same amount of sweat and tears is involved than with an ambitious, long-term focused idea.

Contrast that with major tech companies like Google or Apple. During their inception, most of the risk involved coming up with the right technology to address the market needs, and pulling it off. They were not worried about how unique their market is, how many users they need to get in order to get to the next stage of funding, or how they will monetize, because their product was fundamentally novel, useful and difficult to pull off. They are shielding themselves from a hyper-competitive market with a high barrier to entry.
An extreme example of technological risk is SpaceX. The market risk is virtually nonexistent - they will find clients if they can create a relatively cheap and reliable rocket - but getting there involves considerable effort and risk.
Tackling difficult and concrete problems reduces the importance of market risk (albeit not completely, since product/market fit is always paramount) and puts more emphasis on the type of risk that founders have control over: addressing specific customer needs, improving the quality of the product.
As Paul Grahams says:
"That scariness makes ambitious ideas doubly valuable. In addition to their intrinsic value, they're like undervalued stocks in the sense that there's less demand for them among founders. If you pick an ambitious idea, you'll have less competition, because everyone else will have been frightened off by the challenges involved."

I believe that if more start-ups where tackling difficult problems, rather than going for what is 'trendy' and easily executable, we would not be in a climate of market risk and facing the Series A crunch that we are facing today.

May 23, 2013

Political Philosophy and Population Density

I always identified most closely with libertarianism, but found that the deeper I thought and the more facts I used to inform and challenge my thinking, the more I could see libertarianism's limitations in particular and could understand (and sometimes even believe) arguments from any part of the political spectrum in general.

To this end, I've been thinking of how theorizing about political philosophy according to axioms and in a vacuum is highly limited, in particular since it does not account for population density.

For example, take NYC Mayor Bloomberg's proposed and unsuccessful ban on soda and sugary drinks sold in containers greater than 16 ounces. The core justification of this paternalistic regulation was to protect people from themselves. It's a fact that over 10% of adults in NYC have diabetes and this regulation would mitigate some of the problems that NYC residents face and furthermore lower the costs of healthcare provided to those people.

On the other hand, civil libertarians believe this ban infringes on citizens' right to choice and furthermore imposes various compliance costs on both vendors and buyers that act effectively as an extra tax. Why should the government have so much power over the free exchange of money for goods, especially when that money was obtained by hard work?

Of course, my immediate reaction to the soda ban was one of outrage and was more closely aligned with the civil libertarian point of view. Since I find it compulsory to challenge my own views, I've been considering the meaning of individual liberty and responsibility, especially when tempered and informed by economic concerns and in the context of population density.

Freedom of choice is an interesting concept in itself. For example, what does social freedom mean when you lack economic freedom? Would a liberal person dare voice their views on abortion, religion, or taxes in the public domain if their employer, and means of sustenance, were conservative? Likewise, would a conservative person dare voice their views on immigration, healthcare, or education if their employer were liberal? What does personal choice mean when someone does not have sufficient education or intelligence to comprehend the ramifications of their choices? This is especially unclear when there may exist influences that are heavily incentivized to compel people to bad choices, such as the tobacco or junk food industry.

Let us first propose a thought experiment that not only the soda ban took place, but bans on unhealthy foods, smoking, and alcohol and in general paternalistic laws also forced people to make more beneficial life choices such as exercising. Quality of life would go up since people would generally be healthier and therefore healthcare costs to support health complications stemming from obesity, diabetes, and other afflictions would go down.

Now let us take the more libertarian point of view that no paternalistic laws are ever passed and people are free to choose. Here, healthcare costs would spike. Those with private insurance would see a spike in their premiums. The healthcare provided to those with Medicaid and Medicare would exact a higher cost from the rest of society, in both the explicit and visible form of higher taxes and more hidden and implicit form of higher costs to employers who must contribute to their employees' healthcare.

In both cases, there is baseline that must be paid, that represents the cost of living in society. These costs may change depending on the density of the population. In the first case with the paternalistic laws, the citizens must pay in terms of individual liberty, and more so for higher population density. In the second case with libertarian laws, the citizens would instead pay with quantity and quality of healthy life (for those who choose unwisely) or with their economic resources, and again more so with a higher population density.

These costs are the tradeoff for the benefits that come from living in a society. For the price of taxes and a few restrictions on your liberty, you benefit from paved roads and their maintenance to travel, communications systems to keep in touch and conduct business, police officers to protect you and your property, and so on. Any one of these beneficial services and goods could occupy all of your energy, attention, and time. Taxes are a mechanism that allow for the realization of economies of scale, and loss of personal liberty is an accompanying and inevitable cost.

I've found that accounting for population density may contextualize problems in political philosophy in such a way that many conflicting viewpoints can both be correct. Consider the two extremes of high and low population density. In an area with a high population density like NYC, it's hard to justify the unrestricted ownership and free sales of handguns and other firearms since the extra dangers posed to the group may outweigh the benefits of protection for the individual. However, in an area of low population density like in rural America, there are almost no detrimental effects of law-abiding citizens amassing even huge arsenals of firearms. Taking this to the extreme, imagine if humanity were able to exist in such low density as 1 person per solar system. In this case, even the personal ownership and recreational use of high-yield nuclear bombs would be harmless (I suppose one way to interpret this would be to have your very own star).

When viewed in the context of population density, many political positions are neither absolutely correct nor incorrect, but are more or less so according to the population density. I say 'many' and not all ,since some political issues that go beyond the fundamental tension of the individual and the group, for example, various positions on abortion or civil rights issues. Regardless, progress in political philosophy can be made if population density is accounted for, even if not definite resolution is achieved.

- Kevin

Apr 3, 2013

Thoughts on Testing Software

As my co-founder Nat and I are building out our backend systems using Python, Mongo, etc., we're writing suites of test code that are starting to rival or even surpass the production code base in both size and complexity since there's so much to consider: unit tests, functional tests, and end-to-end tests, as well as tests of (time-dependent) data quality, each of which could be a full-time job in itself. Thought I'd take a breather from the marathon known as founding a company to consider some ideas about software testing in general.

From my knowledge of and experience with large-scale software engineering, testing code is not just added value to existing code, but is fundamentally just as important as the production code itself. "How Google Tests Code" by James Whittaker, James Arbon, and Jeff Carollo gave a fascinating look into how Google structures its development. It was interesting that the status and monetary rewards given to testers at Google are on par with pure software engineers. There currently exist three software engineer titles at Google with a varying degree of testing duties: 
  • Software Engineer (SWE) is the traditional developer role concerned with writing code that gets used by consumers.
  • Software Engineers in Test (SET) is also a developer role, but with a focus on testability and general test infrastructure.
  • Test Engineer (TE) have responsibilities that overlap with the SETs, but with more focus towards users. 
Fortunately or unfortunately, startup founders need to do all three, while under many different pressures.

Production Code :: Testing Code
I've been considering the complementary roles of production code and testing code. Production code in relation to the test code that serves to test it should not be viewed as two different aspects of software development, but rather intimately related to form an indistinguishable whole. The list below organizes related concepts, with left hand and right hand terms related. These distinctions are not perfectly independent, but provide a first approximation to consider such related ideas.

Schrodinger Picture :: Heisenberg Picture
I view the complementary relationship between production and testing code as akin to the two ways that quantum mechanics (the field in which I did my phd dissertation research) may be formulated under either the Schrodinger Picture or the Heisenberg Picture. (Please feel free to move onto the next sections if you haven't had exposure to quantum mechanics, as those other sections consider the same ideas in a different context.) In the Schrodinger Picture, the state vectors describing a quantum system evolve in time, but the operators that act on them remain time independent. In the Heisenberg Picture, in contrast, the state vectors themselves remain time-independent and while the operators evolve in time. One may view production code as the system of interest more akin to the Schrodinger picture, while focusing on the changing test environment in which the code executes more akin to the Heisenberg Picture.

System of Interest :: Environment
One way to understand how quantum systems lose their quantum properties is through the process of Decoherence, in which there is no collapse of the wavefunction and instead the environment acts continuously to weakly measure the system of interest, eventually so that a purely quantum system with such quantum properties as superposition, entanglement, and non-locality transitions into a classical system that no longer exhibits those qualities. Taking this view further, not only can the environment be viewed as a large factor in understand your quantum state of interest, but it is fundamentally involved in defining the very nature of what can be observed in the quantum system itself (in particular, what base is the environment measuring the quantum system of interest). To connect this with production and test code, you can consider the production code as the system of interest, with the testing code acting to place it different environments with different parameters.

Observed :: Observer (but not strictly)
The production code is the system that is observed, whereas the various external factors that affect it serve to "observe" it under different circumstances. Production code may be correct only when observed in a specific set of ways.

Low Degrees of Freedom :: High Degrees of Freedom
We can view production code as having a lower number of degrees of freedom of interest compared to the higher degrees of freedom in testing. When writing the code, we assume that we understand the failure points and write exception handling to deal with known unknowns accordingly. Testing allows you to expand these known unknowns artificially to encompass a larger space of possibilities or degrees of freedom.

Current Outcome :: Counterfactual
Production code concerns what is tangible, concrete, and exists right now, and various error handling accounts for what the programmer understands encompassing a small set of cases that intuitively make sense. On the other hand, the space of branching points and data flow through your code is essentially infinite. For example, an unsigned long int in C++ goes from 0 to 4294967295. A complete and perfect testing program would need to account for all the other "counterfactual branchings" in addition to the current long int the program is processing or is stored in memory.

Subject :: White Space
Just like the text in a page or the subject of a photograph respectively require white space and empty space to defines or enhances the subject (it's hard to read text that's bunched up together and a self portrait taken in the middle of a busy nightclub probably isn't very flattering, haha) , production code needs testing code to better define it.

Truth :: Context of Truth
In general, a bug-free program with some initial set of conditions processing data works to produce a "truth", however that truth is only truthful under the specific context in which it exists in. Testing defines a context in which code is true (as an aside, the testing context is only a small subset of all testing contexts).


After writing this long post about some ideas I've had about testing, I can't help thinking about testing the testing code itself, testing that code, and so on. However, that's an asymptotic and inductive process that takes very long. How long? Much longer than it takes for the funding to our startup to run out! :)

So with that, will have to sign off and get back to writing test code. I hope you enjoyed this post as much as I enjoyed writing it, it was a nice refreshing change of pace with the thousands upon thousands of lines of Python code (and test code) I've been writing.

- Kevin

Apr 2, 2013

Counterfactual Thinking and Decision-Making

Skim the business section of bookstores (virtual or real) and you'll be inundated with book covers for success stories of wealthy entrepreneurs smiling confidently and overeager to retell the brilliant choices they made along the way to the top and the secrets to their success. Unfortunately, these positive examples hide those who didn't make it to such dazzling heights and the large amount of luck involved. No doubt talent is an important factor and can diminish the impersonal vagaries of chance (exhibit A: Steve Jobs), but unfortunately there aren't more beneficial books with such titles as: "How I lost $100 million despite being extremely talented," "How my business imploded despite my being brilliant and hardworking," or "How I mildly tilted the odds in my favor and won the lottery."

It's easy and even irresistible to latch onto what's tangible and immediately discernible, but being mindful to constantly engage in counterfactual thinking aids in a much deeper understanding for improved decision-making.

Consider for example vaccines. They are among the most effective (and cost-effective) biotechnological inventions of all time, yet their very success belie their power and even their very existence. When they work ~100% of the time, absolutely nothing happens and the opportunity to extol their benefits is diminished greatly since there is nothing dramatic to latch onto. When they fail or if complications arise during ~0.0% of the time, they provide frightening examples of the failures or even evils of science and technology. Considering counterfactual alternatives such as the increased likelihood for a pandemic in the absence of vaccines allows for better decision-making, to vaccinate or not.

Counterfactual thinking is beneficial, but what might be some issues in allocating limited time to considering alternatives? Suppose an event happens with probability p. This event might be the success or failure of a product launch, a large contract with a customer, or funding from various sources.
  • If p is close to 100%
    • Then the utility of spending a great amount of time thinking of counterfactual alternatives is not a good use of time, since the default and most frequent outcome occurs often is most likely the present case.
  • If p is close to 0%
    • Then there's great utility in pondering other alternatives to the extent that you can simply ignore the present case. For example, there's no sense in pondering at length after getting struck by lightning, since this is a low probability event.
  • If p is some significant but non-extreme value such as 25%, 50%, 75%
    • Then perhaps time can be allocated as a function of risk in terms of capital, labor, or time. 
One example that comes to mind concerning allocation of time towards counterfactual thinking involves learning in a noisy, non-deterministic, and probabilistic environment. Kids in elementary school who learn simple arithmetic have the luxury of having a deterministic learning process where the feedback they get while learning follows a one-to-one process. In particular, 2+2 = 4 is true every time and 2+2 = 5 is false every time. It's not that 2+2=4 is true for p% of the time and 2+2=4 is false for (1-p)% of the time. There are no probabilistic complications or counterfactual considerations involved in the same way as, for example, involved in poker .

Consider a contrived example, an idealized game of No Limit Texas Hold'em where you must choose to either have to fold or commit your entire stack (and assuming other players do not have such a restriction). Now consider being dealt the weakest hand [2-7 offsuit] vs. the strongest hand [Ace Ace]. Poker theory, statistics, and probability states that the weakest hand [27 offsuit] should be folded and the strongest hand [Ace-Ace] should cause you to commit your entire stack. However, in reality, the weak hand can still win some non-trivial percentage of the time and the strong hand can still lose a non-trivial percentage of the time. Since these outcomes may involve strong emotions and physiological changes in the brain involving dopamine, the learning process is very difficult, lossy, and even lead to learning false correlations. Probabilistic outcomes impede the learning process since false positives and false negatives act as noise to the true positives and true negatives. Of course, it's necessary to rise above it is through a theoretical model that incorporates probabilities and counterfactual thinking.

Taking these counterfactual ideas to the level of knowledge itself, consider Umberto Eco's anti-library that Nassim Taleb writes about in Black Swan. Professor Eco keeps a very large library of books that he has not read, and this anti-library represents ignorance only continues to grow as Eco continues to accumulate more books as he knows more. This anti-library represents anti-knowledge, and can be construed in the context of this post as counterfactual knowledge, as a separate but related idea from counterfactual thinking and acting.

In Lashinsky's "Inside Apple," there was an interesting discussion outlining Apple's philosophy of saying no to  a very large number of extra features, products, or business plans as an alternative way to saying yes to only a small number. The reasoning is that if your attention is distracted from the current choice, you are not able to focus your attention and energy into making it great. Although this is useful for what you have chosen, one important issue is that you might not know anything about counterfactual alternatives, the decisions that you chose not to make and the opportunities you chose not to pursue. Jason Calacanis and Dharmesh Shah in an excellent episode of This Week in Startups #334 discuss just this point and offer a solution. The way that Shah tries to understand the ramifications of choosing not to pursue specific ideas or projects is to track them explicitly and measure them if possible. Although this deals in particular with ideas within a startup, the general idea could be be extended for example to the management of a portfolio of securities (stocks, bonds, futures, etc.) by creating a counterfactual securities portfolio and tracking the performance of those securities you didn't pick in order to compare to the securities you did pick.

So in summary, when considering ideas or actions, it's always important to consider counterfactual knowledge, thinking, or actions to more greatly enrich your understanding and inform your decision-making.

- Kevin

Apr 1, 2013

Process, Consistency, and Results

There's an interesting tension between order and disorder in a startups. On the one hand, order in the form of established processes allow for deterministic, repeatable, efficient, and scalable operations. On the other hand, disorder in the form of indeterminate creative thinking provides the dynamic flexibility to thrive in the face of the fundamentally uncertain environment of early stage startups. 

Ordered processes or disordered creativity may be more of an asset or liability depending on the circumstances. For example, the more freewheeling creative culture at Google was an asset in the early stages of the company and continues during the exploration and creation of new products during its 20% time program. However, this same freewheeling becomes a liability once Google matures as a multi-billion dollar company and after an idea (and accompanying revenue model) has proven itself after the 20% time program, when the main issue involves the transition into repeatable, efficient, and scalable operations to bring the fruits of the creativity to the market.

One example where a process combined with discipline helps to achieve more concerns the current challenge I created for myself to read 52 books in 2013. It originated from my finishing 24 books during the last four months of 2012, which caused me to believe that I could sustain that rate for an entire year to easily hit 52 books (one per week) with a large buffer to spare against uncertainty (Google spreadsheet to track progress can be found here). The 52-Book Challenge is an example of the usefulness of process (combined with sticking to it in a disciplined manner) can be an effective tool for achieving more.

For another practical example, I can try to go on a fad exercise routine, or I can simply stick to my current schedule of running ~42 miles/week, composed of a an 8-mile run in 1 hour on Tuesdays and Thursdays, and a 3.5-hour marathon (26.2 miles) on Saturdays. Once I have that system in place, I'll just let it "run", heh. This frees me from the mental burden of deciding if I want to run, when I run, how much I run, etc. Now repeat this for 5, 50, or 100 years and it beats any fad exercise routine by far.

As for thinking creative thoughts, it could be argued even that could be subject to an established process as well. You can't just decide one day be creative and expect your brain to suddenly unlock all hidden insights and connections. The long-term, mundane, and (very importantly) "consistent" process of accumulating knowledge (as one of many examples, aiming to complete one book per week outside immediate day-to-day work), thinking from various perspectives at different levels of abstraction, and being mindful of that thinking at a meta-level, is what leads to the qualitatively better and more creative thoughts over time.

It seems that a vast majority of things in the world are low-hanging fruit if you have processes in place and the discipline to stick to them. Save your focus, motivation, and energy and don't squander it on the easy operational things that can be abstracted away. There's no use in reinventing the wheel and being super heroic, creative, or intuitive unnecessarily.  

In general, heroics, creativity, or intuition cover the gap from where the power of process ends (or at least becomes severely diminished) and the solution, either in practical terms as in meeting a deadline or more intangible terms as in getting to a holistic creative insight into software architecture, product development, or market understanding.

- Kevin

Mar 20, 2013

Hardware and Software in Startups

One issue permeating all of my thinking (most relevantly to my life now as the co-founder of a tech startup) is the accelerating nature of technology and how it affects strategy and decision-making, especially to get to the last few percent in terms of performance and correctness when limited by resources and confronted with business realities. In general, I've been considering when the correct decision may be to defer action in order to benefit from gains in accelerating technology, and when not to. In particular, I've been trying to apply these ideas towards allocating resources to the technical infrastructure behind our startup.

Given the luxury of infinite resources (time, manpower, capital, risk assumption ability, etc.), it’s a straightforward and deterministic process to allocate those resources to maximize every dimension of the startup (business development ranging from how to allocate funding for co-working space to what particular market to enter and individuals to contact, and software development ranging from single lines of code to the entire architecture and testing program), but of course the issue is optimizing over all these dimensions with limited resources, some of which are fungible and interconvertible, such as time and manpower, capital and time, and efficiency of code and development effort.

I will now consider how accelerating improvement in technology in both hardware and in software may affect strategy and decision-making.


Considering hardware first, it may be unnecessary or even imprudent to optimize performance to the last 0.01% (or similar) in the code you write since Moore's Law trends will continuously improve the price-performance of your hardware and this may account for improvement in efficiency with less manpower, capital expenditure, or other real resources or opportunity costs (on an expectation basis)

As an example, it's interesting to consider this in the context of physical resources at data centers. I recall reading the interesting fact that the costs of energy used in data centers for the cooling of the facilities and the processing of computations on the servers to be roughly equal to the cost of hardware over a 2-3 year period. The optimization game goes as follows. Hardware price-performance is improving so that you may get 2x-4x as much computation(s) for the same price in 1.5-3 years. However, benefiting from this improvement must be balanced with the hardware costs of acquisition. If you don't buy the new hardware, you save on the cost of acquisition, but the price of the extra energy consumed for the some equivalent amount of computation using the older hardware may start to become greater than the costs of acquiring that hardware.

Another (more theoretical) example occurs in an algorithmic trading context where competition in terms of  efficiency of algorithms, performance of code, and the accompanying development costs in time, money, and personnel, could be shifted to competition on the hardware front. For example, consider two firms A and B with algorithmic trading software that are equivalently correct (this is an idealized scenario - why I wrote "more theoretical" at the beginning of the paragraph, since there exist various other frictional forces such as regulations, trading costs, and taxes), but that firm B's algorithm and software are written poorly and inefficiently, and  therefore require 10x more computational resources (processor cycles) to achieve the same performance as firm A. Of course, firm A would have a distinct advantage in this scenario. Now consider that firm B has the resources to acquire vastly more computational assets (servers) that are independent of its algorithms and software so that now it's inferior and inefficient algorithms allow it to bypass the speed of firm A's algorithms for decision-making, due to brute force alone. Now, firm B may gain the advantage on account of superior hardware and the competition is shifted from the software realm to the hardware realm.

The unifying theme here is that the state of hardware matters because of its improvement on a Moore's Law trajectory. Therefore, simply doing nothing and deferring action as hardware improves can account for any inefficiencies and shortcomings of software, and this must be accounted for in the larger context of business development where there exists are large number of concurrent priorities.


Simply waiting may result in beneficial effects due to accelerating performance of better hardware, but that strategy may also apply to software. This is especially so as the internet now allows for collaboration to be more efficient, so you may benefit even faster from continuously improving (and free) open source software, such as more efficient and powerful packages in Python or R. Below are some related thoughts concerning the interaction between software development, failure probabilities, and business realities.

"The perfect is the enemy of good." 
- Voltaire

This statement is a good guiding principle for tech startups, but there exist some cases where you should explicitly strive for perfect (Space Shuttle software) and other times that good is not only acceptable, but is better.

Space shuttle software costs ~$1,500/line of code with an error rate of 1 in 420,000 lines of code. Commercial software equivalently would have something like 5,000 errors, or about 1.2% defect rate. If you're putting up a $2 billion Space Shuttle, with all the infrastructure and personnel to support it, it's a good investment since it's a one-shot deal, whereas web-based software like Google has can be fixed and propagated to the end user in a matter of seconds. If you were to pursue an equivalently-priced space program to that $2 billion, but instead had a fleet of  twenty $100 million spacecraft, you would still need to approach the same level of quality because even though each spacecraft is only 1/20th of the total price of the Space Shuttle, there exist various externalities such as public perception and Congressional funding.

There now exist probabilistic algorithms, and even more interestingly, probabilistic chips, where the perfect is intentionally given up for the good. Basically, if you compute a process N times with an accuracy of 95%, it may be just as accurate overall, but cost much less in physical resources such as time and energy (for example, you might not have to worry about so many digits in precision for the operations in your algorithm, and you can furthermore tolerate some inaccuracy in your hardware) than computing it only 1 time to an accuracy of 99.9999%. Furthermore, you may even save in other second-order ways such as developer work effort (and associated monetary costs), precision of code (requiring a larger testing program), documentation (diverted the expensive developer attention), and higher-order effects such as maintenance of those artifacts. Interesting to think of the implications here for a one-shot high-stakes project like the Space Shuttle where failure or even graceful decline is not an option versus a system where errors are tolerable and graceful decline is even a good feature (Google web page or web service that's not mission critical or life threatening).


In summary, this post served to articulate some issues I've been considering with respect to optimization over the many dimensions involved in our startup, with the unifying theme being how improvements and quality in hardware and software may affect strategy and decision-making.

- Kevin

Feb 26, 2013

Wait, so why are we doing this?

The question of 'why' is perhaps the most interesting in the context of start-up creation. There are obvious and easy explanations as to what would motivate someone to grind long hours and endure the emotional pain of getting a new venture off the ground. I am talking about financial reward and social recognition.
Upon closer inspection, these are actually very poor motivators for creating a company. The numbers show that the return on time spent is quite low, given that your odds of success - a high growth company with a valuation upwards of several million - are probably around 1 in 100. The above average scenario of a few million dollar exit would probably represent a few hundred thousand payout for the founders, due to equity dilution from successive rounds of financing. If you do the math in terms of a yearly salary, we are probably looking at a reasonably well paid entry-level job.
Of course this analysis only holds for your average entrepreneurs. If you are a Steve Jobs or a Jeff Bezos, your odds of success might be a lot closer to 50%, in which case the financial reward is very tangible.
What about fame? There is no doubt that on some level everyone has the desire to bask in the glory of their achievements. It is human nature. However the desire for fame is short-lasting fuel for an entrepreneur; soon enough things will get hard, failure will seem likely, and the only thread keeping you going will be a deep commitment to the vision and the product. You can read TechCrunch and feel a sudden rush of desire to become an 'overnight successes'. But truth is, by the time these hot start-ups actually make it to the big stage, their trajectory seems more like a painstaking marathon than an overnight success.

As much as the desire to stand out and be recognized as an original is compelling, I believe the main motivation for all great innovators is the desire to change society. It sounds obvious at first, but in fact (in my opinion) very few people are fundamentally motivated by innovation and discovery in the same way that it consumes entrepreneurs (and scientists). Just like a researcher will stay up all night solving a minute problem in order to reach that state of 'truth', a entrepreneur will do the same to implement a puzzle piece of their vision.
When I see photos of SpaceX successfully docking the Space Station, or Google Driverless cars, I get chills and it reminds me of why the schlep of creating a start-up is all worthwhile. There is an incredible driving force in creation and innovation, one that transcends day to day life and aspirations. This is especially true in a society where 'incrementalism' and complacency is the norm.

The other major factor for me (and I think many entrepreneurs) is independence and empowerment. There nothing quite like the ability to call the shots and implement your own vision from the top down. I have always disliked authority, because I consistently end up being in disagreement with the implicit rules of societal dogma and red tape of corporate management. The desire for innovation is also an expression of dissatisfaction with the status quo.
I am in a constant state of questioning, whether it concerns social phenomena:
- Why do people hold on so tightly to aspects of 'traditional values' and religion that are irrational and counter-productive to society? 
- Why are people so easily swayed by the vicariousness of reality TV and pop culture press?

... technology:
- How could this packaging be better engineered?
- Why would I use poor legacy software when there are far better alternatives?
- While access to information was the major challenge of the 20th century, is information processing and curation that of the 21st?

... or processes in place:
- Why is the US rail system still so poor?
- Why does x, y, z require so much paperwork?
- Why are companies so bent on having the work day start at 9am?

I realized the only way I could get answers to these questions, or some control over the processes that govern professional life, was to take my career into my own hands and figure out which problems I want to solve and how. In that way entrepreneurship becomes less of a job and more of a vocation, even a lifestyle.

This sums up what I believe drives entrepreneurship on a fundamental level, based on my observations and self-evaluation. Beyond that, I expect every entrepreneur has their own driving force(s) shaped from their respective life experiences.

- Nathanael