Starting a technology business: Part 1 - Full-stack business

Take two pieces of paper. Stack them on top of each other. To make them stick, throw some glue between them. You get a big messy middle of glue.
What has a mess of glue got to do with anything with business?  Let me explain.

Anytime two different concepts or ideas come together, they create a mess, like glue. “Glue code” is a term used by software engineers trying to stick two layers or systems together. A stack is a formal way to represent things layered on top of each other. A stack is also a data structure in computer science.  A web application is an example of a stack of a frontend and a backend.  The hidden magic of software lies in the ability to stack and glue things together. Graphical user interfaces glued with mathematical modeling and you get Excel. Excel glued with the cloud, you get Google sheets. You get the point. One might argue software engineering is less about algorithms and more about gluing.


Let’s look at how this "glue" enables web applications to create value for their users. The frontend is the part of your application that customers interact with. It helps your customers create value for their customers or themselves. It defines the entry point for value creation for your application. . The backend enables the operations that help meet the needs of the frontend. In software, glue work includes work like API design, performance and reliability. Without the glue work, it feels like consuming technology like bad pasta. The pasta and the sauce are not proportional. They are not mixed well either. It sure leaves a bad taste in the mouth of the customer.


What about technology businesses? Do they have similar gluing challenges? Sure, they do. The glue layer for a company helps customers convert their desires to reality. Product management and customer support are of the early stage "glue layer" functions. HR, finance and legal become started functioning as internal glue. These functions drive increased internal and external cohesion through their work.

 The role of the frontend of business is to understand the desires of all customers. The frontend includes the sales and marketing functions. They exist to grow users, grow revenue, and ensure that customers’ interests are always met.

 The business backend's role is to exists to convert customer expectations to reality. Operations, engineering and domain expertise fall into this category. These teams use their skills to create value for customers in an effective manner. These teams need to account for cost-value tradeoffs. They answer questions like, do you need to grow your own tomatoes for the best pasta? What is the cheapest way to get these tomatoes to our restaurant's kitchen?


"(Value creation is) the capacity to find meaning, to enhance one's own existence and contribute to the well-being of others, under any circumstance.” - Daisaku Ikeda

The stack and the messy glue are metaphors that might resonate with technologists. Let's recap on the value creation system. Web applications enable the creation and exchange of digital value for users. Businesses exist to create and exchange financial value for other people or businesses. Value creation in the middle of different technologies or markets is going to be messy. The metaphorical glue helps with cohesion in the messy middle of value creation. One of my favorite ways to summarize value creation is, "(Value creation is) the capacity to find meaning, to enhance one's own existence and contribute to the well-being of others, under any circumstance.” - Daisaku Ikeda.  Always ask yourself, what's the missing glue here?

This is the first of a three-part series on starting a business as a technical co-founder

1. Full-stack business
2. Full-stack entrepreneur.
3. Do you need a co-founder? If yes, what to look for?

On the journey of tough problems

Finding a computer programmer job was the first professional problem I faced. First, I had to make a resume listing all programming languages that I knew, and projects I had worked on. Second, I emailed over fifty companies. I told them about my interest in working for them. Third, some of them got back and told me to do an interview. Fourth, I spoke to a group of 3 to 6 people at various companies who had gone through a similar process as me. One company was kind enough to consider me worthy of giving a job. Finding a job without job finding skills felt magical. I never understood then how it all worked. I now understand the magic a little better.

Exploring and discovering the problem space is part of problem-solving. Not being able to connect the dots between actions and results is frustrating. The way we view our problems plays a critical role in what actions we take. The actions we take lead to our development. What was the last problem you had? How did you feel when you first encountered it? What actions did it take to get resolved? I’ll share my perspective on problems that I’ve faced in life.

I started a company to create maps for self-driving cars. All I knew when I started was how to solve problems with code. I had to learn the rest. Few people attempted to solve this unique problem. Most tough problems lie at the intersection of various disciplines. I lacked knowledge about the car industry, robotics and map-making. Lacking knowledge causes anxiety. Where do I start? What do I do first?

