I could make a long list of what I don't like about my current boss or company but I'll spare this information, instead I will make a list about my own mistakes and errors:
- Not communicating my needs to the management well enough.
- Taking on too many responsibilities to prove myself. When I was a junior programmer, I enjoyed working extra hours, and completing more tasks. I never said "I can't do this.". I said - "I will finish it this evening. You can review it tomorrow morning". Sometimes it meant staying at work 3 hours longer and arriving at work 2 hours earlier. The lead programmer saw and knew this. The manager did not. Extra hours were not paid at all.
- Not speaking about things I dislike. I could have brought topics such as salary, career advancement options earlier.
- Not being strict enough about my opinion and thoughts. Often when I had reasonable suggestions and manager said "We don't have time for such changes now, but we can consider them in our next project", I agreed. I just could not stand firmly behind my opinion when I was a junior programmer and the attitude stuck with me. I also did not object the "write code that works ASAP, don't think about architecture and re-factoring too much" model. I wanted to, but I did not. Senior programmers neither. Guess what that lead to?
- Taking too long with resignation. I have thought about it for about a year. I could have avoided many problems if I acted earlier... I didn't resign because I "needed" stable income to finish repairs in my apartment, then I had other excuses. In reality I am simply a coward.
If I had to summarize my faults, I would say I lack a backbone or the one I have is too weak. Now, how do I actually improve in this aspect?
I want to quit my job, find a new one and learn from mistakes.
I am ready to work on this question to improve it. At the moment I think it fits in WP.SE well enough. Maybe title needs to be changed.