As a Software Engineer, do you prefer to work at start-ups or outsourcing agencies or big companies?

twitter logo github logo ・1 min read

I’m sure every software engineer along with their career has this dilemma: "Should I join a startup or a big corporation?" There are many factors for a decision here and everyone has different circumstances and different offers on the table. Each type of company gives us a different set of skills and a different understanding of the software world.

Let's discuss this! 👩‍💻👨‍💻

Please, share your experience and opinions about where you like to work more and why?

You can also find more insights, thoughts, and learnings about the topic in my upcoming newsletter (+bonus networking cheat sheet)

twitter logo DISCUSS (45)
markdown guide
 

I love startups - they (should) have one common goal that everyone is working towards. A great startup has a varied mix of people from different backgrounds and experiences. You're expected to adapt to the unexpected and get involved in everything

Bigger corps (I'm at one now) are less fun, you may earn more but are generally less productive, pigeon holed into the area of tech you were hired for and the experience is much less fun for me. You also spend a lot of time doing things which aren't really productive: constant meetings, appraisals, meetings and jira. Also meetings.

Spinning this on its head a bit: I really like to work for tech companies. If it's not a tech company then you're just seen as "the person I go to when the printer is broken"

 

Relatable... Ever wondered myself why they blame me for deadlines when they consume my time for a useless meeting just to blackmail others.

90% discussed about their story
10% for nothing.

 

What do you mean by “discussed about their story?” What story? And who are they?

 
  • Where am I am worked? a startup, outsourcing or big companies?

  • YES.

Startup = a lot of freedom but monetary it so so. It also has a lot of overtime (unpaid). It won't give you stability.

Outsourcing = it's a bit jumpy, usually, the salaries are so-so too (but way better than a startup), it also gives you more stability. Commonly, it exploits the workers but outsourcing is a nice way to learn a lot of technologies in a short time.

Big companies = Good salary, stability but generally the work is stale. Bureaucracy is horrible, every big company has lots of level of bureaucracy (including Google), so the freedom is nil (and the productivity is also nil). Usually, you won't find any useful but stale technology or the ERP of the business.

 

I agree 100%.
Especially when working in big companies you have to fit into THEIR processes because they won't change anything.. they did it the last XY years and it worked.
Remote: often no option. Use your own hardware: Never, I could be infected with ALL malware and viruses in the world. Use Slack for internal communication: NO way, because the servers are not in Europe. But yes, they give you stability in long-running projects.

 

It almost sounds like none of the archetypes of these companies are actually 100% awesome. For everything, good thing there seems to be plenty of drawbacks.

 

True. You can't get everything in any set-up so learn as much as you can. Maximize whatever you can get in terms of experience and enjoy the ride.

 

My experience is a little atypical since I’ve worked with over 20 companies in my career, but I put too much emphasis myself on pay, prestige, or technology at times in the past.

The first few companies I worked at had me staying there a longer time (2-4 years). But once I got into consulting it exposed me to a wider variety of company sizes and industry niches.

Since we only stay at jobs on average 2 years, I would suggest people join whatever company has people you like most (that you can glean from interviews or social media), and is making an impact on the world you believe in.

This may sound like a weird answer but it’s only because (again only my experience) the size of the company has less of a bearing on our ability to grow than I once thought. You can find startups where the things you think you’d like from one just aren’t possible because of the people, and vice versa for enterprises.

 

Engineers should not work for outsourcing agencies. If you are still young and motivated, definitely you should work for startups. In fact, most of devs in Japan work for outsourcing agencies or agencies of agencies of agencies, which suck salary, after all IT industry in Japan is way behind US and China. Actually I am a digital nomad, who don't work for companies but for myself. Anyway engineers should not work for money but enjoy tech, writing codes...

 

What is different for you from working for these companies when you work for yourself?

 

Steve Jobs said 'Don't waste it living someone else's life. Don't be trapped by dogma, which is living with the results of other people's thinking. And most important, have the courage to follow your heart and intuition. In my own words, go for Vue.js, TypeScript, whatever you like even if your boss want to stick to jQuery ;-)

 

My take.

Startup Company:
Growth: 80-90% of the time you get to choose on what tech stack you can use, but not required to do unit testing.
Money: 80-90% it's hard to save up some money.

Outsourcing Company
Growth: 50-60% of the time you get to choose on what tech stack you can use. Uniti testing is not required sometimes.
Money: 50-60% it's okay.

Big Company:
Growth: Rarely you get to choose the technology you’d like to use. Unit testing is a must.
Money: 60-70% of the time it is better than a startup and outsourcing

Let’s add this in the choices
Freelancer or your own company:
Growth: 100% of the time, you get to choose what tools to use. You decide whether to do unit tests or not.
Money: Your worth depends on how you convince your clients.

Which is better? Depends on the startup or company you choose. There are startup companies that also pay way better than average outsourcing or other companies.

I’m in an outsourcing company right now. Although I don’t code a lot like I used to do when I was in startups, my company allows me to go to international events or conferences to speak.

ADVICE:
Find someone who pays you better and helps you grow faster. Leave the companies that don’t do that to you.

"And," learn new libraries or frameworks and apply them on personal side projects, so you don't get bored!

 

It’s an awesome take if the person has exactly these values at the top of the list: Growth and Money.

Sometimes people might have other items, depending on where they are in their life :)

 

