I started my career with Small scale Software company with just 10 employees, I joined there as a trainee engineer for 6 months project and started learning Java, J2EE there. After 6 months of learning I got promoted to software engineer and started working. In the small scale companies there would be lot of work pressure and they will expect you work on all possible areas like server configurations, loading data, coding, testing, implementation of the project at client side and the providing support to the client anytime needed. The clients are small and the income for these companies is less and profit margins are little too. but the work would be too much to do and they have to pressurize their employees to work as hard as possible to meet the client's expectations. I would like to talk about some pros of these companies too, they are you will be get noticed very quickly, the feedback's of the clients are very clear to the management about you. The trust is very high on employees and there is no manager chain involved and no need to of status mails, logging hours, meaning less estimations, escalations etc. everything would be crystal clear from employee till general manager. Of course there would be favoritism would be there depending on the organization and the Management to grow in these kind of organizations.
After working here for 1.5yrs in that kind of pressure and client side experience I moved to a global giant company which invented PC and introduced many more stable and robust software products to the world.But I was not involved in the product development of this company, I joined the services part of it. That is the first time I came to know the difference between development and services. Services is a buzz word used to clean up and maintain the code developed by some other organization or the same company but defenitely developed by someone else. Here you always have to monitor the systems maintain the systems working. Going through the code but have to change very little things like changing images, change the drop down in particular order etc. Here you are not allowed to experiment things, as they do have experts in everything in their field. you never knew where the server resides.There will be huge manager chain would be there above you. If you need stationary like pen, pencil, notepad you might need to take approval of your manager and send 2-3 mails (if required). Of course don't think that there are only Cons and no Pros in these big giant companies. Lot of pros are there like you will get high quality trainings on any technologies you want to learn with the industry experts, world wide exposure as most of the projects are from US, UK, Canada, Europe. Your views will get changed when you work with the teams in other countries and this exposure will help you increase your self confidence too. There will be lot of facilities like pick and drop to office, gymnasium, swimming pool, comfortable work place and ambiance of the office would be more attractive once you reach the office. They will provide good insurance policies for you and your family dependents. The library facility and some of these big giants nowadays getting tie ups with big B-Schools in India like IIMs and Symbiosis etc to provide part time education for their employees. They do reimburse if you do any certifications for your personal benefit.
After enjoying the benefits of this big giant for almost 2 yrs I have decided to move on and joined a mid-level software company as an Engineer.Here the situations are much different than the earlier two companies. The problem here is you will have small teams in size and you have to interact with the US teams directly and have to talk to Manager in US and findout the requirements and work on them and ask clients directly to review them and re work on their comments. This is a Product based company so all our clients are the marketing and sales teams based in US. All the clients belong to our own company so there will be little work pressure but the of course the work will be much more than the big giants. I can't say the quality of work would be much better but defenitely they will get back each and every penny they give you. So you will have 100% work when you compare to the other companies. There might not be a huge manager chain but there will be a manager who will take care of the things. I came to know here that the designation and the job profile here will never match, the person who is a director in other companies I know that he would be the senior most in the company and will not be doing any coding at least. Here the people who are directors will be coding and working almost like a software engineer but of course they have got a good hold in the company and get paid a huge sum of amount.These companies might not provide you good facilities like gym, pick and drop but they pay you decent packages which you would like to see in your bank after a hectic month. you can not expect anything else than this from these companies. There could be a huge inclination in the job in these companies after couple of years if you have good relationships with your managers. But one thing you have to remember is managers are managers and you can't share everything with them. Be clever and you know how to please your manager, these kind of companies are for you. If you want to change from one project to another that might not possible here as they don't want to change the people from projects as they have good idea on the current project, this might cause frustrations to employees and they might get good offers outside and by the time management realizes it is already over.
Despite of working with all these varieties of companies like small, mid-level and giant companies I could tell you the truth of the success is bitter and unchanged. Most of the people in software thinks that hard work is the key to success and of course it is.... but that is not the only artifact matters for your success. There are different definitions for hard work each manager has. In first few months you have to figure out what is the definitions your manager has for it, and you start working accordingly. I hope the people who has got some work experience has got it clearly but those who couldn't understand would understand it very soon with little bit of experience.
Till now I worked with these kind of companies which I could tell you. May be in future I would add much more to this article keep watching .......