I’ve worked mostly in smaller companies during my career, which has been a mixed blessing. I worked for two larger companies at the beginning of my technical career (and I guess you’d have to classify the Army as a large company!) but all the rest have been medium to small. Here are some pros and cons I’ve identified.
In large companies you’re likely to get more formal training; smaller companies often don’t have the budgets for training. That said, if companies do have funds available you’d be foolish not to avail yourself of them. Taking a course or two every year has the potential to keep you fresh, challenged, and up-to-date. I’ve taken a boatload of training sessions over the years, of varying duration, subject matter, and complexity. Informal training sessions, particularly during lunches, can be readily conducted in any environment. I kicked off a trend to brown bag sessions at a smaller company that went on successfully for a while.
In large companies there are likely to be multiple people doing the same job as you. At the least you will be in a department with multiple colleagues doing closely related work. In small companies you may be the only one that knows what you do. That’s great in some cases because you get a lot of autonomy if you’re getting the job done. That said, you may also miss the chance to review the details and learn from other people who discover better ways of doing things. The communities of practice weren’t as strong or as organized as they could have been at Westinghouse, but there was a grapevine through which some discoveries were passed, and you could always wander around asking for opinions. The ability to do this at smaller companies may be limited. The web can provide some outside support in this area, but I’m not sure a week or sometimes even a day doesn’t go by where I don’t think of ways some of my previous work could have been better.
If you run into personality conflicts or political problems in large companies it may be easier to avoid or work around them. In smaller companies you may be stuck working with someone who causes you no end of problems, and there might not be any escape. Fortunately I’ve been able to dodge or outlast most such problems over the years.
Unless you work with very special people in a small company, who keep up with the latest trends, you might not get exposed to industry practices until much later than you might have. I wasn’t really introduced to Agile and Scrum until entirely too recently. I’ve done a lot of extra study and certification to catch up, and certainly have a wide range of experience to support it, but I can’t say I’ve done enough of it as a formal practice.
As a corollary to the previous point, larger companies are more likely to have formal and effective management structures in place at a variety of scales. Everything we did at Westinghouse was formalized from a workflow and project management point of view. It wasn’t perfect and things were missed (and effort wasted in some colorful ways), but everyone saw how it worked and learned from it. In smaller companies things might be done by the seat of the pants or not at all. At this point I’ll never allow not at all to happen again.
At larger companies there are likely to be sports leagues, clubs, volunteer opportunities, and social events to get people together in interesting ways. I loved the camaraderie of parties, outings, bowling and golf and softball leagues, seats in the company box at Pirates games, and all the rest of it. I still have some good friends from those years, of all different ages. I got together with some nice people a few times at smaller companies but it just wasn’t the same.
If you figure out a significantly better way to do something you may or may not get to implement it at a big company. If you do, congratulations! You may get support, recognition, and the leverage to make some really cool things happen. If you don’t, then bummer. Better luck next time. An automation tool I created at Westinghouse might have proved extremely useful to the entire division, but I was a contractor and the division was being wound down having completed most of its work. I got a couple of managers to compliment my work and recognize that it would have been great to pursue, but the timing wasn’t right. In a smaller company you might just be able to go ahead and do it. Better to ask forgiveness than permission, right? (This is great if your innovation works.) You can also go to the most senior managers for support. On the other hand, you might run into a senior individual who just doesn’t want to hear it.
An individual’s fate at both large and small companies can be affected by outside events. Sometimes entire divisions are sold off or closed and many people lose out no matter how good they are. In other cases entire divisions are acquired that obviate what you were going to be brought in to do. That, however, is life. That happens at companies of every size.
The more important point is that individuals, particularly managers, always have the opportunity to make things better. If you have a great idea bounce it off some people. See what they think. Build up some support and momentum. Make it go! That can happen at companies of every size, too.