How do I maximize the impact of my actions on the company? The impact is increased revenue, reduced costs, and growth in the customer base. To maximize impact, I had to choose what problems to focus on. Problems I focussed on were the problems that got solved.

Let’s look at my problems laundry list again. The car industry, robotics, and map-making. I had to pick my first problem. I decided to build an interactive tool to visualize the 3D maps for point cloud maps in a week. Here's why I picked that problem.

  1. Existing skills: Using my software development skills would be simpler. I can get initial results in a few hours to a week.
  2. Unique advantage: Robotics professionals would not build web-based map data visualizations.
  3. Fast Feedback opportunity: Seeing the custom-built maps would enhance customer and internal conversations.


The goal was for me to reduce the scope of the problem to something actionable in a limited time. I lacked skills in automotive business development. One of my cofounders tackled that. I did not have a unique advantage in robotics. I reached out to my network to find someone. Feedback on map quality would be hard to get if we only shared a file or a screenshot with a customer. This insight was my hook to all other future work I did.

How did I decide that this was the right scope? I reduced the scope of the problem to a point where my ambition drove me and not my fear. This enabled me to take action. My actions translated into learning towards my bigger goal. Time boxed actions are a superpower. They gave me honest feedback about my work. Did my work meet the quality bar? Did I take on too much or too little? This sharpened my iteration process. It helped me solve problems with greater ambiguity in the future.

I needed to grow into an effective problem solver to tackle bigger problems. I am not even capable of defining all problems well. Growing up school taught me how to solve well-defined problems. The real-world problems lack a clear definition.

The best way for me to deal with this ambiguity was to take action and learn from others around me. Starting a company? Talk to the best. Read more about the processes. Find your inspiration, living or dead. Understanding the minds who came before you teach you about their thinking process. The mind is the toughest to master

"The important thing is to take that first step. Bravely overcoming one small fear gives you the courage to take on the next" - Daisaku Ikeda


Be brave and take your first step. Most people lack the bravery to take the first step. The courage I developed in starting a company translated to other areas. It helped me abandon my fear of rejection. That led me to start this blog. I overcame the fear of never getting fit and started working out. Each of us can enjoy our problems with a dose of courage and lots of action.


PS: For those who are curious what the maps that I created looked like.

Building Confidence

To startup or not to startup? This is the million-dollar question that I asked myself every couple of weeks through my 20s. How do I decide? What are the criteria? Will the idea be good enough? Am I good enough? Will I be able to execute? So many questions and no answers. Every day potential entrepreneurs wake up feeling I am not good enough. Building confidence to take that plunge is tough. Here’s a little insight into my journey.

In the competitive job market of India, a job in the field of your study after graduation is a privilege. I had an internship in the final semester of college and no job lined up. I wanted to work at a startup. My definition of a startup was a company that had few employees. I got an offer from a firm that had under 20 employees in 2011. The highlight of my job was I got to work with computers and didn’t have to badge in and out.

My company was building a product that needed someone to go and showcase the product. I volunteered. I learned later that I had assumed the role of a part-time sales engineer. I once told the customer, “You should understand our product. It’s not our fault. You are at fault." I was proud of what I had said and done. In reality, I had failed. All the effort of my team and myself over the past few months to get the product to a point to showcase it felt wasted. I’m grateful to my company for giving me space to learn a lesson and not firing me for it. In a close-knit team, it’s heartbreaking to see your work not convert into revenue. I later learned that this was the hard reality of sales.

I arrived in Silicon Valley in early 2013 to study Software Engineering. I felt that I could assemble a computer gathering parts from companies on the US-101. It is a well-funded state-of-the-art technology playground. A tiny fraction of companies become household names worldwide. Most of them either die in oblivion or get acquired. The other big thing for computer programmers here is a hackathon, a marathon of hacking.

