Right now I have two available job offers and I'm having a hard time making up my mind.
Company #1, let's call it SmallLLC is a fairly small privately owned company with only 12 developers. They are fairly relaxed, most guys are young and there is virtually no hierarchy. They use lots of cutting edge tech but pretty much ignore industry practices such as Agile and TDD. There is lots of cowboy coding going on and they are very practical and pragmatic.
Comapny #2, MegaCorp is a big multinational corporation which has branches in all major countries and this branch alone has around 200 employees or so. They have a strict hierarchy established. They use lots of old school technology (if you can call .NET 2.0 old) and shun lots of new tech, but they enforce good practices like Agile and TDD.
Both companies offer the same amount of money. I am not sure which offer to take. On one hand, it's nice working in a small company in that your colleagues gradually become your friends and there is very little pressure. Plus, I'd get to work with some nice tech.
On the other hand, in bigger companies you often enjoy a greater level of protection and there are procedures in place to ensure everything goes according to plan at all times. While it sucks that I won't get to use shiny new toys, I'd finally get to learn Agile and TDD (I've never seen anyone implement them successfully before) and I'd also learn a lot about development cycles and how big projects are managed.
I'm inclined to take the offer in the bigger company as I think it would benefit me more in the professional sense.
What would you do?