Void

Tag: startup

Market Size

When I was working on Kwery, a lot of people used to ask me – Why are you not trying to build a team and raise money? The niche market that Kwery served was not amenable to VC money or building a team. Kwery was an experiment in creating a single person lifestyle business.

Market size is defined as – The number of individuals in a certain market who are potential buyers and/or sellers of a product or service.

carnival-carousel-circus-992763

When building any business, gauging the potential market size is the most critical step. The size of your team and the amount of money you want to raise should correlate with the market size. If the intention is to create a big business, you should be going after a big market. A lot of would-be startup founders are fixated on their idea and raising money that they do not analyze the market size or fool themselves into thinking that the market is vast. Peter Thiel, in his book Zero To One, beautifully explains the significance of market size.

The story that you build around your startup should also reflect the market size that you are after. In 2014, professor Aswath Damodaran estimated the value of Uber at ~6 Billion dollars with the story that Uber is an urban car service company. Bill Gurley, the lead investor in Uber, refuted this saying that Uber is not an urban car service company but a logistics company that is going to be everywhere, not just urban areas and is going to exploit global networking benefits, not local networking benefits. With this story, Bill Gurley was valuing Uber at ~53 Billion, a ~9X increase from Aswath Damodaran’s valuation. With a change in the story, the market size that Uber is after went up. This incident illustrates the importance of framing your startup story for big market size.

Some parting words on market size from Kunal Shah, founder of FreeCharge – Market > Product > Team.

Startups and VC La La Land

With daily morning newspapers dedicating pages and front lines to startups and venture capital(VC) investments, they are no longer the niche they used to be. Whenever a startup investment is in the news, I hear questions along the lines of:

  1. Is the VC crazy to invest so much money in that startup?
  2. Why does that startup need massive amounts of money?

In my opinion, these questions stem from not having an understanding of how the VC business works.

Let us say that there is a contest with prize money of 1 billion dollars. You have to form teams, do some tasks; whoever wins, walks away with the prize money. There are a hundred individuals who are eager to participate but do not have the financial means and resources to recruit people to form teams and get to work. There is a wealthy benefactor who is ready to fund these hundred individuals with 10,000 dollars each. He strikes a deal with each of these hundred people saying, if you win, you give me 50% of the prize money; if you lose, you do not have to repay the 10,000 dollars I gave you. The benefactor is sure that one of them is going to bag the prize, she does not know who. The benefactor has invested 1 million dollars in total(10000 * 100) to ensure a return of half a billion dollars, i.e., 500x returns.

The above is a crude explanation of how the VC industry works. The individuals are the startup founders, and the wealthy benefactor is the VC. The only difference is, in the real world, there is no guaranteed success, i.e., there is no way for the VC to tell with cent percent certainty that someone is going to win for sure; it is all about probabilities, data, reading the trend and gut instincts. To bring a semblance of certainty to returns, VC spreads her bet on a wide array of startups in different domains; at least a handful of them is going to hit the jackpot.

dollar-499481_640.jpg

Why does this startup need so much money and are the VCs crazy to give them that?
Startups that VCs invest in are not chasing organic growth. Organic growth is steady, sustainable growth which compounds to big returns over decades. VCs are chasing exponential returns in a few years; not steady growth. The money that VCs give to startups helps them with this exponential growth.

Why so?
Double-digit returns are achievable by investing in public companies and debt. Why take the risk of investing in startups with absolutely no guarantee of returns when there are better ways to get there? For the chance that VCs are taking, the gains have to be comparable, i.e., exponential returns.

Why do startups need so much money?
To short-circuit the whole organic growth curve and achieve exponential growth so that investors get the returns in a relatively short period. The money is spent on scaling teams, building technology and more importantly in acquiring users through discounts and advertising. In short, the VC capital infusion empowers startups to compress multi-decades of growth to a decade or less.

Why is this startup spending money on discounts when they are not even profitable?
Big spending circles back to the concept of exponential growth and building market dominance for a winner take all effect. The idea is that once the startup dominates the market or has enough users, they will eventually figure out a way to make money, dominate the market and turn profitable. Case in point; Amazon, Google, and Facebook. When VCs invested in these firms, none of them were revenue positive, but look at where they are today. Of course, there is a risk of startups never figuring out how to make money, but VC investment is about calculated risks and spreading the bet.

