I'm facing a major career decision after being laid off in June and sending out hundreds of applications. I've been offered what feels like a dream Software Engineer role at a defense company working with C/C++, an RTOS, and embedded Linux. I applied casually and didn't expect to be hired, and I'm worried because my C++ experience is limited; the interview questions were fairly basic, though the company knew my background when they made the offer.
The position would require my family to relocate. My wife would have to leave a good job, and I'm anxious about moving everyone only to be fired after a month because I can't keep up. We love our current home and have an affordable situation here.
I'm also waiting to hear about a more conventional Java Software Engineer position that would be remote. It would be safer and easier for my family, but the work doesn't sound nearly as interesting. The defense job starts at the end of September, so I have some time to prepare. Would learning C++ help me pick up Java later, and is it realistic to learn both without becoming overwhelmed? If you were in this situation, would you take the exciting but risky embedded role or choose the remote Java position?
4 Answers
You might not have to move your family immediately. One option is to rent a small place near the new job for several months while your wife and family stay home. That gives you time to prove the job is a good fit and lets everyone prepare for a possible move instead of making the change all at once. It’s more expensive and being away during the week is difficult, but it reduces the risk of uprooting everyone before you know how things will work out.
If your wife is genuinely on board with either option, the fear of being fired may be impostor syndrome. They interviewed you knowing your experience level, so they probably aren’t expecting you to arrive as a senior expert. Spend the time before starting reviewing C++, pointers, memory management, data structures, Linux, threading, and basic embedded concepts. C++ and Java overlap enough that learning one will help with the other, and understanding manual memory management can make Java’s garbage collection easier to understand.
We’ve talked through both choices and she supports either one. I’m probably focusing too much on the possibility of failure, but it’s hard not to when the move would affect the whole family.
Don’t assume you need to master C++ and Java simultaneously before starting. Focus on the technologies the new job actually uses and learn enough to become productive, not everything at once. A few weeks of preparation can help, but no reasonable employer expects a new hire to know the entire codebase and toolchain on day one. Before accepting, ask about onboarding, training, mentorship, and what they expect during the first few months.
I’d be very cautious about relocating everyone for a job that still feels like a “what if.” A remote Java position offers stability, no move, more time with family, and no disruption to your wife’s career. You could keep building C++ skills and look for another embedded opportunity closer to home or one that allows remote work. The more interesting job isn’t automatically the better choice if the personal risk is too high.
That’s the decision I keep coming back to. We built our house and really like living here, so part of me wonders whether applying for the position was a mistake. The Java role isn’t guaranteed yet, though, so the choice may become simpler once I hear back.

That may be possible. The schedule includes every other Friday off, so I could potentially use the long weekends to travel home, although I’d hate being away from my family during the week. Still, it could be a reasonable trial period.