Put a group of technologists for 12-24 hours and feed them pizza.  You lose sleep, consume sugar, caffeine, and carbs. You fuse your brain with the computers to build interesting things. It's the closest to the singularity you can get to. I built an app to control your music player with your brain waves (mood). I met my future co-founder building a party assistant to show a dancing skeleton of you to the attendees. I was able to control a computer to do interesting things. This led me to my first job in the USA.

Click-clack-click-clack on the keyboard in front of a computer was a large part of my job. I found myself immersed in writing code for customers I would never see in my life but they paid money to my company. That money after exchanging hands would result in me getting paid. This in turn would let me pay my student loans and bills. A big part of my learning was how was potential customer value turned into revenue for the company. This led me to challenge myself a step further.

Starting a company was not an overnight decision. I needed confidence and fallback options played out in my head. First, I had the confidence to find a job if the startup didn’t work out. I also needed to sustain myself for a certain time frame without a salary. I had never built a new product and sold it to customers. I did not understand the market of my company (automotive technology). I had no experience in hiring and managing people. I also had no idea how to fundraise. To do something outside your comfort zone, you need to understand your comfort zone well. With this information, I clarified the risk I was taking with my family and co-founders. A shared understanding of your personal and professional risks with your founding team is crucial. This helps make decisions when conditions are not favorable. I was fortunate to build that trust early and it serves me well to this day. 

Building confidence to take on something ambitious is an iteration. You start with none, take action and then you get some. Confidence is not something you have when you are doing something for the first time. The big hairy ambitious goals that we strive for are all done for the first time. Each time you take a small step you get the confidence to do it better. The key is to build on your prior confidence and keep going for your ambitious goals.

What about starting a company? Ask yourself the following questions


How do you sell a product to someone else?

How does your favorite company make money?

What's your process to build something that will make money?


It's important to assess facts on your own. Every person associated to a startup is taking some risk, but not the same one. The VC is taking a financial risk, the founder is taking a time and money risk. Early team members are taking career and financial risks. There is only so much risk you can understand upfront. The best way to learn is to take the plunge. I want to leave you with my favorite quote on courage


No matter how wonderful our dreams, how noble our ideals, or how high our hopes, ultimately we need courage to make them a reality. Without action, it’s as if they never existed. - Daisaku Ikeda

Starting things with others

Do you have a tough time starting new things? Do you fear failure? Starting new things is hard. Starting new things while working with other humans, even tougher. Starting new things well is a superpower worth cultivating.

 Starting things you consider hard can be overwhelming. Starting a company is one of them. If we are able to start things with a group, we can achieve things that we will never be able to achieve by ourselves. This is rewarding.  Do it well and teach it to others. It buys you lifelong access to people with who you can start new projects.

 Over the past fifteen years, I’ve studied in two universities and worked at five companies. The number of existing employees, when I've joined, have ranged from 0 to 2 million. I’ve had to start things with a variety of people and a range of prior art at an organization. I've been fortunate to do work spanning roles, technologies, people and cultures. I started a new job last week and was reflecting on how I’ve evolved my process of starting.

 Early in my career, if someone asked me to make an app, I would make an app. Write a Python script to do something, I’ll do it. I worked assuming my manager knew the priority of everything. I repeated this process for a couple of months. I started wanting a greater return on investment of my time. How do I get more impact with lesser input? Isn't that the whole point of technology and productivity? I started asking leaders and peers about my work. Why are we writing this app? What is the purpose of the script for the customer? How much is the customer paying for this? Every question led to a useful lesson. It taught me how to think about the situation from a different lens. Do things well first then ask questions.

 In my next job, I started getting things done. I learned that the focus of the company was to enable sales. This meant I started helping sales teams understand the technology. This helped us get new deals and made our existing customers happier. The size of the organization (~1500) meant that I had to stick to my technical focus and teach others about it. Learning the business context and teaching the technology put me on a growing path.

 I jumped into starting Explorer.ai. I wanted to control my own destiny. A self-driving startup meant competing with multi-billion dollar investments. Problems of fund-raising, product and hiring blew up in my face. I lacked experience in every area. I had no clue how to make decisions. Things turned out okay. We made hard decisions based on our shared values. In retrospect our implicit shared values made things work out. We got acquired. It taught us that no one understands reality completely. We all need to do our best to make a difference. People put in their best based on the stories they tell each other. Stories emerge from the values we hold as a group. Shared values, though implicit, kept us together.

 My next job was at the acquiring company. Joining a new company after an exit is tough because of the difference in values. I found a lot of early success. This was due to my understanding of business reality.  I ran into a roadblock where many people in the company saw the reality with a different lens. As time progressed, it became harder to achieve a shared understanding of reality. I realized that my values will never align completely with that of my employer. Understanding values exhibited by a group takes some time. It takes time to understand the dynamics of a group. You need quite a few data points to understand the extent of disparity in values. Lack of collective action made me unhappy. It was a result of different values.

 "When we care for others our own strength to live increases. When we help people expand their state of life, our lives also expand. Actions to benefit others are not separate from actions to benefit oneself. Our lives and the lives of others are ultimately inseparable." - Daisaku Ikeda

