Being an UNIX is irrelevant for Apple related development, it is just a side effect of being based on NeXTSTEP, which also only used POSIX compatibility as an attempt to take business away from SGI and SUN.
If you want UNIX development, without any regard for OS X and iOS, then go sponsor hardware vendors selling Linux and BSD based systems.
If you cannot see anything immoral in Apple, or if you're unable to see anything immoral/fascist beyond murder and WWII then I'm not sure you're ready to discuss this subject.
I suggest you educate yourself on the matter, because judging by your comment, I can clearly see you're ignorant about the subject.
Yes, they seem patient/polite and I can tell they want me to stay, but I don't know them personally and this work is remote.
> Do you have freedom to work as you please?
Yes and no.
> Do you have the time to take the code in a better direction?
This is something that I'm currently annoyed with, when I was implementing a feature and working with a coworker, we had to re-use code from another function and instead of just making some changes to the function, he asked me to duplicate the function (~650 LoC).
I suggested to just make some changes to the existing function and re-use that one, but my coworker didn't want to go that route and suggested I just duplicate the function and so I did, I'm pissed that I can't make my own choices and instead I have to follow his orders.
My boss acknowledged that the project is in a bad state and sometimes I feel they are testing my patience, he mentioned they plan to rewrite the project in another language so I can tell they have common sense, but I get the feeling this other programmer I'm currently working with is happy with the state of the project and is holding things back.
650 LoC seems like a big chunk of code to copy and paste, but I don't know the project or the team. You can't expect to join a team and start turning everything upside-down. Even if you are honestly just trying to help, if that's how it's perceived, you will face resistance on any team.
It sounds like at least your boss agrees with the general direction you want to go in. That's really the only thing that matters in the long term. You need to be humble and willing to work with people, but at the end of the day, you are only answerable to your direct supervisor.
When you're a couple of months in, you will probably no longer have to take orders from an idiot that wants you to copy and paste code.
I've been in this situation. The existing developer was stuck in his ways, used a very old-fashioned way of dealing with the language in question and told me to do things that go against every good practice. It was frustrating.
I just agreed, then slowly started asking token advice (for example naming, coding style, things that don't matter to me). Then simultaneously and without asking, I started setting up a git repo, a basic architecture, build server, linter et cetera.
Hang in there, and build their confidence in you. Then slowly you can start doing things your way.
I want to see a distributed/peer-to-peer social network with privacy in mind and free software implementations of this network, with no company to capitalize on the user's data.