You might have read of startups of previous successful founders raising astronomical capital without even having a product. VCs are not crazy to do this; they are betting and playing with probabilities and sentiments. The chance of the founder hitting the lottery again is high, hence the clamor to invest. VCs know for sure that not all the startups they invest in are going to be home runs, some are going to go dud and die, and they take this into account while investing. Only a very handful of the startups they invest in turn out to be successes and these handfuls generate the returns. A minority of the successes cover up for the majority of the failures. Returning to our lottery example, out of the hundred, the VC is betting on only one person to win, she knows the rest of them are going to fail, but she gets 500x returns with just one win and 99 failures.

Treat this as a dummies guide to startups and venture capital. I have watered down a lot ignoring VCs and funds who invest for more extended periods. Like any business, the VC industry is varied and diverse.

Startup Hiring

Hiring is an area which is usually given a lot of lip service but neglected in practice. Especially in a startup, where there is a shortage of workforce, hiring at all levels has a profound impact on the future of the organization. When compared to a big organization, the value proposition of a startup to its employees is concerning speed, freedom, and responsibility. But, when it comes to hiring, startups adopt the cookie cutter hiring strategy of big companies.

The regular interview process is biased toward extroverts and people who can speak well. In my opinion and observation, this does not correlate to someone who is good at what she does. I have been observing this since my college days. During campus placements, flamboyant and boisterous students made their way into companies while the quiet ones who were good at studies and who could get along with others were often overlooked. The same thing happens to a lesser extent with the regular interview process too.

Taleb says the following of doers.

For those who do things, it is harder to talk about what they do. Reality doesn’t care about talk. It is full of pauses and hesitations. Clear, non-hesitant speech is the domain of non-doers.

Interviewing is an intimidating experience, and not a lot of people excel in this, especially people who are good at what they do. Also, the kind of questions that are asked during an interview has hardly any resemblance to the day to day work. I have written about this before too. A big step in this direction is to craft an interview process that mimics your organization’s day to day tasks. The best way to do this is to have an assignment based interview process. You can create assignments that resemble tasks that you do on a daily basis and ask candidates to work their way through this. An approach of this sort takes the whole adversarial, and interrogative tone out of interviews and makes it an enjoyable experience.

An important aspect to take care while creating an interview process is to take subjectivity out of interviews. Who conducts the interview should not have a bearing on the outcome of the interview. Another thing to keep in mind is to subject all candidates of a particular level to the same questions. Following the above ensures that you are evaluating every candidate on the same yardstick. It is essential to do this to create a quantitative interview process. This sort of standardization also helps in creating a checklist of what you expect in answers to questions. If you have these covered, anyone can take anyone’s interview and evaluate candidates. Is it not ironic that startups claim to be data-driven, but when it comes to interviews, the whole data-driven approach takes a corner seat.

hiring-3531130_640

An example interview template would be to have an assignment that closely resembles a task related to work. Try to keep the assignment practical yet straightforward. A good candidate should not take more than 3 to 4 hours to complete the assignment. On submission; evaluate the assignment on code quality, conventions, comments, instructions to run, test cases, boundary condition handling, error handling, and documentation. Post that, have a phone screen with a bunch of questions that mostly have a one-word answer. Make this as practical and broad as possible. Try to touch all aspects of work from data structure choices to computational complexity to databases, web servers, etc. The idea here is that if someone is good at what they do, they should be able to answer these without any preparation. Then invite the candidate for face to face round where you ask the candidate to expand on the take-home assignment. Add a bit more complexity and see how the candidate fares. Finish off the entire process with a design round. I have presented a very rough template, tweak it, add more rounds and improvise to fit your needs; every organization is different.

Along with all the above, soft skills are critical. The sad fact is a lot of people do not know how to conduct interviews. I have heard of instances where interviewers were rude and outright obnoxious, not punctual, candidates not kept informed in advance of the interview schedule, candidates not being adequately attended during the face to face rounds, etc. All these play a significant role in shaping the image of the organization in the candidate’s mind.

In the talent market, big companies, as well as startups, are competing for the same piece of the pie. By adopting a hiring process similar to big companies, startups are not going to get an ace up their shoulder. What startups should be focussing on is coming up with a flexible hiring process that is unique to their organization. It is not easy to execute this in a big corporation but very much doable in a startup. Starting from how you engage with a candidate for the first time to the interview to the offer rollout process, everything is ripe for disruption. Differentiate yourself from others. An interview is a big opportunity for you to make a mark on the candidate, seize it right there.

