Photo by Annie Spratt on Unsplash
Should you join a Startup?
Learnings from my personal journey through the Silicon Valley
You may be working in a large technology company, it may be publicly listed or private. Or, you may have never worked in tech but are excited about working as an Engineer a Product Manager, or a Designer. You have probably heard about how today's household names such as Google, and Apple started in a garage or dorm. You have probably watched the movie The Social Network or you have enjoyed HBO's Silicon Valley. Any or all of the above may have gotten you curious about working at a Tech Startup. I want to share with you, learnings from the five Silicon Valley startups I have had the privilege to be part of. I hope that this article may lend your curiosities a direction.
The year was 2016, I was working for a large semiconductor company as a Staff Software(ish) Engineer (more on that later). I had been working there for close to 10 years, the code I had written was running on 100s of millions of devices. Even better, the algorithms I had developed were integrated into Apple's iPhone and iPad software. But, I was bored. I wanted a taste of Startups, especially since eventually I wanted to be an Entrepreneur myself.
With my calm and composed communication skills, know-how of hardware and software, I was able to impress every Startup I talked to. I got offered Lead roles. In the hindsight, however, I did not get approached by top startups e.g. Tesla, AirBnB, Snowflake, or Stripe. In fact, many pre-IPO companies that I applied to, did not even bother to get back. But I was naive, bored, and eager to start somewhere. I decided to pursue the role of a Lead Software Engineer at a Startup building next-generation display technology for AR/VR headsets. They had recently raised a round and through my Crunchbase browsing, I found them and applied, interviews were smooth, and I accepted the offer.
While on the job though, I soon realized I was struggling. The code I was familiar with writing at large tech was far more focused on a single component, compare that to the Startup's multi-subsystem application. To make matters worse, I was meant to navigate all that code as a "Lead". One can never be prepared for what came next, within a month of starting the new role, I was faced with the sudden loss of my loving mother. It took me a month to get back to work (you can never fully recover). When I resumed, my struggles reappeared. This continued on and got worse as the management hired a leader who also did not have Startup experience. My reports left the company, both out of frustration and for better pastures. I was forced to hire not-so-skilled reports and was failing to deliver a high-visibility project on schedule.
I know what you are thinking at this point, but No. This part of the story is not of heroism where I battled my daemons and came out on top, shipped the project and we all had champagne on a yacht. No. Instead, I got a call from a dear friend, who had recently left Apple and was working in a "Unicorn Startup". I took an office tour of the Startup with him, it was like one of the Google offices (with a slide of course), had perhaps even better food, which was served for free three times a day. I was bought into this life immediately. Interviews were tricky, my lack of competence with low-level programming got exposed, but somehow I got offered.
At the new Unicorn Startup role, within 2 years of leaving my former large tech employer, I had managed to increase my base pay by 50%, and my total comp by 300%! Now you are probably thinking, this sounds way better than saving my previous not so rich startup. I have awesome pay, fantastic perks, and equity that will probably be millions of dollars in near future. Once again, No.
Do you remember I said earlier, that I was Software Engineer(ish)? Yep, despite my patents, despite my leadership at the large tech employer integrated complex algorithms into the secrecy of Apple software. I was not an industry-grade Software Engineer. I know you would say, Software Engineering is lifelong learning, etc. But the fact remains, I was not a full stack Web dev, and even in my primary role in Embedded Software I lacked a "body of work" in shipping projects built ground-up. You absolutely need that to be able to work in a Startup.
1: Build a Body of Work
So, this is your first piece of advice, before embarking on a job at a startup, you should have done a handful of projects, in open source, at work, or as a hobby. They need not be all written by you but ensure that you have gone through building it (think Bazel, Gradle), adding a module or a feature, and rebuilding it. Understand the build recipes and test methodologies. Push commits and open Pull Requests (if it is open source). Build a Body of Work. In larger tech companies, you can get away by doing just your piece, not being bothered by how the overall project is held together by build scripts, CI/CD. For Startups, more often than not, you will be laying down what's known as the "scaffolding" of a project. Having a body of work will help you get this first step of a project to go smoothly at an emotional level. You will otherwise start feeling like a lame duck who doesn't know where to start. Or worse, you will go around in circles, writing pieces of business logic when the first building (literally) block itself is missing. This includes selecting right tools for the job (think IntelliJ, VSCode), because when configured correctly, they do the legwork for you - another thing the Body of Work prior would have taught you.
If you are not an Engineer, but a Designer - your body of work is your portfolio. If you are a Product person, your blog, your TikToks, and your tweets are essential means for you to not just present but also test your expertise. The comments and opinions you receive will calibrate your learning.
Moving on. I was at the fancy Unicorn Startup with a slide, arcade games, Chef catered meals, and Toto bidet toilets - in case someone had too much to eat. Not having a Body of Work meant I was neither at a top startup viz. Tesla, Stripe nor I was top dog at the said fancy startup. I was timid and low on confidence. I would carve out projects for me that had little impact but work that I was comfortable with. Eventually, though, I gave up. I developed deep distrust in the Startup's future and in turn my future there. Partly because of their spending pattern and partly because of how "Unsupervised" I was there, which I learned later in my life, is a common state of affairs across all Startups.
2: Become good at being Unsupervised
Are you organized? I don't mean to ask if you Marie Kondo your home every spring, but rather about your relationship with work. Does that relationship sound like discipline and order? It can mean a few specific traits e.g. at work you organize the Jira board of your project yourself. You are generally good at estimating how long a task takes and are able to break down big, lofty goals into daily achievable chunks. You don't need "reminders" from your manager or lead. You wake up excited that you are going to push some code today or make some deals happen. You see, in Startups, more often than not, you will not be told how something needs to happen. You will be told "What needs to happen" and "When it needs to happen", the When part can change, often getting pulled in rather than getting pushed out. Establish a discipline and routine where you are at your peak, in your zone, and are able to achieve what you set out to do so. There will be distractions, be prepared to absorb them and practice how to still meet your inner deadlines. Also, if you feel like you need to research "How" something needs to happen, eventually you will end up being the expert who will teach everyone at the Startup (and perhaps the industry), "How to make that thing happen".
Having gotten bored at the fancy Unicorn, in less than a year I started looking around. I failed a bunch of FAANG interviews. Sometimes I did not Leet hard enough or I missed out on Leadership Principles. I also wanted to focus on my health and social life, as I was getting tired of long commute from San Francisco proper, where I reside to the Peninsula and South Bay, where tech offices are.
I found a role at an exciting startup, which also had a socially responsible outlook. They had solved some really complex challenges in Voice, Wireless and Battery powered devices. To top it all off, it was a bike ride away from my home in San Francisco. I joined to Lead a complex System Software stack spanning Android, Firmware, AWS, Digital Signal Processing, and Manufacturing. This is where I had a turning point. I had a great leader managing me. He allowed me to work with my strengths, while at the same time broadening my know-how of Software Engineering. I also got way more organized, thanks to their quality Agile process. I was also blessed with a wonderful set of reports.
So, Life was Good. Biking to Office, Happy Hours at local Breweries, building cool Gadgets, growing my Team. I even managed to build and certify a brand new Wearable with FCC and Verizon Wireless. But, No. I know you are frustrated. What did I do now, you must wonder. Remember I mentioned Agile? Apparently, Hardware Engineering, unlike Software Engineering, is not Agile. Choices were mad in terms of hardware components before my tenure even started. The choices could not be undone and were now biting back. We could not have shipped the Wearable as it was, it would just not last long enough on a single charge. A dealbreaker. It was SOL. I should have seen it coming before taking it to Certification. I should have been more vocal and prepared to inform about the component selection error, all the way up, to the CEO. This is where I learned two Startup life lessons.
3. Deal with Everything, Everywhere, All at Once
Prioritization is a good thing, but Procrastination is not. When you look at your backlog you may either do a binary prioritization, I want to do certain tasks this week. Others I will deal with next week. Or a more granular, graded prioritization that spreads tasks over an entire quarter. Sometimes while developing or testing, dogfooding your product, or your App, you come across a "minor inconvenience". You throw it on the backlog. It gets bounced around. Someone starts working on it, they get distracted. The issue gets "re-prioritized". Come product launch, the minor inconvenience is now a thing that is gating you from release - and to fix it, you need software equivalent of a root canal.
When working at Startups, ensure to question everything. If it's a minor inconvenience for you, run it by your Product Manager. They may actually see the gravity of that issue and escalate it. You can prioritize, but you can not escape touching upon everything. From the smallest idea, someone had at a coffee break to the minor inconvenience in an experience that someone's spouse reported while dogfooding. You need to have an appetite for consuming bugs, rapidly. You need to have the stamina to make changes constantly.
4. Manage Up, All the Way Up
Startup Leadership is Ineffective if you don't provide them with Information. If you discovered a piece of information about a project or business, assume that you may be the first in the Startup to have encountered it. Do your diligence to verify the information, in terms of software this may mean inspecting logs and identifying recurrence patterns, ease of reproduction, etc. Speak up using forums that work, I am not talking just about opening a Jira, but rather tell your Lead or Manager in your 1:1. Plan remedying actions. Don't stop there, also run it by your Product Manager. If the consensus builds that this requires a change, but it is a widespread change and perhaps needs Exec approval - so be it. Drive it to a resolution. This is not just for your own visibility's sake, make no mistake, the "minor inconvenience" I mentioned earlier, resulted in the dissolution of the entire Wearable team at that Startup. It will impact your job or the health of the Startup, which in turn will make it a dead-end place for everyone.
After the oncoming news of the dissolution of the Wearable team, I moved on, with a heavy heart. But, sometimes change is for good. One more time FAANG rejected my advances, it was not them it was me. I continued my path down the Startup road. This time I had two offers. One was of the Director of Engineering and the other was that of an individual contributor (IC) Software Engineer. The Director role was at a budding Music startup. It had a cool vibe. I was getting a huge upgrade in the title. I would be hiring reports. The IC role, was at a Unicorn, built by successful Co-founders who had sold their previous Unicorn. Both were close to my San Francisco home. Eventually, the Unicorn is where I decided to go. Remember that, being a People Leader at Startup does not necessarily translatethe to equivalent role at a large tech company. If the Startup doesn't pan out and you want to leave as a Director, you may be able to bag a Director role at another Startup (if you are lucky), but you may not be able to even interview for a People Leadership role at FAANG for .e.g. So plan for your Career growth appropriately, being an IC at a Startup can teach you new technologies. Whereas being a Leader will teach you to build a network, hire through the network, and possibly Startup finance. Choose wisely.
5. Don't Take a Pay Cut
This brings me to the most important part of decision-making when joining a Startup. Compensation! I am not a Financial Advisor and I will not get into describing which Equity type works for you. I am going to simplify it in terms of two factors. The first is the cost of living. Think about your life situation for the next couple of years, are you getting married, having a child, or buying property - these events will increase your cost of living. The Startup needs to pay you Base Pay sufficient enough for you to cover your current and near future (2 years) expenses. If there is no Liquidity for your Equity, i.e. you can't sell it for cash, do not count it towards your Total Compensation.
The second is Upside. Startups often make you a low Base Pay offer, stating they are giving you Generous Equity. The Equity most likely won't come with any Liquidity plan. In the event of an Exit (e.g. IPO), tax implications are also your liability. Don't be fooled by Upside. But at the same time, don't crank up your Base Pay that they will drop the offer, let's say you are coming from Google, you have a Base Pay of 200k and RSUs worth 300k / year. Do not expect them to pay you 500k / yr in cash. But definitely don't take a Pay Cut, if your Google Base Pay is just sufficient for you to pay for your mortgage etc. No Upside in Startups is guaranteed and the timeline to exit can be further than you expect. If a Recruiter at a Startup keeps ringing you after interviews, to take their Cut Pay Offer, politely decline, don't get lured.
So. I was at the Unicorn. Getting RSUs (they are nice, I don't have to pay for them like Options). Free Lunches. Lots of Perks. Gorgeous San Francisco Office. This was my 4th Startup since leaving the large Semiconductor Company. I got elevated because of my good work and shared ideas. I was now going to report to and work closely with the Co-founder and CTO of the Company. Sounds awesome right!? But, No. This is also when I started observing my hesitation in affecting change. I started noticing, that I am taking Code Review comments too personally. I am lingering and slacking on the Code Reviews. I am pairing with another Engineer and suddenly I am forgetting Linux commands, and Git commands - things I have used before. I would start talking about a streaming protocol I know very well in some meetings - only to lose track and blabber. No kidding, I became an underperformer. I felt miserable and embarrassed. There was a Pandemic unfolding outside, and another accident hit my life. My investment condo got flooded and the tenants had to vacate. I had to manage repairs and work on my fledgling code sitting in corridors as workers tore apart the walls and floor of my beautiful condo. It was on one such day, I was sitting on the condo floor with my laptop when my boss, my CTO handed me the appraisal (yes Startups have them). He gave me a 2/5 rating and told me that I am not performing at my level. Something, I have never ever in my 15-year career been told before. I was shattered and had to see a therapist. Signs were all there, but I did not notice them. I had Imposter Syndrome. When I was at the Wearable Startup, I managed someone who battled this and I was not very effective in helping them out of it. It's a specialist's role, i.e. the Therapist. But the Imposter daemon has now come to haunt me.
6. Don't get trapped in your own Mind's games
When working in startups, individualism reigns supreme. You learn a lot on your own, you deliver a lot on your own. It becomes a personality type. But it needs the fuel of self-belief. You can easily enter Mind Traps when you have been so self-reliant. You gotta believe yourself, but then your mind tricks you into telling things that are not real. Code Review comments are not intended to put you down, even if they are, move on and don't take them personally. Don't think you can read the room, because it will only make you think everyone else is smarter than you. Focus on what you can Control. Your code, your tests, your design. Work within given constraints and the apparent restrictions will eventually ease, letting you work more freely. It's easy to get Imposter Syndrome when working with someone exemplary, like a CTO or a CEO. But remember they hired you, so now you're part of the in-crowd. Some comments made about your work may seem harsh, but that is about your work. Keep fixing and improving things, don't think the world is conspiring against you.
I managed to pull myself out of the Imposter Syndrome. Started delivering goods. But the goods were not good enough. Not because of my code lacking but because the data needed for the feature not being sufficient. I was tired of doing perhaps the best work of my recent times yet not getting the result. There were talks of moving me to a maintenance project and that was the straw that broke the camel's back. I was in the job market again. This time again, I received two Startup offers.
7. Demo the Startup's Product
The first offer was from a Food tech startup. It was a leadership role, and I was excited. After receiving the offer, before signing, I asked for a tour of the office and a demo of their product. The office was in San Francisco, but I got told it was moving to South Bay, for legitimate reasons. The product itself tho was far from what was "sold" to me during the interviews. It did not produce the beverage, I was told had won awards. It rather generated a cocktail of sugar water and alcohol, which I was told was unsafe to drink. Red Flag after Red Flag, I rejected the offer.
The next was stealth with global operations, massive funding, venerated cohort, and a successful founder. I had already used their product, without knowing, which was a great thing and a testament to their stealthy yet successful format. I was bought in and have been there ever since. Am I happier than ever? Can't say, but I woke up today morning with a lot of energy, I made breakfast this morning, managed to write this article, attended a family doc appointment, picked up Boba, and did I mention work meetings?
Startups are not for everyone. In the hindsight, you would feel you left a lot of money on the table and should have worked for FAANG or another large tech. One thing is for certain unless you work in a couple of them, you won't know for sure how it is to build one. If Entrepreneurship is your goal, definitely go to a Startup. Please keep my learnings in your POV before you start your journey. Until then, keep building, keep failing, keep rebuilding.