Background
Few years ago I found myself in a bad situation. I accepted a job that was not a good fit. After sixth months I hated my job and was ready to quit.
At the same time my wife and I just found out that we were expecting our second child. She asked me to stick around until the baby was born. Changing jobs in the United States often means changing health insurance. We did not feel comfortable doing that in the middle of the pregnancy.
I ended up staying at that company for eight more months, leaving shortly after my son was born. To make the rest of my time there less miserable, I came up with five rules.
The best thing to do about a miserable job is to quit and find a new job. Sometimes, however, it’s not an option. Bad Economy. Pregnancy. Sickness. Quick job change may not be always possible.
I hope these rules they will be helpful to someone in a similar situation.
- No Comment on the Product
- No Comment on Revenue
- No Comment on Future of the Company
- Stay out of all conflicts and controversies
- No work on side tasks, while I have time sensitive tickets assigned to me
No Comment on the Product, Revenue, and Future of the Company
These are very similar rules, but it helped me to separate them. The company that I worked for was dumping millions of dollars into a failing product and I would often express my concerns. My resistance did not make any difference and caused me a lot of stress.
I was not getting paid to be an advisor. I was getting paid to write code.
Stay out of all conflicts and controversies
This is a good rule to follow for any workplace, but it was particularly helpful there. Staying out of drama (politics, arguing over technology choices etc.) allowed me to save my mental energy.
No work on side tasks, while I have time sensitive tickets assigned to me
I like to focus on important things and help people. When I first started working at the company, it had only a few integration tests, no unit tests, no JavaScript linting, no code coverage tool etc. I’ve spent most of my first 6 months advocating these practices.
I would re-write and unit tests poorly written code. I would volunteer to debug production bugs. I took the time to document my work and share my experience with junior developers.
Those things added up, causing me to fall behind on the work assigned to me. Our managers looked down on me for “taking too long” to complete a “simple task”. I was expected to be more like developers who moved fast (and broke things).
My life became much easier once I began to focused mostly on the tickets assigned to me.
Conclusion
It is important to make the best out of any situation. These simple rules made the rest of my time with the company tolerable. They freed up my energy to focus on other things that were important to me.
I got to be more happy and present with my family. I documented my experience debugging performance issues, resulting in two of my best posts of all time: 11 Tips to Improve AngularJS Performance and Simple Guide to Finding a JavaScript Memory Leak in Node.js. I invested four months into find my next job, that was a much better fit. I wish you the same!
Photo of the original list:
It’s taken me a long time to understand that it’s purely a cultural issue at the company. There is no way for you to fix it, and no way to be happy because you don’t fit the culture. Meanwhile there can be another person sitting beside you who is perfectly content as he fits the culture. It’s frustrating I know, but this is how it is. There is something about making babies and life that seems to magically align our lives so that at our weakest moments where we need the most stability we end up working at places like this. I’ve experienced it many times, and the jobs never last for me. Just keep moving forward and remember to research companies first before you approach them for work, but we often can’t truly know a company’s culture before we work there. The best way is to just talk with people who already work there. A rare valuable insight that is worth the effort to uncover. Just find someone’s name at the company and phone them out of the blue, and ask them straight up. “I’m thinking of applying for a job at the place you work. Can you tell me about the culture?”. You just want to know the culture not secrets. Just explain what kind of person you are, and that stranger will know if you fit the culture.
I think this is true for any company. One should focus to get their job done as fast as possible without getting to a point of being stressed. And the quality should just meet the company’s standards, not more. It is the responsibility of the upper technical management to establish and enforce higher quality standards if only the company can afford slower development pace. Any bottom-up efforts will lead to waste of time, frustration and burnout.
I used to think that working with low quality code is stressful by itself. Now I just treat is as another puzzle to solve. And it’s fine if it takes longer to develop. I just diligently forward to management the delay reasons and thus let them make a better-informed decision about the code quality standards in the future. The important thing to understand is that low code/doc quality slows down everybody in the company, not just you. And you performance is always evaluated compared to your peers, not in isolation.
As a side note, the only reliable way I found to satisfy the inner perfectionist is to have a side project where you can make all decisions yourself.