I was hired by an investor to solely work on an angular/Firebase CRM/ERP system. The project was built by an unknown number of people before me and it took 7 years to develop the system from scratch.

When this investor offered me the job, I was tricked into thinking that I'd get some documentation about the structure of the system or at least some good guidelines from former developers on how to dig into the code, which never happened.

I had to learn the code through developing using patch solutions while getting complaints and being yelled at that I'm too slow. I studied the system in my free time in order to get a grip on the developing process.

Now that I have been working for him for an year, I learned maybe 65% of the code, yet some of the assignments are still hard for me because of the learning curve and take too much time, way behind deadlines, so the boss has to cut them. I tell him that I need time to learn the code but he thinks I should learn the code after work hours and that I'm not a good programmer. Sometimes the lack of knowledge about the code forces me to put patches, which I don't want to.

I feel that the conditions for me to develop in are bad. I love programming but honestly, I'm getting yelled all the time, I didn't get initial support, and salary is way too low, so I don't really want to spend my after work hours studying it.

Who's right, me or the investor who hired me? How should I handle my boss? Did he put me in an unfair position?