-->

Why Software Engineers Shouldn’t Start Startups

Posted by : on

Category : Software Engineering Life


Introduction

I’ve been doing leetcode daily for a very long time already, and one person once asked me, why don’t you just run your startup, create some app, or maybe run your outsource company?

I already tried to run my own projects/startups (unsuccessfully). I also tried to join the startup that was run by my friend (successfully) as CTO. After some time, I still came back to big tech life, delivering features, learning distributed systems and solving Leetcode daily.

Why is that, and why you SHOULD NOT go the startup way as well - this is exactly what we discuss today.


What do you enjoy?

All of us have different reasons for deciding to become a Software Engineer. By software engineer I mean everything: backend, frontend, devops, SDET, whatever you are.

When I was at school, I liked solving math problems. At the same time, I also heard that people were making money from websites (in 2015), so I wanted to create one. I tried it, and it gave me the same feeling as solving math problems.

To summarize I enjoy:

  • solving problems
  • building high quality apps (code/architecture-wise)
  • the feeling of completeness when a problem gets solved by me
  • understanding how things work internally
  • growing both formally (title change) and in fact (by skills/knowledge)

Of course I like being paid for this, we are all doing it for money in the end, but personally, I would still build projects even without getting paid for it.


Can you enjoy being an employee

Currently, working as a backend software engineer for a company completely fulfills all my enjoyment points.

  • I am solving problems and challenges daily at work. Yes, sometimes you get a boring monkey job, but with automation and AI it becomes less and less.
  • My work might have an impact on hundreds of millions of users. Unfortunately this is only the case in products with huge traffic, but it is up to you to apply and work there.
  • The team where I am is building high quality systems, so high standards and requirements are applied everywhere, starting from architecture docs, diagrams, and ending with the code and PR review along with deployment and rollout.
  • There is a career path for growing, that will be over with ceiling only in about 10-15 years. Even after that, I still believe there will be new things to learn.
  • I have an incentive to learn. From time to time there is something I need to learn in terms of general distributed systems / computer science topics. If not - you always have an incentive to learn system design and algorithms, as layoff is still a thing in the world, and you want to feel secure about it.

Yes, there are drawbacks: you are dependent, there is always somebody that will tell you what to work on, you cannot decide when and where to work (partially not true), you can be fired any moment (partially not true, at least in EMEA).

I agree with all of them to some degree, but along with drawbacks, it brings a bunch of securities: stable salary, paid vacation, absence of mental pressure and responsibility (only to some extent). But what is the most important - I am still doing things I like.


Why is running a startup not enjoyable?

What is the problem with running a startup? It brings you independence, it scales, you are working for YOURSELF, they told…

As I see it, it makes you stressed and work even more: now your boss is not a manager, but a customer (God knows what is worse), you work for yourself, which means you ALWAYS work, you might get higher pay, but you might not, and it might not be stable.

But these points are not the most important here, just a matter of choice of whether you are a risky person or not.

There is still one very important “drawback”, that made me quit my projects, and the startup of my friend.

When you run a startup - you DON’T do engineering.

Let me elaborate a bit.

First, if you are co-founder/founder - believe me, engineering is the smallest piece of your activities. Before you started making any money your main headache would be to advertise and bring investors, which has ZERO in common with engineering.

Second, during all the stages of your startup - you need to ship code and features EXTREMELY fast, because tomorrow they might not be needed anymore, or they will be implemented by a competitor who raised the next round unlike you.

“First sell - then develop” strategy. What you actually are going to do, is to use a bunch of LLM agents just to make something work. It automatically excludes spending time to make it high quality, as there is time pressure.

Furthermore - there is no learning. You are not going to deeply understand the tool you are using, cloud you are deploying to, storage you are going to write to. The tools will be switching faster than you’re going to integrate them.

After living like that for half a year I realized that my daily routine comprises:

  • constantly being behind, and not able to deliver everything required
  • whatever you are doing is a low quality “just make it work” piece of software, that tomorrow might be thrown away
  • constantly starting new and throwing unfinished features, as market and direction might switch every single day
  • constantly switching technology, because the new tool might be cheaper, or better in some aspect

We should also keep in mind the GPT and Agentic development. Since most startups have a small code base - mostly you will be doing vibe coding, which on its own is not the most enjoyable way of building apps (IMO).

In half a year due to the reasons above - I started burning out.

If we go even deeper - (co)founder role - it is even worse. You are spending 70% of your time thinking about marketing, finding new people, also firing some of your people, talking to investors, going with them to parties, building connections, etc. All of the above has ZERO relation to engineering. On the contrary, it brings 100500 times more stress.

The biggest delusion here is to perceive startup as developing your own project, building features you want to build, building them the way you want to build with tools and technologies you want to use. This is a 100% mistake, in a startup - the market and customers are dictating what, how fast and in which way you will be building. By the time you get some investors - they will join your “dictating” community. Just be aware of this.


Conclusion

Before you decide to do your own startup - think carefully, what do you REALLY enjoy about your job? If this is communication, delivering features very quickly, managing people, fast feedback loop, instability, risk - then the startup path might be for you.

However if you are the type of person who likes engineering, likes building something high quality, likes learning how everything works internally, stability - then, maybe, startup thingy is not for you, and you will ruin your mental and financial health with it.


Comments

About Andrii Bui

Hi, my name is Andrii. I'm Software Engineer at Microsoft with 7 years of experience.