Pros
I will start with extra perks first:
* Insurance coverage
* Breakfast and dinner for people who come early or leave late
* Snacks everyday
* Table tennis, table football, darts, carom.
* 5 days a week
Now coming to culture:
* Appreciative environment
* Helpful and caring colleagues
* The co-founder(COO) of the company will talk to you often and ask about progress you are making
* The manager and the COO often take feedback about office setting etc. The manager will do f2f meeting once in 40 days.
* You can work from home if your responsibilities for the sprint are defined and no dependency
* Higher management i.e. CEO and CTO visits almost every 90 days or less. You get to meet them and know how the company is performing in terms of clients and investors etc. You get insight of industry directly from industry veteran.
Actual job related pros:
* You will learn a lot, no kidding. It is aggressive place to work. You will love it if you are a learner.
* Writing a block of code will require you to grasp the complete concept
* No bar on technology, today ember tomorrow java then go and it does not stop
* You own features, you get to take decisions related to it frequently
* Opportunity to architect features and design the code
* Most team leads/members/seniors are really helpful. Team lead will sit with you to fix the problem if required
* You are pushed to contribute to opensource projects
Cons
The company explains clearly that you have to work on whatever is the requirement but
* You might end up working on something which you have not expected before moving to your favourite language/technology
Other cons:
* Work gets aggressive occasionally. And from aggressive I mean real aggressive. You might spend up to 14 hours in office. Sometimes it goes upto 16. Although that happens rarely like 15 days a year. You can expect to spend 9-10 hours a day in office if you are a fresher and work on the main projects/features.
* Code changes occur very fast. As the requirement changes you might end up deleting 80% of your code. UI changes are so frequent that you cannot imagine.(It is kind of pro point for learning)
* No gym as the company is small
* There is seldom any design phase. The transition from design to code is like few hours.