During my last 4 internships, I worked at 2 mid-level to large companies with 50-60 people and 2 small startups with fewer than 6-7 people. This is of course, not enough sample size to draw conclusions upon, but still I will, based on my personal experience and observations. 

There are few things I love with working in small companies. First,  the people. Having direct access to founders and lead developers who are sitting next to you means a lot to me. This is such a privilege. Getting to see how the product is being developed and what kind of thinking goes into it is exciting. Much better than just following orders coming from the top management. It’s hard to see the big picture. 

The second benefit is rather personal. Being an anti-social introvert, any time I am in a big office with full of people, it just sucks my energy like a vampire. (One of the reasons I chose programming, and I love it). With my mind imagining all sorts of worst case scenarios of failed social interactions and imagining making a fool of oneself during small-talk (a skill which I am terrified more than public speaking), it’s hard to get anything done.

Third, because of such a small size of the company, one gets to see all aspects of the business, e.g. marketing, customer service, etc. It feels good to know that the stuff I am working on is actually going to be used by real people. Just observing someone giving sales presentation can teach a lot of stuff about marketing.

Finally, I observed that learning was much faster working in small, close-knit teams. There’s this quote from Chad Fowler, which I read somewhere,
 
“Always be the worst guy in every band you’re in. So you can learn.” 
It really helps to work with colleagues, junior or senior who are much smarter than yourself.