Confessions of a serial startup software developer
betterprogramming.pub
betterprogramming.pub
I love small companies, I love the chaos, I love having that bond around some crazy idea that might never work. I love being in the know about how things work and why people buy our product and things like that.
> You’ll Work Hard Instead of Smart
There's this idea that you're overworked and under constant stress when you work at startups, and I genuinely don't understand what people are talking about. I would say don't work for people that want you to work hard and not smart, regardless of it being a startup or not. Don't let shitty bosses force you to work when you don't want to (e.g weekends). As someone who knows how to code you almost always have leverage here.
> Your Equity Is Worth Nothing
It's not nothing. Sure, it's risky, but people do make money. Do it long enough and you'll get lucky (maybe). And quit shitty startups quickly so that you don't waste your time.
RE expected value, I think it's funny that when people do these calculations it's always all startups vs top 5 tech firms. Why not compare it to YC startups for example? If 1 out of 250 ends up being a $100B company, 0.25% of equity you earn per year is $1M in cash. Try to beat that working at Facebook.
> You’re Giving Up Mentorship
It is true that startups are generally less prepared to mentor you. Personally, I believe that mentorship is overrated, but I could see how this is important for some people, especially early on in their careers.
I agree with the gist of the whole sentence and I feel the same, but I wouldn't necessarily connect small company with chaos. I've seen order and discipline in small companies and enough chaos in big corp. If anything I'd consider company size and order/chaos relatively independent dimensions.
Let's say it takes 10 years for the unicorn to reach $100B and you've accumulated 0.25% equity per year for those 10 years (unlikely that you finish with 2.5% fully-diluted unless you were a founder, but let's go with it anyway). $250M cash after 10 years, but there is a 1/250 chance of this being the case, so the expected value of the $250M is (1/250 * $250M) = $1M = $100k/year over the ten years. Let's see if Facebook can beat that:
Even if you're E4 at Facebook for the whole 10 years (not even career level), you would average $264k/year, which is a guaranteed $2.64M over 10 years, excluding stock growth and promotions. Average E5 jumps to $385k/year. Source: https://www.levels.fyi/company/Facebook/salaries/Software-En.... So even the E4 option beats the expected value quite nicely, excluding promotions and stock growth (assuming the startup pays you less than $164k/year, which it likely will).
There are plenty of reasons to work at a startup, but given the choice between a top 5 tech company and a startup, you will 99.99999% of the time not make more money at the startup.
(Edited to fix math)
* 0.25% of 100B is 250M, not 10M.
* 2.5% of 100B is 2.5B.
OP's math, if you believe the assumptions, was right. Of course, the value of money goes down over time, since there's less time to spend it. I would rather have 10M at age 25 than 10B at age 80. One of the downsides of startups is you need to go through a few before you get to a successful exit, and as you point out, unicorn exits take a decade. 250 startups to wealth would mean you'd be wealthy long after you were dead. I'm not sure it's 250 startups, but it's also usually not 1.
OP was wrong about Facebook having a hard time beating 1M per year. I know plenty of people at FAANG above that. It's competitive but not impossible.
As for me, I'm making a modest salary (less than you make, most likely) at a job where I'm having the time of my life. I do impactful, meaningful, interesting things with all of my life. It's hard to beat that. Money is a means to an end, and if you're already there, it's not rational to optimize for wealth.
The only downside is possibility of loss of job, but if my job had the equivalent of tenure (e.g. I could keep doing this for the rest of my life), I wouldn't worry about money at all. But money has risks too.
I would say 0.25% equity is possible at exit, if you started very early and the founders were kind with dilution/top-ups (which is unfortunately not very common). Then I would still stand by everything I wrote.
You are correct. In my 22+ year career, 17 of them were spent at startups, including a stint as VP Eng at the last one. Two of those were acquired (including the VP Eng role) and one is still going strong. This year at FB, I'll be paid the equivalent of what I was paid in my last 4 startup years combined, INCLUDING my proceeds from my company being acquired.
It's a totally different world though. Once I have enough saved to handle college and retirement, I fully expect to go back to the energy, excitement, and sense of common purpose of startup life.
What are the chances that a person reaches that kind of salary? And how does it compare to chances of person making it big in startups? I don't know, because I don't have the data, but intuitively I think the chances and expected value for both is pretty close.
E.g if you're a smart person and a good engineer you're likely to land a good paying FAANG job or become an early employee at a hot startup.
Speaking of YC, I'd love to have a Y Combinator for older, more established folks with track records....
A lot of the structure doesn't support older founders. E.g.: "We’ll invest $125k in return for 7% of your company using a 'post-money' Simple Agreement for Future Equity (the 'YC Safe'). We think that $125k is currently the right amount for founders to be able to run their company and pay expenses for around 5-6 months, and sometimes even longer."
$125k will support a team straight out of college. It won't support a team at a stage of their life when they have e.g. families or kids.
It won't support some at the stage of their life when they have kids or families.
Just like it won't support some straight out of college because they're not going to want to make the sacrifices or have commitments that prevent them.
Sound like the kind of math a startup would use to lure you in. More like 99.75% of the equity you gain will be worth nothing. And you won’t have 250 jobs in your career. What are the odds you actually land that 1/250 that has a great exit? Less than one in a thousand.
Ye. I was going to be smug about 1/1000 being less then 1/250, but then I realized that start-ups with great outlock are probably harder to get into.
I’m sorry, but assuming you land in a random startup the odds of landing in the 1/250 would be one out of two hundred and fifty. There are other factors, but saying the odds are <1/1000 requires more justification.
It's true that you won't have 250 jobs in your career. But you don't need 250 jobs in your career. Take 10 jobs over 10 years. Eventually stay at the one that's promising. Startup returns have power law distribution, I'm sure you'll make some money eventually.
I don't know, my math might not be perfect, but it's not as ridiculous as you make it look.
> What are the odds you actually land that 1/250 that has a great exit?
What are the odds you're getting that Google job? Google has 0.67% acceptance rate apparently. That's only 7% probability of getting that job over 10 years. Or do you think you're more qualified and your odds are higher? If you think you're more qualified, then why do you think you're less likely to pick the right startup and get the right startup job?
Wasn’t it 1/250? Sorry but you’re pulling numbers out of thin air, all you have here is wishful thinking. Fact is most people who work for startups will not “eventually make some money”, their shares will be worthless.
In order to hit it big, you need to either be at the top of your field, which gets you exposure to unique opportunities, or be really good at picking winners (you might as well switch to VC in that case), or just be lucky. You can’t hop from one random startup to another and expect to become rich.
Again, probabilities don’t work like that. You’re not rolling dice to apply to Google, and FAANG jobs are not unattainable, nearly everyone I know that wanted one, got it eventually. Then you have guaranteed high income.
You can choose either life, and the risk/reward ratio is certainly much much higher for startups, but we have to be honest about the odds - they are not great for non-founders.
I guess my point with that is that you'll still make some money if you get a job at top company #2,#3,#4,#5, etc out of those 250.
> In order to hit it big, you need to either be at the top of your field, which gets you exposure to unique opportunities, or be really good at picking winners (you might as well switch to VC in that case), or just be lucky.
But that's exactly the kind of stuff you have to do get a good job at FAANG, is it not? Don't you need to be at the top of your field? Be a little lucky here and there? Maybe pick the right projects that end up being successful? Be a good fit for those projects?
> You’re not rolling dice to apply to Google, and FAANG jobs are not unattainable, nearly everyone I know that wanted one, got it eventually.
And my point is that it's the same with startups. You're also not just rolling dice. You can usually tell if the company you're joining is run by idiots. I also have a bunch of friends who made money, had successful careers working at startups. I consider myself to be one of those people. To be fair my FAANG friends are doing great too, and they do seem to have more job security :)
> You can choose either life, and the risk/reward ratio is certainly much much higher for startups
That's fair. It's all a bunch of compromises at the end of the day.
I dont fault the startup for it but it certainly sucked. I've not worked for a startup since though sometimes it does feel like something I'd enjoy. On the flip side...
Currently, I work for a fortune 5 company. I work with some of the brightest people in the world on projects that move the needle every single day. Yet, the team that I specifically work on is constantly strapped for cash. Our services are used across the enterprise, we enable the company to save millions and we do it in a scalable way. But we are told that we can't have "enterprise" funding which means that we need to scrap and claw money from the people that use our services just to keep them online. There's so much politics that it gets in the way of the work and, again since were not funded, we can't hire FTEs and usually can't even get work from an agency unless its funded from "a client."
All that to say...I really, really hope that my next job has a better balance. I know that no job will ever be perfect. But I'd love to have a balance between "working with bright people who support the work that we're doing but without guaranteed funding" and "working for a soulless megacorp with infinite money that wont spend it but that offers job security."
I find how internal budgeting is done in many cases to be very strange. I run into this in my organization as well. Internal budget disputes can stop or start project work, so I can be sitting around idly (while getting paid) while they sort out the internal monopoly money they use.
I get why they do it as you can't just dump unlimited resources into something, but it has all manner of side effects that it generates.
Resources that are underutilized are not borrowed by other departments since they have to pay for it even though the marginal cost of usage is almost zero, so they buy their own or don't bother.
The end game is that the internal fairy tail costs will be used as a excuse to outsource stuff and pay real money to expensive external suppliers to save the pretend money in the department budgets ...
"Hire Fast, Fire Faster" is total nonsense. It's "Hire Slow, Fire Fast".
You hire slow because the risk/cost associated with a bad hire is infinitely higher than the downside of not making a hire. Moreover you should always take as much care as possible when you are potentially fucking with someone's career/livelihood.
You fire fast because despite hiring slow you have realised that you fucked up, and made a bad hire. Once you understand the hire is bad it is in both yours and your employee's interest to fire fast - albeit you must always do this with the utmost respect for the person being fired.
When one drags an interview process too long they risk losing out on candidates to faster firms. However, a person's work performance and interpersonal skills are often on-display in about a month or so. This allows one to break contact, ideally with a respectable severance, and keep moving.
At the first professional job I've held, and my golden standard for an employer, they employed this approach. When one accidentally hired a screw-up or a non-team player we simply terminated their employment. The understanding being that our HR handbook is "Be an adult." Putting in rules in a company of 50 to cater to the 1 bad hire, that just punishes the 50 people who did not need the rule.
So realistically, in the current job market, you'll either have to deceive the candidate, and carefully hide this wholesome policy, or lose all the good candidates who have other offers and won't drop them to run a serious risk of being fired in a month.
Remember that "not getting along" may mean you don't (initially) jive well with the other team members, not that you aren't an adult. Only a naive (and inexperienced) candidate would believe that "it won't happen to me" if you really are letting people go so fast.
> You won’t get the mentorship you need from senior engineers
This was not my experience early in my career. It was invaluable to have mentorship at my first few companies and I try as much as possible to teach and give advice and direction when possible.
> High Breadth but Little Depth
I'm not sure being incredibly silo'd and knowing one skill well will help your career more. The best asset I have is being able to learn new stuff well quickly. Getting a wife range of experience is extremely useful and allows you to get to the point where you inuit how stuff works easily.
> Hire Fast, Fire Faster
Counter point: Amazon
Yes, shitty companies are shitty. You shouldn't just take any startup job, and the same goes for any large company jobs.
Large companies have been soul crushingly slow and beaurocratic in my experience. I don't think a slow silod career will allow you to expand your skill set which will impact your earning potential in the long run.
So you were a founder not an employee?
I'm absolutely not going to say I'm some all star that is the reason the companies did well. As my career has grown, my impact on company performance has grown. I've been lucky enough to be a part of a lot of good teams.
Early in my career, I was lucky with the companies I got jobs at. They happened to have great teams with incredible mentors that I was able to lean on. But, that luck let me see what good teams look like and I've looked at potential jobs through that lens for a while now. It also helps a ton to look at those companies as an investor. I try to look for companies that are dominant in their markets and have solid growth when evaluating potential jobs.
My first company that I interned at while in college, then transitioned to full time while still in college was acquired by one company after being there for a few years, then that larger one was acquired a year or so after that by a fortune 50. I saw the dark side of beuacracy and that kind of made me focus on small companies that have lots of potential. One was a part time contractor gig where I was helping out my ex manager build a company after the one I worked for him before that got acquired and that part time company was acquired less than a year after launch. There was another one that happened about 90 days after I joined. My most recent one was acquired after working there for 4 years by another fortune 50 but they are allowing us to run independently and I have an amazing manager so I don't think I'll be moving again any time soon.
A great deal of pain can occur by standing up a lot of things you've never worked with, very quickly, and then moving on to the next thing. Not knowing the best practices and the pain of time with those tools and services may lead to some major technical debt down the line that future teams have to suffer with.
When there's only a few engineers at a company, people aren't going to be experts in everything they end up needing to do.
> You’re Giving Up Mentorship
Depends on what you want to learn. If you want to learn how to run a startup or how to take on a lot of responsibility early in your career, the mentorship you can get is top class.
> High Breadth but Little Depth
Whats stopping you from building depth? There are plenty of highly focused and specialized startups. Between this and the mentorship point it sounds like author isn't the best independent learner.
> You’ll Work Hard Instead of Smart
The pay won't be FAANG level, but find the right startup and the true 9-5 culture is there. If you aren't "working smart", that's on you.
> Your Equity Is Worth Nothing
Yup. 100% agree.
In summary, here is my 2 cents: Just like leading a team or working on core technologies, working at a startup is high leverage due to your ability to set standards when it comes to culture, development practices, organizational policy, technology, etc... If you don't care about that, don't work at a startup. If you do care about that, weigh your options.
> Read the rest of this story with a free account.
Don't Write Text for Medium
I also got
> You've read all your free articles this month
I haven't read any, so that's neat..
(a different matter is whether enabling the reading limits does increase or reduce the blog's reach...)
Startups take risk on the traditionally unqualified. I was no where near ready for my first salary job, but they effectively lowered the requirements and pay. Within 3 years I was making 100k no degree.
Startups offer much more of an opportunity to try new things, vs working with code written during the Reagan era .
The author is correct that by the numbers it is far more likely that you will make more money if you just sell your soul to a FAANG, and if all you want is to make a quick buck and spend it all on overpriced real estate they are entirely correct. Every single one of their other points is just indicative that they have worked for awful startups. Large companies can be just as bad, but the difference is in a large company most of the problematic points will break down lower in the organization. If you think every team at all the FAANGS is great at mentoring or doesn't put in long days or has anything approaching a reasonable hiring and review systems you are ignorant of just how much variation there is on different teams.
True, but this also assumes that you can 1. identify from the outside (and as a very junior engineer!) which startups are well run and 2. actually get into said well run startup.
There are plenty of poorly run startups as well, where the things a young engineer would learn could actively hurt their career later on. Since junior engineers are by definition not very experienced, they cannot yet tell which startups are good and which aren't.
When I joined my first startup I had already worked in a large engineering firm for 5 years, and due to the nature of the work ( small team with responsibility to do everything from funding projects to delivering them ) I knew what kind of questions to ask to figure out how well run the company was. I think advice about how to spot well run startup's would be much better for junior engineers then telling them to just join a large public company.
I've worked at a large company, a small and young company and small and very old companies.
You learn different things at different companies.
It's useful to learn how to be scrappy and fast as a young startup, to learn a little about a LOT of different technologies to push them out as quickly as possible.
It's useful to learn how to deep dive and improve features in a small company where you can make real impact, while still having the freedom and cash-flow to go slow and intentional and make big changes in small areas.
It's useful to work for a large, established company that has taken its scars and has long, established and hard-fought best practices in place, and where you can work with principal engineers that have made some awesome software.
Every kind of company has its benefits.
If you do contracting work you will get a _huge_ variety of work in different problem domains. You really learn a lot in the costumer facing part of it, specially if you are more introvert and also the constant networking needed to have a steady stream of work and clients (You also learn that there is no money in the world that is worth putting up with some unhinged clients).
One thing that is important to highlight is that although you can learn many things in all of these settings, they also carry different stress levels, I would rank from lowest to highest stress (highest to lowest Quality of Life):
1. Small old company
2. Large old company
3. Consultancy
4. Young Startup
I would say the defining feature of most (the others had experience hating big corp life) the people who chose the startup is that they cared more about what the startup was trying to do than the paycheck. It's a harder decision to make now than it was in 1998, but in some ways it's the same decision.
I have to disagree with the mentorship aspect of OP - that isn't inherent, that's a choice, and companies of all sizes choose to do it poorly.
Full disclosure - if I were counseling a wet-behind-the-ears developer today I'd probably encourage them to try FAANG life for a little (assuming they could); worst case is you learn some useful stuff and get a nice nest egg.
I agree with the last advice: take a lot of salary, don't work more than 40 hours/week - and I'd also add make sure you know your legal rights, as a startup manager may opt for the kind of blatant illegality that corporate HR would stomp on in a larger company. But when you set the right limits startups - not every startup, but the right startup - can mean decent pay and a much better work environment than a megacorp.
It is important to talk to people who have had similar and different challenges to learn from their experiences, however unless you are pretty junior, you will likely need to network internally and externally anyway for good Mentorship even if your work at Big Co. While there might good people in your org, you may have better connect with someone you met in a meetup etc. You should find the best suited person for you organization shouldn't be a constraint.
Mentorship within the work environment can be overrated. It can become stiffing if the expectation is you follow some advise even if you think it is not best approach. If you don't have freedom to talk to people and decide your own path, it just another mechanism for supervision.
--
Depth versus breadth is matter of taste and preferences, some people really like to be broad and across different stacks, that is not inherently bad in itself. It also nothing to do with startup, you are going to be horizontal in any small company job versus specialized one at large company.
If you want to specialize narrowly then no small org startup or boutique firm is going to be suitable for you.
Which can work, I think, but you need seniors in there that put a limit on people's enthusiasm, or else you get bad decisions - programming languages you can't find people for, a microservice architecture that is more cargo cult and wishful thinking than actually necessary, and of course the software engineering's equivalent to pump and dump, that is, eager young developers who vomit out 50K LOC a year, then disappear for greener pastures without adequate handover. These projects are doomed to fail because the next generation that has to continue development and maintenance are almost always of "lower" level than the ones you built it, so the whole thing stagnates until the cycle repeats.
I guess, different things for different people
I worked at startups, I thought I will try my best at Big Corp, and instead of directly working on user facing products, we just had a 6 person team work for 1 year on backend of an internal tool, which we didn’t ultimately even ship. (All the while shouting “agile” and “microservice” randomly.)
It was so bizare and soul crushing and made me leave and never look back. And back to start-ups.
The money was good though.
As long as you still believe this is true for the problem space you are working with then this means startups are still going to be the better bet.
If you're interested in learning how to build/use disruptive technologies or businesses models then there's no better place. Startups don't have the overhead associated with maintaining a sustainable pace so the speed of learning is incredible. High risk, high reward.
If you're convinced that technology or business models in your problem space has plateaued around some local optimum then you can probably learn more from distilled wisdom in textbooks and tutorials than from hands-on in-the-field experience. Established industry jobs nearly always pay more and there's much less associated risk.
Despite being a recent grad, I was given huge responsibilities and with that huge mentorship (founders couldn’t afford for me to mess up). I think founders are generally smarter than middle managers at big companies, so I think that at least in theory they’d be better mentors.
Only the competent and hardworking keep their jobs/move up at a startup. If you’re someone who wants to work with the best, this is a good thing.
The harder not smarter thing is something this essay might be close to right about. Sometimes there is not time to think deeply about problems.
But…to say startup experience is writing CRUD a bunch is false. Good startups generally use cutting edge tech—no legacy systems and less maintenance and migration pains.
One thing I really want to do is work for a start-up with very few people so everyone gets to take care of one piece of the puzzle and no one is there to shoulder responsibility.
At the end I think ownership weigh way way much more than money and stability, even when I'm towards 40 and need money for the kid and house. With ownership you can really enjoy your work instead of doing someone else's shitty work. And TBVH once you get enough ownership I think money is not going to be far from you. You can bag huge amount of experience in short time and sell it to whoever has the $$$.
You should of course practice solving the kind of problem you want to solve or enjoy solving.
If you’re optimizing for an IC career at a large company, then you should of course practice that kind of work (and get mentored and get depth and everything the article says).
If you’re an engineer trying to transition to building businesses or being an investor, then you should of course NOT do what the article suggests. You should instead practice startup problems (probably at startups or by starting your own), like prioritization and resource allocation and networking.
And if that’s the goal, then you can easily find business mentors or startup mentors that will make an impact on your career, and what the article pejoratively calls “breadth” in software problems will actually turn out to be depth in business or startup problems (like prioritization and resource allocation and networking).
tl;dr – Sure, find mentorship and get experience, but make sure you articulate your goals first.
I wonder how many startups that bootstrapped the author worked for and why they didn’t want to start a startup, that’s the only reason why I would join one because I’d like to be an executive/cofounder myself.
Sorry, but that explains his/her whole outlook.
No wonder Medium gets so much hate.
how about no
Surely, by now, even teenage coders recognize the massive downsides to working for a startup.
Just look at trends like 30 second videos on TikTok or IG. There are thousands of kids who plan to make a career off of these platforms and dream big. But the truth is that you can be an 'influencer' for only so long. Then the world moves on and you are left with the prime years of your wasted and have no skills or experience.
One thing I notice people doing is creating like crazy to reach 1,000 subscribers then continuing until the first pay comes in and then they never return.
To make 100 a month you need about 100,000 views because you only get paid if someone sees the ad and doesn't skip.