I have a hard and interesting job. I do navigation & autonomous control systems for large mining vehicles. A couple of notes...
1. You want to do R&D. Developing new things is fun; maintaining existing things is boring. However, "getting in" to R&D positions is difficult without #2:
2. Domain knowledge. We almost never hire based on programming skill alone. Programming is a prerequisite, but specific expertise (guidance, navigation & control systems in my case) is the real value you need to bring. Graduate degrees are one way (but not the only way) to move in this direction.
1. You want to do R&D. Developing new things is fun; maintaining existing things is boring. However, "getting in" to R&D positions is difficult without #2:
2. Domain knowledge. We almost never hire based on programming skill alone. Programming is a prerequisite, but specific expertise (guidance, navigation & control systems in my case) is the real value you need to bring. Graduate degrees are one way (but not the only way) to move in this direction.