A bit of context (and sorry for the bad English and the wall of text). This also contains a fair bit of me ranting as well. I'm very sorry. TL;DR at the end.
I'm currently employed in a relatively small company in Japan as a software engineer, which is not related to the company's main business.
Initially I was hired as a mechanical engineer, but was requested to work on the company's management system, along with another, who was hired alongside me, very shortly after joining. I do have some formal education in software engineer during uni, but I primarily worked on embedded system (my major was Mechatronics). My partner was a bit better, he has experience working in an IT company for a year as a Java developer. Still, not looking good. However, we were assured that we would be working with a senior, one who has worked on this for years, who will guide us on this project. Note that, this was back in 2020 when COVID was at its worst, we were basically stranded here. We only had just came to Japan as well, so the chances that we can get another job at that moment, while not non-existent, is very close to being so. Left with little choice, we accepted. I mean, how bad can it get, right? Well...
It turns out that the "senior" that we are supposed to be working with is in fact, just a contractor, whose main job is to maintain the old system (by old I mean, really, really old. Basically MS-DOS-based, barely any interfaces at all), and as a side job on our manager's request, re-implement the thing on to a more modern one. Contacting him was really, really hard, as he only worked on our project very late at night. There are multiple occasions where we had to contact him via Skype at 10pm (and apparently since these are all done at our home, they do not count as us working overtime, despite being organized by my manager). As a side note, apparently in his book, a modern system translate to Excel VBA. He also did some PHP pages as well, mainly to do some fast info querying. Nothing too complex, although he took his sweet time doing those, sometimes months to get a single screen done. But...
His work quality is also extremely appalling as well. Unreadable code, extremely un-optimized, and ridden with mistakes/bugs. One of our first jobs involve figuring out why one of his programs took ages to fully ran (more than 1 hour in some cases). Turns out, calling SQL queries within multiple nested loops is a dumb idea, who would have known. Worse are his PHP pages, which are just some structure-less, convoluted mess of PHP and HTML, also apparently he didn't know any CSS and JS, at all. Also, no documents whatsoever. There was even an occasion where instead of updating the stock of a specific product, he accidently update ALL product stocks, after which he has to manually re-update all of them back. This was told to us by our manager, supposedly as an encouraging story by the way...
And for some reason, the company was fine having this guy designing their database. I think only in our company can you see 6-column tables having a 4-column composite primary key. Other than that, the usual symptoms of bad database design, tables with no primary keys, no indexes, no foreign keys, inconsistent table, column name, etc., you name it. The data itself is also inconsistent. Apparently trimming and convert primary-keyed strings into consistent format before inserting are not a thing in his dictionary. Numeric values being saved as string in a table but as numbers in others. When we suggest that these things are not ok and should be fixed, he said that all of his old stuffs are using those so he can't and won't fix them. Clearly he doesn't care.
You are probably wondering why I'm spending so much time talking about this guy. Trust me, this information would be relevant later.
So basically most of our jobs involves cleaning after his mess. We ended up making a simple Express-JS React web-app, covering what the guy did before. The supposedly gargantuan 1-hour task now takes only more than 1 seconds, UI upgrades, etc. We also fix all the problems with the database that we can fix, replacing tables with no primary keys, fixing data inconsistencies, etc., but eventually came to the conclusion that the thing is unsalvageable, and after discussing with our manager, we decided that it's time to make our own. The first step of that involving mainly me figuring out how the new database would look like, and my partner who is more familiar with tech-stacks to figure out the framework we would build this onto.
This was probably my fault, but during this period I voiced out multiple suggestions about changes to the database, which caught my manager's attention. Meanwhile, he heard nothing from my partner, so he assumed that my partner is somehow free at the time. This is pointed out later on by him, which I regretted a lot. That is because, due to this, he figured that since my partner is not doing anything, and apparently since I was so capable, he can just assign my partner to a different job (read: manual labor). It's not that doing manual labor is a foreign concept during our work here in the first place, we were asked to do these work whenever there are too much work, and to be fair during those time even the middle-level managers join in as well. But this is not that, it's a full on transition from working in the office to full-on labor. And of course, mainly due to this, he quit. This was 2 months ago.
It was during this time that my initial design of the new database was done. It took me 3 months doing this, I did a lot of self-education and research for best practices, however, with me just joined this company for just almost 2 years at this point, there are a lot of business logic that I don't know/confident of getting right. So I consult my manager, hoping for more people in the company to join in on the design. It turned out terribly, nobody want to work on it, so final verdict was for me to figure this out myself. I don't think that kind of job is something someone like me can do, I voiced my concern, and ask the company to at least hire someone more proficient in the field. The thing is, my manager told me that, at an unknown point of time, he consulted that guy, multiple times already and the guy said that this is something that I can do. All of this is without me knowing. Now that this idea is ingrained in my manager's mind, he insists that I continue implementing this project, despite my protests, even cleaning out my full schedule and cancel my other side project, of which I also spent a significant amount of time on.
I know that it is not advisable to talk badly of my co-worker, but at this point I had enough. During one of the recent 1:1, I talked to him about the mess me and my partner worked worked our asses of to clean up, how out of all people he is the last person to consult to when it came to our job. And can you guess what he said to me? "At least he can tell me that he can do the job I give him, unlike you". At that point I was this close of screaming out.
For obvious reason, I can't really continue working on the new system. And since little to no work came to me, I just self-educate myself of related tech in the meanwhile, and go home on time. My manager doesn't like that. A lot of 1:1s recently just revolve around this, about how I apparently lost my initial enthusiasm and what-not. I really don't know how to respond.
I'm brushing up my CV looking for a new job. Worst case scenario, if I can't get a job in Japan until the end of the year, I would be going back to my home country. I feel bad abandoning ship, but I can't take it anymore. But while I'm still here, I don't really want to strain my relationship with my manager further. Outside of work he is a nice guy, and has helped me a lot during my stay here.
TL;DR: Circumstances leads to my boss insisting me of doing a project I'm unqualified on. How do I resolve this?
Edit: From the provided answers I can see that some people are having some confusion regarding my situation, due to my original extremely rambly post. I'm very sorry for that. Here are some clarifications:
- In 2020 me and another guy (let's call him T) joined this project under the management of, let's call him M. I have no problem with T, in fact we made a very good team, at least from my point of view, and even as of now we still chat with each other from time to time. The one who quit was T.
- The "senior", S from now on, is still working with our company. He was a full time employee in our company (for a presumably very long time), until 10 years ago. S's main job was to maintain the ancient DOS-based system, and as a side job, under M's request, re-implement the old system into a more modern one (this is now delegated to me). Possibly due to his seniority (technically if you count his contract job, S would be M's senior), his opinion is very respected.
- It was under S's advice that I have been put to my current situation (this is confirmed by M) and possibly M's decision to switch T to the other position, leading to T quitting (this is my guess, but extremely likely).
So my current situation is:
- The people working on the project is now reduced from 2 to 1. I also have to continue handling T's previous work, well supposed to anyway.
- M insisting that I continue the new project, and refuses to except my reasoning.
- The very first step of database design was met with set-backs, as, from M's words, no one in our company knew anything about data analysis, which I find extremely unlikely. The future system is supposed to handle most of my company's finances, in place of the DoS-based system as well, obviously well beyond my ability and paygrade. Also, just my assumption, but this is most likely the case, that this is also way beyond S's depth as well, he doesn't even have the basic of database design and program algorithm.
- Attempts of getting M to hire data-specialists have been unfruitful, with him constantly switching subject whenever the problem was mentioned.
- I don't think this is too relevant to my predicament, but still a very interesting fact: T's current pay under his new company is now literally double mine, which, good for him, he very much deserves that. On the other hand, S's pay is roughly triple that of mine. I don't mind this way too much, as I'm living in the suburbs alone, so my monthly costs is not that high. Still a thing to keep in mind, especially when the price of yen is still dropping.