For a long time, I was trying to identify what we are looking from a company that we work for. Is it salary, is it job satisfaction, or is it something else.
I used to think that salary is the most important part. But when I look back in my career, even though all the job changes included a salary increment part, that was not the major reason I decided to leave a company behind.
Except one company where it had to close down. For all other ones, either I reached a point where I was not satisfied with the work I am getting - meaning job is not challenging at all or it was not kind of an environment I wanted to be in.
I thought deep and listed following points. When I left each company, I reached a breaking point on one or many from the list. That is what put the final nail.
Being in a team, where there are people better than you, not just in terms of skills, an overall better human being than you, will give you better satisfaction and days to look forward to.
In the beginning of my career, when I joined one company, I used to compare my skills other people in there. In my team, whenever I see a brilliant solution to a problem, I would think how did he/she arrived at this solution, I would have taken weeks to solve it. This gave me a focus on how far I need to go to reach their skill set.
In another company I worked for, I use to wonder how better of a human being is this founder/co-founder, than me. Forcing me to learn to be better than who I was at that point.
Irrespective of how much the company pays, if you don't get challenging tasks time to time, you are definitely going to get bored. This boredom is going to byte your mental health and keeping you in an uneasy feeling all the time.
Opportunity to Learn
Along with challenging tasks, you need to update your skills, otherwise you are going to be left behind when newer technology comes.
If you were working on front-end technologies 6-8 years back, you might be using backbone and jquery. In 2020, if you still keep on using it, there is no doubt that you'll have challenging problems to solve in it. But the entire industry has moved on - people are now using Vue and React. It is not mandatory to use these new tools and libraries, but not keeping yourself updated means you are losing a lot.
Trust and Value
Another important part is the trust that a company or leadership team has in you. I faced this issue in several times in the past. When a company doesn't have trust in you, you will be at a point where each and every step that you are taking has to be explained, documented and verified with another. To be clear, I am not saying we shouldn't document or explain things - this is important for a company when it is big. But as a company it should trust employees enough that, they'll provide enough data and not overdoing and wasting their time. Also, believe that they'll make good decisions when given a choice.
I placed value along with trust because, value for you as an employee comes when a company has trust in you. Being valued as a person gives you better opportunities and decision making powers, which is important as an employee, especially when you crossed several months or years with the team.