A software engineer job at an established company is very different from a startup. There is a high barrier to enter in reputed firms, tasks are challenging; however, ownership is more at startups and managing staffs is easy, the bar is usually low.
Being a software engineer is challenging, but with the advancement of technology, the demand for a good engineer is on the rise. Generally, a person well aware and up-to-date with modern technology, having a robust fundamental concept in coding gets to be in top companies. The more knowledge you have, the better, especially in this competitive market.
A software engineer job is very different in a startup compared to an established company. Working for bigger companies like Google or Facebook, the barrier to entry is extremely high. The standard of coding is also high and challenging, performing the role of a full-stack developer which is not easy. You need to have a command over different programming languages and problem-solving abilities. However, working for a startup is different as ownership over work is more, the projects that are being handled are smaller, and the team is also manageable. As the group is small, managing and mentoring the team is relatively easy compared to the ones at more prominent establishments. Keeping track of people, managing tasks and leading a team to success is controllable at smaller firms. Sharing desks with famous personalities, who happen to be great coders, might be a worthwhile experience at reputed companies but the barrier is high. These people might be a programming genius having developed libraries, and very well known in the open source community, or they might have presented really important seminars and talks. Actually, in order to gain experience one should try out both like working for a small company or a startup and an established organisation. The experience gathered, in turn, would guide you and teach you a lot of important things. It will help you to make decisions upon choosing a company that is best suited for your needs and goals.
To have a flourishing career, one needs to experiment wisely. It is understandable that the bar set for an established company is higher than that of a startup. A software engineer can have a bright career if he has a profound sense of understanding of programming, and proper management skills.