Kwery

When I was at FreeCharge, I did a lot of data engineering. One of the recurring patterns that I saw was:
1. A new product or feature gets launched.
2. The PM wants to schedule a report for her feature.
3. The report should run at a particular frequency.
4. The PM along with others from the C-team should get this report in their inbox.

We had hundreds of reports like this at FreeCharge. We explored tools like Redash, Metabase, etc; but all these tools were geared towards creating beautiful dashboards and visualizations; report generation and report delivery through email were given a step motherly treatment. We hacked together a solution to solve this problem with bash/Python scripts, GIT, Jenkins, etc. The business analysis team wrote the query to generate the report, but they had to depend on the engineering team to schedule the report, create HTML and deliver it over email. One of the goals of the solution was to make the business and product teams self-reliant in report generation. Since the solution was stitched together using different tools that were not meant to solve this problem, it worked but had its chinks; this seeded the thoughts for Kwery in my mind.

logo

Kwery is a tool that solves the above niche problem well. It was also an attempt at building a single person lifestyle business that could supplement my regular income. I followed a lot of lean startup principles while building Kwery; made an MVP, deployed it at an organization that had the above pressing problem and then iterated from there.

With Kwery, initially, I had to take a call as to whether to make it a SAS product or an in-house deployment. I decided against the SAS route as I was not sure how many organizations would be comfortable giving complete access to their data sources to an external fledgling SAS tool. I wanted to make the onboarding process of Kwery as simple as possible. Hence, I shunned all external dependencies for Kwery, opted for an embedded database so that I could package Kwery as a single binary. The only dependency needed to run Kwery is a Java 8 runtime.

I deployed Kwery in a couple of places which use it even today. Kwery has received a lot of love from them, but I never hit the numbers that I had in mind when I started. The opportunity cost was bearing on me. I had to take a call between continuing to work on Kwery or cutting my losses and moving on; I chose the latter.

Like the old saying – Every cloud has a silver lining, I have open sourced Kwery under MIT license. It is very easy to get started with Kwery. Give it a spin, open Github issues if you face any trouble. Pull requests are very much welcome.

We are a startup

Being part of a startup is not an excuse to shoot first and ask questions later. “We are a startup” is the most common phrase people spout when you ask them about their sloppy processes and development practices. Being a startup cannot justify having zero process or letting developers be trigger happy. Being a startup cannot be a reason for condoning sloppy employee behaviour like taking leave without adequate notice or working from home on a short notice.

I am privy to startup lores where everyone writes components in a language of their own choosing. If today’s fad is Node, then the developer uses Node and if tomorrow hacker news has a post touting the next greatest language, the developer switches to that. We are a startup, we do not have a QA and pre production environment for testing, we test code directly in production. We are only a couple of people, hence we do not need version control. Since I am a single guy who manages servers, configuration files are not in version control, my brain is my GIT repository.

Being part of a start up is an opportunity to move fast without being burdened by the bureaucracies/politics of big organizations. Say for example, you find an employee kicking ass, as a manager/lead in a start up you can give that person a raise by having a quick chat with the CEO. In a big organization, you have to make a case for that, present it to a committee, justify why someone should be given an out of turn raise etc, in short, there is a lengthy process and guidelines for these sort of things. It is also an opportunity for you to trust people and call them out when you see something odd without introducing a process around it. If you see someone working from home on a very regular basis and it is hampering work, instead of floating a blanket rule saying work from home is prohibited, there by inconveniencing other employees who use it judiciously, you talk to the person and see what is the problem that person is facing and try to solve it. This is difficult to pull off in a big organization that has thousands of employees but highly doable in a startup.

A startup lets you create an atmosphere based on trust rather than draconian processes. Let us take technology choice for example. Big organizations have lots of rules and regulations on what technology can be used, what cannot be used, how to buy licenses etc. This is made with the central assertion that individuals are not responsible enough, so let us decide by committee. In a startup, you do not need to introduce a process for this, you can trust your employees to make the right technology choices as long as they do not go bonkers with it. If something goes wrong with a technology choice, you can talk to that person and figure out where he went wrong instead of mandating a policy for all employees from then on. Individual responsibility trumps rules any day, it is difficult to implement and follow in a large company but can be easily pulled off in a small organization.

Next time when you use the phrase “We are a startup”, think hard whether you are trying to mask inefficiencies in the guise of being a start up.

Let us set up an office

