I don’t know if it’s due to age, but recently I have lost most of my drive to perform any task related to my day job.

My official title is “Web engineer”, or more specifically “Frontend web engineer”. In my previous jobs, I had opportunities to perform my task, which I quite enjoy. I was challenged with technological problems such as writing libraries, resolving issues related to browser inconsistencies, or fixing performance issues with the technologies that we use (for example, ReactJS or Webpack or some other obscure library).

I enjoyed the journey. I liked writing code. I liked refactoring code to make things more performant or maintainable. I liked picking up new libraries or applying new programming techniques. I liked learning new designs and patterns and trying to apply them into my existing projects. My managers and co-workers were clever and equally passionate about the things I pursued, so even when we had disagreements about specific things, we could still agree on the goal (to write good code).

However, in my current job, I have started questioning my career path. All the principles I’ve learned along my career seem to have been thrown out the window. It’s the first time I worked with purely Japanese team members. I started realizing the cultural differences between Japanese and non-Japanese engineers.

Japanese engineers (at least in my company) love to solve problems. And they love to solve it “perfectly”. Perfect as in, having tons of meetings to decide on the best way to solve a problem rather than using empirical methods (i.e. experimenting with various alternatives before making a decision). I can’t tell if it’s a bad thing, but it has certainly made me lose interest in all the work ethics I’ve carried up until recently.

Code review? Maintainability? Programming patterns? Testing? Experimentation? None of those matter because my Japanese coworkers just want the “best” solutions through discussions and round-table agreements. It doesn’t matter if the code is written terribly, because nobody reads the code until a bug happens. And when a bug is fixed, we celebrate the success of the engineers who solved the problem in a timely manner. It doesn’t matter if we had production bugs 5 times per week, as long as we solved them quickly. We’ll figure out prevention methods when the bugs occur, rather than pre-emptively writing code to handle them. This made me think of the Cloudstrike incident that happened recently.

I personally don’t agree with that. I believe in quality, as in “prevention is better than cure”. I write tests, I write code adhering to as many common or recommended practices as I can think of. I don’t take shortcuts unless absolutely necessary. I write code with maintainability and future-proofing in mind. I don’t necessarily over-optimize, but I’d prefer to put enough thought into the near future before comitting to design choices, because foundations are hard to change the further the project grows. Most of all, I expected my co-workers (who are all seniors, mind you) to hold the same standards in their work.

But that is not the case, I think. Everyone just wants to tackle new interesting problems and solve them quickly, without slowing down to think carefully. After all, the company is a start-up. Move fast and break things, they say. I can’t argue with that. I mean, perhaps they also broke me along the way.

For the past 2 years in my current company, the Japanese expression of “hammering the nail that sticks out” has become a little more evident to me. It’s not necessarily through coercion or harassment. It can be as simple as group-think – If I’m the only person in my team who values code quality, whereas the other 4 or 5 Japanese engineers in my team think that “getting the job done quickly” is all that matters, then I have no choice but to “disagree but commit”. Sure, I could go against the grain and be “That Guy” and push for things to be done “The Right Way”, but that is just not my personality.

Trying to bring this issue up to my managers, they always suggest that I should take leadership by taking gradual steps to convince my team to adopt my way of thinking. It’s easier said than done. I agree that it is definitely possible to make it happen. But that brought me to think of today’s blog title: What is my career motivation?

Is my burning passion to “write good code” and influence everyone around me to agree with me? No, all I want is to do my job in a way I enjoy, the way I believe is best for everyone involved, get paid, get off work on time and cook for my wife, and enjoy the rest of my time with my family. I don’t have the mental energy to play politics and influence people to take sides in “doing the right thing”. Not everyone wants to be a leader and change the world. I’d like to think that I have what it takes to lead (if I work hard enough), but the problem is, I do not want to be a leader in web engineering. That’s not where my passion lies.

I was born with the passion for art and games. I had only taken the path of web engineering because my family was poor and I had to take up a practical job to help with the bills and groceries. Now that I have worked hard enough to emigrate to Japan and earn a decent living, I have started to notice my mental fatigue. I thought I loved programming (I think I still do!) but not in this environment. Not among coworkers who have incompatible work principles.

However, there is no benefit to complaining. I have learned to accept my circumstances as it is now. I know that I have lost the motivation to work. But perhaps it’s only at my current company. It’s probably the environment itself. I’m surrounded by yes-men, Japanese men who REALLY love to have meetings in every possible minute of the day before actually doing any work. Japanese men who, when they actually get down to any actual work, get the job done according to all the specs laid down in the meetings, but never really in a way that respects the work as an art in itself.

It’s ironic, there is this Japanese concept called “shokunin” (artisan), referring to labourers who work almost single-mindedly in the path of perfecting their work. Perhaps it’s a thing of the past which is more associated with traditional or manual labor.

Ah, there’s the problem. I see my day job as an extension of art, even if it’s merely writing code. Web programming is not an art, it’s just a means to an end. If I want to write meaningful code, maybe I should have studied harder and gone into graphics programming or machine-learning. However, I know my limits. I am reasonably disciplined and diligent, but not clever enough. But it doesn’t really matter because that’s not where my passion lies.

I miss my early years where I could code for 5 hours without pause, enjoying every minute of it. Now, I dread just looking at the screen and writing any code for longer than 30 minutes. Where has my motivation gone?

That was a cathartic experience. Writing down all these thoughts in my head helped me feel a little better. Now, I just have to ponder more about what makes my life meaningful.