These are entirely my personal opinion.If you disagree with something I respect that. Although it has been only three years and there are more senior people with robust experiences but I would try my best to write it concisely. In return I would request you not to judge me. You should not accept my findings and experiences blindly either.
On graduation , I accepted an offer from a startup company. They offered quite a good amount of remuneration and environment was good. I was already doing part time job with them. So things were looking pretty good. There were less opportunity for taking training or asking for guidance from seniors. Eventually I put my focus more on working extremely hard myself. But I was happy. Project took off and with time less development were needed. Such environment requires to be in continuous challenges, delivering fast and 'effective' solution under constrained resource. So you get to learn lots of stuff in small amount of time. It was interesting to see the company growing through unreal expectations, responsibility overlapping, internal competition. Breaking a simple thing can impact the overall business. So gradually I opted for stability rather than adding new features to impress management. Slowly I adopted unit testing and building small project with a technology to validate before using them in core project. Work life balance was tough but overshadowed by excitement of new challenges. One thing I could have done better was to adjust work life balance bit more intelligently. For some situation, it might be better to grasp the task, estimate better and then come up with a near proper deadline, instead of promising to do it in two days and later extending it, showing excuses. Or even in worst case, delivering something incomplete, and later tail running with fixes. Actually, coming up with a solution with better design, proper estimation is not easy and that's what there is to learn for freshers. Take it as an option to build a promising career.
Perhaps the biggest mistake I have done so far is to take on mobile platform without prior experience. It was yet another opportunity to learn a new thing. But mobile is a different kind of beast which requires radically different approach towards architecture and development. Without the supervision of someone experienced we soon faced setbacks and irrecoverable technical debts. To be more specific latency , network reliability , data synchronization are the components where we struggled most. So when stakes are high we should not only depend on trial and error policy. Rather having at least one expert within the team is mandatory. Sometimes we just stick to our ego and damage our life as well as those who depend on us. We all have strength and weakness. It is just the way life is.
Throughout my fresher year I had to work on a single platform. This I think enabled me to focus on a particular technology stack. In product oriented company this is a positive thing. I have heard of people who have to work on 2/3 different platforms and with multiple clients in a service oriented company. They had to constantly switch technologies. There are exceptionally good companies who are service oriented as well. A fact is that Focus is difficult to attain under current circumstances with so many distractions. Everyone has their own way of handling it.
While working for 1 year full time I came across different kinds of people. Most of them were nice and helpful. I used to ask questions to our seniors whenever I faced any difficulty in my work. All of them helped in spite of their busy schedule. Along the way there were bad experiences as well. In our culture no one would compromise regarding religion and politics. So I prefer not to talk about it in workplace unless needed. I found some people showing off too much. Most of them would never acknowledge their mistake and put that onto someone else. Personally I would either avoid them or change the workplace. And yes I did :) !!!!!
I tried to build a startup while working for a startup. At first it was exciting. As time passed it became difficult. It was never easy to concentrate after returning from office due to traffic jams and unexpected circumstances. Other problems like ego clashes , imbalance in the chain of command etc always come from time to time. Mostly our team was remotely collaborating. End result wasn’t good. We couldn’t hold meeting even in a week. We lagged behind our schedule. But I am glad that we gave a shot at a point in life when risks were minimum. I realized that it takes more than technical skill to manage a team and deliver a quality product. My takeaway was never to rely on remote collaboration solely.
Business always works with written concepts. There must be some proof of something happened. Each act needs to be validated by legal actions. You might want to start something with a friend, but both of you will understand soon that having decision paper written, really clears certain things from professional as well as business perspective. Professionally we should be serious about agreement with our employer. Appointment letter , tax documents , experience certificates , pay slip , salary account should be maintained properly. Startups are reluctant to follow the formal process. HR of the companies are always busy and they have to struggle a lot preparing your papers along other office works. As far as I know these documents are necessary for higher studies as well as overseas job opportunity. One more thing, Currently a lot of US , UK based companies are opening up in our market. To attract talent they might offer stocks. From my understanding there is strong regulation whether a citizen from another country can get stocks of a company registered in a developed country. So a legal counsel is needed to verify everything.
My current workplace is nice. People are helpful and talented. I am grateful to almighty for all the experiences I had. There is a quote in “The Alchemist” by Paulo Coelho that says “Every search begins with beginner's luck. And every search ends with the victor's being severely tested”. Competition is tough and time is like a ticking bomb. But having joy over little things in our life is always rewardful. Spending an evening to read a great novel or having a nice trip with friends and family instead of sitting at the desk worths more than millions. Just to add my two cents, don’t compromise with sleep. Work can never be more important than health and family.
Lastly I do have some regret in my life. What if I took offer from reputed companies ? What if I had better training facility ? What if I hadn’t tried startup ? At the end of the day these questions shape our life and destiny. And who doesn’t have regrets ?