I work for a big corp, and that's fine. I don't do overtime, but if I had to it would be paid.

On the downside, there are a lot of meetings and bureaucracy in general.

But I don't feel at all pigeonholed into a tech stack. I had two bigger changes in tech stacks during the six years I spent at my current employer, but while I moved from C++ to Java and back to C++, I took up a lot of shell, Python, different messaging queues and various databases.

In a big corp, you have to keep your eyes open and ready to help your teams with better tooling, etc, and you can find plenty of opportunities to widen your stack.

 
 

I used to wish I had worked at a startup in the beginning of my career. The reason for this was I thought I would have more energy for the hours and pace of startups. But now I'm kind of glad I started my career in more established companies/universities. The project management and process skills come in handy in an environment that doesn't have them or is just putting them into practice.

Startups can also be chaotic and it helps that I also have more self-care skills (regular therapy appointments, physical therapy exercises) so I can remain calm.

 

If only everybody learned these self-care and other essential skills at the beginning of their career!

 

I work for a company that is an outsourcing agency specialising in helping startups build products. It's interestingly challenging. We must keep our stack efficient in order to reduce building cost while being a fully fledged company and having good resources to do our work. We are a 35 people company.

I worked for the government and multinational giants, but it was very boring. They have a lot of money to throw out the window so they don't care that they don't do test or the schedule is blown. They put money. Feels like everyone dreams are crushed and they are just there taking it very relax.

 

I like to create software, I like to explore possibilities, I like to experiment. I want to commit to a product.

Therefor I want to work for a company where the (software) product is the business. I am absolutely no fan of drive-by development, which is quite often the case with consultancy/out-sourcing companies.

I think processes are a perfect way to fail.

I am a proponent of agile software development, and I quite dislike "Agile" processes (which practice Scrum to the letter.) Agile (with a capital A) is a curse word, and not a good one. This could mean I prefer start-ups above big companies. But this is not true. There are plenty big companies who have a better agile software development approach than start-ups. Often start-ups run in cowboy mode, shooting from the hip, considering quality as an afterthought. (We will deal with in the future, when its needed.) Big companies can kill innovation by trying to force quality via procedures (which does not work).

 

I worked first at an enterprise then switched to startup. I would say I prefer startups because you get to wear multiple hats and you get to experience a little bit of everything. Yes, there's a lot of unpaid overtime but this is the phase in my career where I want to know learn everything that I can. I don't mind the unpaid overtime for now because I'm still coding on my free time besides I can apply what I learn at work.

Working for a startups means you have a smaller and competitive team. I just got lucky that my team members are the best programmers I know and willing to help you in any way that they can. In enterprise, people will pull you down and be happy if you did something wrong.

I will most probably work for a startups for many years for now then work for an enterprise on the late stage of my career.

 

I currently work in a startup (relatively new in the industry, been a dev for about 2 years now) and really enjoy the fast pace, ability to work with the newest technologies and I like the learning curve I have had with one product compared to consultancy project style. It is the fail-fast environment and I love to experiment things so very happy with where I am. :)

In consultancy I'd feel that I am not working for a specific purpose that motivates me as you can't really pick your clients and I would feel distance from my team if I had to sit at the client company for example. I enjoy us all working for the same goal in product.

 

A personal opinion is that if you're staring your career and are able to invest a few more hours apart from your 9-5, a focused startup is a great place to be. Reason being you get thrown in the deep end quite often and learn to grow. Room for error is comparatively larger than the big corporates. A few years of thrashing around and then moving to a bigger corporate will definitely help you.

P.S.:Learning transferable skills and getting yourself involved in the solutions aspect of building software will be easier in startups as you get direct access to higher management who may even involve you in the process.

 

I want to work at a company where there is a lean mind. I want to be able to take responsibility with the team I am working in. The business should give us the solutions we need to implement, we as a team should thinking about a problem the business is having and together we have to come to a solution.

Even though I work at a big company, I feel like I am working in a startup, so I am really glad I am working where I am working. And that is the most important thing.

 

