Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Possible Duplicate:
What are the biggest differences between working for a small company and working for a mid-sized or large company?

When I started college, I wanted to work at a large company like Google or Microsoft, because it seemed like the right thing to do. My father worked at a large company for his whole life.

I have only really had 3 jobs, two of them programming internships, each of which were pretty small in terms of employees (less than 20). In my one job that wasn't an internship, I got a new boss who tried to make things more corporate (he separated each group into "teams" and made everything more formal). I hated this, and I looked for a new job (my current internship).

Now I am starting to realize that I'd rather work in a smaller environment. I haven't had any real experience with a larger firm, but it just doesn't appeal to me anymore. When someone from Microsoft come in to recruit, the only part I remember is how the representative bashed on open source developers.

For those of you who have worked in both large and small firms, what have you enjoyed more and why?

For the sake of the question, I would like to ignore particular people who may have soured the experience (a cranky boss, annoying coworker, etc).

share|improve this question
1  
I worked at two large companies, one small, and I will not work at a large one again. It will have to be under 50, ideally under 20 people. Size alone does not mean much; it better be a smart start-up that has grown, and has many well-paying customers. There are risks with small companies such that one rotten asshole can ruin the atmosphere, but the upside is rather large. No more corporate BS such as "ROI on your mom", no more meetings abt mtgs. scottberkun.com/blog/2010/why-do-big-companies-suck lecloud.net/post/3342276855/… – Job Sep 11 '11 at 12:31
@Job the previous small company (< 5 developers) I worked had meetings about meetings, and some of the other issues from larger companies - you just seem to have found a good small company (as I have now - although, really, it's a medium company with a small in-house tech/development team). – HorusKol Sep 11 '11 at 23:55
@HorusKol, how does a small company like that survive? – Job Sep 12 '11 at 2:55
@Job - clients that would spend without scrutiny... – HorusKol Sep 12 '11 at 23:47

marked as duplicate by Walter, Doug T., ChrisF Sep 13 '11 at 11:11

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

10 Answers

up vote 33 down vote accepted

First of all, I'll prefix this with it's all personal preference. What works for me will not necessarily work for you.

I've worked in both, small companies with 3 developers and also big software companies as well (where I currently am, actually). For me, they both have their pluses and minuses. I'll try to break it down a little, based on my experience:

Small Company

Pros

  • Lots of autonomy to work on your own (as long as you have a good boss -- I found my boss was usually busy enough with his own stuff that as long as I was getting things done on time, it wasn't a big deal if I got side-tracked with something for a while).
  • You'll need to be a "jack-of-all-trades": working in the database (in fact, administering the database as well), user-interface, backend, networking, etc. On occasions, I was even helping my boss set up servers in a datacentre.
  • You definitely get the feeling that the work you do has a direct impact on your customers and you company's bottom-line (this could be a "con" as well, sometimes :p)

Cons

  • The position you have now is pretty much as far as you can go in terms of career development (unless you decide to start your own company)
  • Your on the line in case of errors/bugs and you'll find you work weekends and late into the night if there's problems (even if they're not your fault -- one time I worked until 4am trying to bring our database server back online after a disk fault)
  • If you don't like the project you're working on now, your only option is to find a new job...

Big Company

Pros

  • Plenty of opportunity for career development. If you find after a year you'd like to move to management or maybe even something totally different like sales (there are certain roles in sales which benefit from an engineering background) then the opportunities exist within the company.
  • You can work on products that affect billions of people, and software on a scale that you'd never dream of at a smaller company (e.g. it runs on tens of thousands of servers, rather than just tens...)
  • More chance to specialise -- you don't have to be a "jack-of-all-trades", you can specialise on just user interface, or just database work, just networking, etc.

Cons

  • Office politics can be a real downer, if you don't make it work for you (not all places have bad office politics, I've worked in big companies where it was a real issue and others where it wasn't)
  • It's easy to feel "lost" in the sense that you're one amoung 10,000 other engineers (particularly in a company like Google or Microsoft where everybody is super smart)

There's probably others, but that's what I've found for myself. As to my personal preference, I actually enjoy working for a larger company (particularly one that knows how to treat it's engineers right).

share|improve this answer
3  
billions of people? – Malfist Sep 11 '11 at 10:43
8  
It's easy to feel "lost" in the sense that you're one amoung 10,000 other engineers (particularly in a company like Google or Microsoft where everybody is super smart) On the other hand, if you're on a company where everybody is super smarts, then you can turn count it as an opportunity to meet and chat with other smart fellows. – Lie Ryan Sep 11 '11 at 12:23
10  
Google and MSFT are not representative of large companies overall. It gets much much worse than that. – Job Sep 11 '11 at 12:34
4  
I agree with most of what you say here, except for the implication that small offices don't have politics. They do, very much so, and they can be just as nasty as large office politics. – MattBelanger Sep 11 '11 at 12:36
3  
Other cons of the big company: often hidebound and tied up in red tape. Your boss is often more concerned with empire building than producing a good product. Often no way to make your voice heard if you have a good idea. – Paul Tomblin Sep 11 '11 at 13:42
show 4 more comments

IMHO, the thing that matters is not if you work in large or small company. What matters is that if your working environment is healthy, energetic, friendly, polite, and many of other good attributes a good company can have.

Usually large corporations have more bureaucratic systems, and this sometimes make developers tired of following something other than coding.

On the other hand, small companies tend to have less job security, and it's possible that by the fail of one project, the entire team lose their job.

I have the experience of working in both environments, and personally, I prefer to not to work for anyone anymore, and start my own business, or start freelancing. But what I've learnt is that, to a large extent it depends on the case.

share|improve this answer
+1, It just plain sucks working for somebody else just because they had a good idea but don't know how to bring it to fruition. – maple_shaft Sep 11 '11 at 14:55
That's my long-term goal, but I don't have the capital or the contacts to make that possible yet. Really good input though, thanks! – tjameson Sep 11 '11 at 18:49

I love to work in small companies (and I currently do, I work for a gaming website) because I matter. I'm an almost essential part of my company's success; after working there for almost 2 years I can say that a very big percentage of the code for the website was written personally by me.

My code runs, gets used, and changes the world =)

If I were to leave, the company certainly wouldn't go down in flames the next day but it will be a hit they will feel and they will be in trouble for a bit.

You just can't have this in a company like Microsoft.. You are 1 in a million. You don't personally matter. If you leave nothing will change.

share|improve this answer
3  
+1, large software companies just have too many processes to go through, and your right - you are just seen as 'another' developer, workhorse with no real recognition. This is why, with the right people a small software firm can destroy a much larger one. – Dal Sep 11 '11 at 13:51

I've worked literally dozens of jobs. Some were at struggling young start ups that struggled and died in a year, some were at small companies that doubled in size every year for 6 years and then died, some were in innovative small groups within big companies, and some where in soul sucking behemoths that tried to destroy every last shred of individuality and brilliance in their employees. (Incidentally, the worst of the soul sucking behemoths is consistently voted one of the best places to work in my city, so I can only assume that there are a lot of bad programmers who like to hide in a place where brilliance is punished.)

What makes a place good to work for isn't so much the size of the company, but the size and make up of the team or group you end up in. If your boss is a micromanaging pinhead, it doesn't matter if he's the founder and CEO or a small cog in a big machine. If your boss has created an atmosphere of fun and trust and respect and can shield you from the rest of the bull, it doesn't matter how many layers there are between you and the CEO.

The two best places I've ever worked in my life where at the small start up that doubled in size every year, and at a small and dynamic team within a very large company. The two very worst places I've ever worked were in a small company with 15 employees but a micromanaging prick of a boss and the already mentioned soul sucking behemoth. You can't really tell until you've worked there how it's going to be.

share|improve this answer
+1 for "soul sucking behemoth". I immediately thought of Behemoth in Final Fantasy – tjameson Sep 11 '11 at 18:51

I wouldn't discount working in a large corp entirely. It that adds a recognizable entry to your CV. It can make getting this dream job in a small company much easier, later on.

share|improve this answer

I think the essential points are:

1) (agree with brad.v) The team/group matters more than the company for most intents and purposes. I worked inside a team inside a division inside Bell Atlantic back in the 90's that felt more like a startup than a telco. And I've worked for startups that felt very "corporate".

