Five years of experience. Two companies. Two positions. These are 5 lessons I learned:
- You are not your code Don't judge someone by his code. Don’t take it personal. You could miss professional connections or friendships by judging someone by his code. Assume everyone does his best with the resources he had. There always will be different opinions on how to do things. In the future, you will have one about your current work!
- Coding is not the only thing Collaboration is key. You won't be locked in a basement coding. You will have to talk to clients, conduct meetings, agree on estimations and ask for help. At the beginning, I only wanted to code. I didn't attend to meetings, answer phone calls or even reply to emails.
- You don't have to feel miserable. Change jobs when you feel your life is miserable or wasted because you wake up and you realize you have to go to work. Find a way to motivate yourself: start a side project, learn a new stack, discover a new way of doing your work. Or, update your CV and move on.
- Bus syndrome: Don’t have hero developers. I know, I know! It feels awesome when at the end of the day you were the one who save the day. But, if you are the only one who can solve some type of issues or know how a component works, then it will make you indispensable. And, therefore, irreplaceable. So you can't get sick, go on vacations or be promoted. Take every chance to share what you know and mentor junior members of your team.
- Have a minimal viable product ASAP An awesome website or mobile app can make a huge difference. But, start small with finished core features and iterate on that. At the beginning, you will have to setup the system through scripts or do some manual configuration. It's better to demo a whole feature with an unpolished UI than a very awesome UI that does nothing.