FreeCharge recently moved into a bigger office. This brought back memories of the first Bangalore office set up. Setting up an office might not seem a daunting task, but trust me it is. A previous company that I was part of had opted out of setting up it’s own office and worked out of an incubation center, I always used to wonder why not move into a proper office space? Now, after personally going through the hassles of setting up and maintaining an office, I appreciate their decision. If you are a small company, try to avoid moving into an office space of your own as much as possible, do it only if you should and must. There are other options available like co-working spaces, incubation centers etc. In spite of this, if you want to get into the adventure of setting up an office, read on.

First step of the process is prospecting potential office spaces. Office spaces in software parks are expensive and come with long leases, but they are the most organized. If you are reading this, most probably you do not fall into the category who can afford an office space in a software park. Some of the things to keep in mind while prospecting:
1. Keep enough leeway for growth, for at least an year.
2. Is there enough parking space? If there is a shortage of parking in the building and the building is located in a busy place, your employees are going to curse you. You do not want people to be grumpy in the morning before they start their work. On the other hand, if the office space is in a residential area, this should not be a problem, usually you find enough space on the roads to park.
3. Does the building have power back up? You have to keep this in mind until Modi gives us 24 by 7 electricity :).
4. Do all the major internet service providers(ISP) serve the area? Confirm this before you sign on the dotted line as some areas have restrictions against digging etc due to which ISPs refuse internet connectivity.

Once you zero in on the place, the second step of the process starts. Things to keep in mind:
1. Interiors and furniture.
2. Networking. Do you go for wi-fi or ethernet? If ethernet, you have to plan your layout in advance. If wi-fi, you might not be able to get away with a home router as the signal strength may not be strong enough throughout the office or the router might not be able to accommodate all the people in the office. In all probability, you need an industrial strength router/switch and repeaters.
3. Drinking water, do you buy a filter or go for water cans?
4. ACs, fans etc. Do keep in mind that you do not have to buy these, you can as well rent them.
5. Cleaning and maintenance, best to outsource this to an external agency. Keep phone numbers of electricians, plumbers etc handy, you will need them all the time.
6. Office keys, you might have to have a security guard 24 by 7 because you will have people coming in and leaving at different times and coordinating the key becomes a headache.

Also, it is best to hire an office manager who can co-ordinate all these tasks for you. These tasks eat into your precious time and I am sure your time is not well spent on these mundane yet extremely important tasks. If you are working out of an incubation center or co-working space you get most of the above as part of the package. As I said before, try to push off moving into an office of your own as much as possible, do it only if you must.

Consumer tech

I was reading this article about a startup that is launching satellites for imaging the earth. A line from the article stuck with me, the startup is leveraging technology developed for consumer devices like laptops and mobile phones in their satellites. This is a reversal from the olden days where technology that was developed for defense/space would find their way into consumer tech. Now a days, you see technology that was specifically targeted at consumer tech making ways into defense/space. Another specific example that I can think of is Palantir. Ways found out by engineers during their days at Paypal to fight fraud shaped into Palantir which now focuses on hunting down terrorists/hackers based on data like call records, etc.

Another point of note is consumer tech driving futuristic technology. Take google’s driverless cars for example, where is the money coming from? From consumer tech like search. Where did Elon Musk get his money from to bootstrap Tesla motors? Again consumer tech like paypal etc. As of today, I see consumer tech driving research and development more than defense and space which in a way is good for us as consumers because we get a taste of the shiny new thing without having to wait for decades for it to be made mainstream.

Startup test