2) With large companies, the PROs are typically:

  • They have established procedures for getting stuff done (e.g. customer support, crisis management, DEV and QA coordination, revision and change control, etc.), and learning how the whole system works is essential education even if you think everything is absolutely wrong.
  • They can afford to hire experts (e.g. in networking and databases), and watching (or even assisting) an expert working on a problem is one of the most efficient ways to gain useful experience.
  • They can afford to take time to train your properly.

3) With small companies, the PROs are typically that:

  • You get more freedom to work on stuff that you find personally interesting.
  • You get the freedom to do things in the way that strikes you as most sensible.
  • You might get lucky and get rich.

This is essentially why a common strategy is to earn your stripes working at a big company and learning their culture, and then moving to a smaller company when you're ready to stretch your wings, take on more responsibility, and be more creative.

share|improve this answer

Every company have its own style. In fact almost every project is unique. Large software companies used to offer good training and career flexibility to their staff. I know the company I worked at one time changed that dramatically.

I had friends in that company who are stuck in maintaining legacy code and have no chance to upgrade their skills. In another company, we spent 40% of our time doing CMM documentation, that was not so useful to anyone, but we were forced to do that.

So, you need to ask yourself what do you want from an employer and whether that employer is going to give you that - Thinks to consider are: Location, Salary, Training, Technology, Flexibility of moving from one project to another, over time policies, etc.

Regardless of the employer size, if they can satisfy your 2-5 years needs, then go.

"everything that glitters is not always gold"

share|improve this answer
3  
"you can't polish a turd, but you can roll it in glitter" :) – Dal Sep 11 '11 at 13:52

I don't think size is the be-all-end-all. Id rather work for a great small company over a bad large one, but conversely I would rather work for a great large company over a bad small one.

There's so many factors that go into happiness and satisfaction with your employment that you just can boolean-ize it based on the size.

share|improve this answer

I'll cite a few blog posts which discussed this point:

http://estromberg.com/post/6108833062/5-reasons-to-join-a-startup-after-graduating

http://veyronb.wordpress.com/2011/06/06/5-reasons-not-to-join-a-startup-after-graduating/

I will defer to those posts, but at a high level there are lots of strategic advantages to starting at a large firm (e.g. name brand) and lots of strategic advantages to starting at a smaller firm (e.g. learning valuable skills for if you want to start your own software firm)

I would also direct you to news.ycombinator.com, which has a wealth of perspectives on the matter.

share|improve this answer

The size of the company has little bearing on quality of your job. It's the team that matters. I work in a company (with international locations) of 12K+ employees. Approximately 6K are developers. Our main office is literally a programmer farm with open desks (long tables with 4 PC's on each side) in a large room, and there are many floors of that environment. This is the best job I have ever had because I ended up in a small, internal team of 8 people in a separate building. Our work hours are different from the bulk of the other programmers. We have more control over application design, work environment. It's night and day between our team, and the main R&D staff. So again size of the company should have little bearing on whether you work for them. Think of the team, and the projects.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.