I agree. The concepts of Lean (and Lean Startup) are very important for any business developing a software product (and not only). Even the smallest startups are grinding to a halt if they are not Lean very quickly, and it’s very tough to work at these mentally.

 

There are other options, too. But looking at the two presented, I can see why some are scared of breaking into the industry. Smaller and established companies are a viable option too. Not everything is a Microsoft or Amazon, or a startup. Plus there are ways into companies besides placement agencies. I much prefer smaller established companies, because I know the stability of their business AND it's still small enough where people are treated as actual people, rather than just an expense on a report.

 

That sounds quite awesome! How does one find such small and established companies?

 

Big companies offer a stable but fixed (limited technology/project) job. On the other hand Startups offer a workplace to tinker with different technologies and projects but there is also a lot of stress and job insecurity unless they have a good amount of funding.

 

I wonder why bigger organizations offer such fixed jobs. Is there a way to get into a more interesting position for a software developer during the hiring process, that allows for a less fixed job in terms of tech/project?

 

For me to answer this, I have to ignore the fact that of the poorly managed and operated companies I've worked for, more of them have been startups. Beyond that...

I love the feeling 9f working with startups. With larger companies, even if they operate in an "agile" way and youbworknin small teams, startups are more enjoyable for me. You have more of the feeling that what I build can make a difference. Good or bad (yes I dropped a production database once).

You also tend to have a better opportunity to improve and move up when more people are hired. I've also seen a lot of comraderie build in a startup.

Those thi gs can all happen in a larger company, but in my experience it doesn't work as well.

 

I've had the chance to work at various size of companies from 100 - 5000 size. They have their own pros and cons.

While there may be more rigidness at bigger companies, I like the fact there is more opportunities to move around within the company. Since a lot of people tend to change jobs every 2-3 years, I got the chance to change projects instead. I still got to learn new things without having to leave the company and great colleagues.

Someone once told me, it's always about "the work", "the people" and "the money". It's hard for any job to satisfy all 3. You always have to pick 2 out of the 3.

 

Never doing outsourcing companies again; I have never felt so morally uncomfortable in my life watching companies basically hold people prisoner with visas and green cards. In some cases, overt racism; in general, cultural insensitivity and ignorance. I am not going to name the company but my previous employer was bought by one of the largest outsourcing firms in SE Asia and I quit within 6 weeks because I couldn't live with myself knowing how they were treating everyone. Hell, I was an architect-level consultant and they started trying to treat me like that. Okay, I'm going to end that rant...reasonably fired up now.

I miss start-ups. I love novel ideas and getting to take on so many roles within the company. Creating new things is awesome. I've never actually worked in a big corporation but I have an anti-authority streak inside of me which leads me to believe I wouldn't do well at those companies. I'm covered in tattoos and about to get some piercings, and those things don't seem to go over well in that environment.

 

If you are young ( below 10yrs experience) - work for a startup.
If experienced (above 10 yrs) - work for company that suits your temperament & life style.
Plan to stay with the company at least 2-3 yrs.

Just a thought based on my experience.

 

In the same way that there are amazing and horrible big corps, and amazing and horrible startups, not all agencies are the same. My experience is mostly in a highly specialized type of agency (creative digital production) and we have amazing developers, challenging projects, super motivated folks, and really nice projects to work on that get a lot of exposure. Environment is fast-paced, and I don't think salaries are below market.

Not to say that there are no cons to working here. There definitely are, but I always feel like the word agency gets a bit of contempt around here and I think it's a pity because I feel depending on your goals and the kind of stuff you'd like to work with, an agency could definitely be a match for many people.

 

I'm more inclined to be part of a startup.

As I don't really do well in a bureaucratic organisation due to prior experience in the military as a conscript.

I think one key thing of being in a startup.

It is exposing you to a wide array of different situations to accelerate your rate of learning and preparing you on a journey to be a entrepreneur or a freelancer.

 

I like a mixture, working as a freelancer for big cooperations while doing smaller projects for startups. You get the dynamic motivated environment in startups with insecurities and risks and the calm and detail oriented atmosphere from corporations with financial stability. Never work for intermediaries, it sucks and they rip you off. Try to be as close to the end customer as possible.

Tldr: just become a freelancer in this market.

 

I now prefer the steady paycheck a big company can provide me. I'm pretty lucky in that the big company I'm working for is fairly progressive regarding new development practices. The major downside is that my calendar is often full of meetings taking me in a million different directions sometimes.

I've worked for many contracting companies and they are by far the most fun to work at (happy hour!) but losing a contract just out of the blue because something happened in another city you have no control just sucks and it's happened at every contracting company I've ever worked at eventually. Having to quickly find a new job can really suck!

 

Startup