Where does your startup stand on the below?

  • Do you have version control?
  • Do you back up data(server data, db data, etc)?
  • Can you build using a single command or prosaically, do you have build scripts?
  • Can you deploy code to production in a single click/command?
  • Do you have different staging environments like dev, qa, pre production etc?
  • Do you have a script to bootstrap the database so that any one can run the app locally?
  • Are your configuration files in version control?
  • Do you use a system provisioning tool?
  • Do you use a database versioning tool?
  • Are your system and business metrics graphed?
  • Do you have alerting systems in place when your business or system metrics go out of whack?
  • Do you have a document listing all the ips/machines in use, external software services used along with their user name and password?
  • Do you have unit and integration testing suites?
  • Do you use a task/project management tool?
  • Does your team swear by code review?
  • Future is in the photos

    I was going through the VC interaction posted by Everpix guys. If you go through the letters, you see this repeated a lot, “You guys are in a crowded space which the biggies(Facebook, Dropbox, Google, Apple, etc) are after”. Everpix is/was a service to store and organize photos. Why is this such a hot space?

    Take a peek at the acquisitions carried out by Facebook. Can you spot a pattern? A common recurring theme around these companies is photo sharing, image recognition, mobile and analytics. As mobile devices/digital cameras become ubiquitous, internet connectivity becomes omnipresent, people are going to upload snaps/videos in ever increasing numbers. Photos/videos reveal a lot about you without you consciously intending to. A stream of photos that you upload on a regular basis is as good as a life journal that you are not explicitly writing. How about mining this information to show relevant ads?

    Your photo reveals that you wear spectacles, show eye wear ads to you. Your photo stream shows that you regularly take overseas vacation, you are a hot target for the travel industry. Your photos suggest that you have an entry level car and you tell Facebook that you got a new job, time to show the next segment car ads in your wall? In most of the photos you wear denim and t-shirt, maybe Levi’s would be very interested in you.

    Think about it, the amount of information a stream of photo gives out about you is endless. This is a gold mine for companies that want to tailor ads for you.

    The Algorithm and Data Structures Conundrum

    Hacker news denizens have a penchant for articles on hiring. Every once in a while, a post appears on the home page followed by a passionate and vituperative debate. People conversing on this can be divided into two camps; one argues that math, algorithm and data structures are critical and interview candidates should be quizzed on them while the other group takes the opposite view. If you are not privy to these conversations, I highly encourage you to go through them.

    In my opinion, these discussions miss the real essence of the issue. The question is not whether algorithms and data structures are a requirement for a programmer, it goes without saying it is. What we should debate is the depth of knowledge someone should have on these to be effective at their day to day work. Are we after someone who knows the different sorting algorithms and has a fair understanding of their trade-offs? At work, if this person faces a tricky problem, she knows where to start and then reaches out to Google to aid her? Or, do we want someone who can go to the whiteboard and code the algorithm from scratch and explain the math and computational complexity right in the interview? I can very confidently say that for most of the day to day work, you do not need to ponder on the mathematics behind algorithms and complex data structures. What is required is sound coding and design skills, tenacious curiosity, and a passion for excelling.

    unordered-3192273_640

    What do I mean when I say sound coding skills? The very basics; splitting lengthy code into modules, appropriate comments in the code, test cases, following code conventions and the spirit of the programming language. The above is the foundation of a great project and has a tremendous impact on the future of the project. If you do not follow these basic tenets of programming, scaling the project and modifying it in future becomes a project of its own.

    Good design is what helps you scale your application as the business needs change and user base expands. In a web project, a good design would be to have business logic in a separate layer and not tying it up with controllers and views. I have personally seen this helping us at burrp! where we rolled out our mobile app in a month as our backend was flexible enough to support a new interface with minimal changes. If our design was not good, there was no way we could have developed a mobile app which had most of the functionalities of our website in such a short period.

    Now coming to the most critical part, curiosity. Why is curiosity such an important trait? Without curiosity, we stagnate. We become complacent. We do not innovate. We do not try to become incrementally better. We think what we know is the ultimate truth and whatever language/framework/methodology that we use is the best. I have interacted with professional programmers who were not aware of PHP which powers a substantial number of websites.

    If you are tenaciously curious, when faced with a problem, you start obsessing about it. You see it as a puzzle that has to be solved. For example, if you feel that a part of your code is slow, you dig deep into it and try to figure out what is happening. In this process, you come across people who have faced similar issues and solved the problem using a better algorithm or data structure.

    I would say interviews focused heavily on data structures and algorithms are biased towards new college students and people who are just preparing for interviews. Most of these questions are in no way novel. Go to one of the interview preparation sites, spend a couple of days trying to solve the problems and suddenly you become an algorithm and data structures expert. Just because FANGs ask these kinds of questions in their interviews, everyone has adopted this interviewing style, and it has got to a point where interviews are more about showing off the interviewer’s data structure and algorithm skills rather than evaluating whether the person on the other side of the table is a good fit for the job. Also, an unhealthy side effect of this is that in a fury to concentrate on algorithms and data structure skills, everything else gets sidelined.

    Unless you are working on some cutting-edge niche project, you do not need people who can whiteboard algorithm and data structure problems in interviews. Hiring people who are infinitely curious and can get incrementally better will give you a much better bang for your buck.