> Making mistakes will kill you
Nah they won't. No matter how it's worded, your current agreement with your employer is actually something like: "We agree that you will make mistakes and learn on the job. In return for this we will pay you peanuts". If they wanted a senior developer, they should be paying for one.
It's also important to point out that the mistakes you make now will play a big part in making you a senior developer. If you're putting yourself out of your comfort zone often enough you should be make plenty of mistakes on a weekly basis. It's nice if like you say, you catch them before your boss/clients do, but I wouldn't beat yourself up too much if you don't.
> Your wage is shitty.... or can't eat for a few days
Leave. Even with only six months of experience you're probably worth at least double what you're getting paid now. That a developer can't eat, in this market, is truly fucking ridiculous.
> Get used to being the go to guy for all the boring work, no one wants to sit there and refactor spaghetti code or build yet another custom joomla module
Refactoring spaghetti code doesn't go away when you become a senior developer, and it's a massively important skill to build up. Most non-trivial projects on big systems will require that you do this. I know it doesn't feel like you're learning anything, but reading code is a hugely important task that junior developers need to do more of (as opposed to just writing it).
The more you do this, the better you will get at understanding big systems quickly. Learn this now, do it at future clients 1, 2, 3, and 4. By the time you do it at client 5, you'll be so good at it that they'll think you're some sort of prodigy (so get paid accordingly!).
> Slow down at the start,... your boss will notice your apparent lack of progress
Who cares? If your boss has a problem with your progress he should let you know and you should work together to improve it. Also: Leave!
> Always be early, never be late. Your boss blah blah...
Personally I like coming in at the crack of dawn and leaving very early. I know other wickedly good developers who prefer turning up at 11 and leaving at 8. Non-developers don't get this, but it's fine. As long as you're delivering results and are available for any in-person rituals, no one should really care what time you arrive/leave.
> Arrogance is bad.
You say that now, wait a few years. When you've surpassed your heros in terms of skill/knowledge and spend most of your time watching other developers wrap themselves into webs of complexity for no good reason (and then have to clean up after them), then tell me not to be arrogant. A strongly worded opinion, arrogant or not, has demonstrably saved months of work and oodles of money for clients down the line.
> starting sentences with "actually, I think" or "No, that's wrong..." will land you in the shit, especially in front of a client
Bzzzt, wrong again! Expressing my opinion in front of clients, even as a junior developer, has consistently been a positive experience for everyone involved, including my boss's at the time. "No, that's wrong" is admittedly a little strong, but it really depends on the content. "No, that's wrong, the google search algorithm works like X so you'll probably have better results doing activity Y" or "No, that's wrong, if instead we make it a RESTful API we get the following 3 benefits..." is a hell of a lot more useful to everyone in the room than you just sitting in a corner being demure.
> Your boss wants to appear to be an all singing, all dancing super coder
I don't think I like your boss very much.
Based on the attitude you've displayed in this post, by any metric you're probably better than you think you are. The worst sort of junior developer is one with no humility, but I think you can afford to be a little more confident, especially when dealing with "Your boss". Also, Leave.