I started a new job last week. A big part of my decision was the alignment of values between the people during the interview. I am spending time understanding the values of the team. It will help me drive action based on a shared understanding of reality.  I care about creating value with others. I resonate with Daisaku Ikeda's view of helping others. He shares, "When we care for others our own strength to live increases. When we help people expand their state of life, our lives also expand. Actions to benefit others are not separate from actions to benefit oneself. Our lives and the lives of others are ultimately inseparable."

 If you are part of an amazing team, appreciate them. If not, keep searching for that team and do great things. Life is too short to not do amazing things with other humans.

The Pitching Skill

What’s the secret to unlimited opportunities? Why do some people get more opportunities than you? We grow up learning that you need to work hard and smart. It will result in more time, money and freedom. We can then work on whatever we want. We undermine the role of pitching our ideas and ourselves.

I started my career working on custom boot and build systems.  I got the opportunity by sending out an email to a stranger on a mailing list. I sold them the idea through my profile that I may be able to solve systems problems. I demonstrated that I can solve a C programming problem and work through the solution. The reward for solving that problem was permanent employment with salary and benefits. My next goal in two years was to join a graduate program. This time I had to write a good essay to study computer science at university. I did not practice writing good essays for two years. I wondered, why I did not practice essay writing for years? I was not taught how to pitch myself.

Pitching became second nature when I started a company. If you pitch well, you can raise money and grow your company. Pitching teaches you a lot about yourself. A person we gave an offer to asked us, "Will you be able to support remote work?". I knew we lacked experience in managing a remote team member. I also lacked the ability to convince them otherwise. Every conversation felt like I had to convince someone else that our idea was worth it. A good pitch can give you access to an otherwise impossible opportunity.

The pitch-do-check loop will help you build credibility over time.

Pitching is to convince someone (yourself included) that your future work is valuable. Don't confuse pitching for doing the actual work. Doing the work makes your old pitch authentic. Your initial pitch will not get any takers, pitch anyways. Do the pitch and the work. Check your work and refine your pitch. The pitch-do-check loop will help you build credibility over time.

Do you have a rejected idea?  A pitch for your startup, book proposal, a new idea in your team. Start with any rejected idea. Do work towards it for a week. Refine your pitch. Share the new pitch with progress. Get feedback from another person. It takes time for your work to speak for itself. Pitching is a skill that helps you jump that queue. I was an outsider to computer vision. I spent a long time pitching and building products that use computer vision. The ability to pitch mixed with a lot of luck has helped me land great opportunities.

The important thing is to take that first step. Bravely overcoming one small fear gives you the courage to take on the next. - Daisaku Ikeda

A lot of individuals are never exposed to the benefits of pitching well. They've closed themselves to a large number of opportunities.   Daisaku Ikeda writes, "The important thing is to take that first step. Bravely overcoming one small fear gives you the courage to take on the next." Each one of us can take that first step. I would love to live in a world where each individual has access to the best opportunities. Pitching their grandest ideas and doing their best work.