Pros

  • Relaxed dress code (most of the times)
  • Flexible
  • Involved in technical decisions on different levels
  • Too much for learn

Cons

  • No carrier path
  • Salary low-average
  • Stressful (most of the time you have tight deadlines)
  • No stability

Outsourcing

Pros

  • Relaxed dress code (sometimes)
  • Stable
  • Flexible
  • Too much for learn
  • If the project is closed sometimes they have a "bench time"
  • Relocation
  • Carrier Path

Cons

  • No carrier path
  • Salary low-average
  • Stressful (tight deadlines and too many things to learn)
  • In some cases, there is no chance to grow due to the pre-established policies (not getting a promotion or raise of salary, before one year)
  • Some companies have the ideology that any employee is disposable
  • Too many meetings

Big Companies

Pros

  • Good salary
  • Stability
  • Carrier Path

Cons

  • Bureaucratic
  • Not too much freedom
  • Use of company tools not used outside, so you is not valuable experience most of the times
  • Dress code
  • Not too much freedom
  • Limited interactions to take technical decisions
  • Too many meetings

To consider
I'll say everyone has its own priorities, so, choose depending on your needs and possibilities?

 

I enjoy working for startups. That's what I've been doing since the beginning of my career. There are a few reasons why I prefer startups.

I think working for a startup allows you take more responsibilities as an engineer. This can be very important if you're in the early days of your career. You get the opportunity to make a bigger impact. You get to experiment a lot. And also you will learn how to look at things from a business perspective ,because you get to work with sales, marketing and other business people closely. I believe having this business sense can add a lot of value to your profile.

 

I would say to always try early in your career to work in a big tech company with good processes and tech. The processes in bigger companies are what keeps them working in a stable way, as what happens with any big institutions such as countries.

Might not be so visible to developers, but this also applies directly to software. A lot of start-ups get hung up on putting out the fires and chasing the carrot on the stick. Having a good sense on the architecture and overview of systems is a great help to keep a project from becoming a mess.

Most of all, you should work on some subject you are passionate about. I think developers get swayed with some insignificant salary increases in companies that are just money squeezers. Just go make something truly positive and helpful for others. Go do THAT, your power is what you do, not that bonus.

 
  • I love working in a startup because of its environment (people with the same mindset and target) and its productivity.

But after working in this IT field for a while, now I only love working in a startup that I co-founded, or at least I have some shares in its future profits.

Because if you are just an employee in the startup without any shares, your income is very small for sure. And after all, income is also important (because you will have a family that you need to take care of)

  • On the other hand, working for a big company is boring, low productivity, sometimes you will even ask "What do I do here?" because you are just one small piece in the chain.

But the income is stable (and may also great), you just need to work 9 to 5 and then you go home with your lovely wife and children, or you can grab some beer with your friends in the evening.

What is more important than family and friends after all?

  • About outsourcing company, I hate it the most. The salary is not good, you work like a machine, clients ask for ridiculous features ... you know it.

If I can find a job in a startup or a big company, I will never look at an outsourcing company.

 

I always prefered to work at small companies because of the flexibility and sense of freedom - i.e. to be able to work remotely if I want to.

Well, 20 years later I belive this was a mistake. At least in the beginning of my carreer I should have taken that offer from Microsoft and start there for a couple of years just to make some connections, get to know other people, see how they work, what best practices they follow. Then the second best thing would be to go to another big company and connect with more bright people (in a big company you will inevitably meet all kind of people, so aside from the usual ass⭑⭑⭑⭑les and dumb ⭑⭑⭑⭑⭑ you will also meet some really bright people too), see how they work and learn from them.

So basically 5-7 years later and after you have 2-3 jobs at big companies, you're good to go and start working for a startup or small outsourcing agency or even start your own company - you will know HOW and WHAT to do, not struggle to learn this the hard way (like me).

Of course if you see an opportunity - go ahead and grab it, although the safe and smart way to do it is, what I described above. Or start a pet project that can grow in a full-time job or even startup, that will most likely be acquired by one of your former employers - after all you already know what they need and have the connections there.

 

I currently work in a big corp. The choice of technology is amazing and I like it.

I have worked with a few startups and honestly I was treathened my job security.

 

Why was your job security threatened? What happened?

 

The startup ran out of cash... They had to go to market as quick as possible which mounted pressure on the engineers. Everyone wanted to leave...

 
Classic DEV Post from May 13

How to approach solving a challenge during a coding interview

Like many things in life, mastery requires practice and the coding interview is n...

Ilona Codes profile image
Ilona helps women developers to succeed in their careers without stress via her weekly newsletter. Join and grab her networking cheat sheet as a bonus here: ilonacodes.com/networking-cheat-sheet