My 2 cents worth as a fellow software programmer…
I feel you have potential as a lead developer or even chief architect in a team, but I don’t know how large (by headcount) a team. I myself don’t have enough political sensitivity or influencing power to operate at the top technical echelon or a large company (like Intuit), so I only aim at the team lead or better still, lead developer level. (I feel I have the perception to see through confusing/subtle technical issues though.) It’s important to have a specific self-assessment as to how high you feel you can rise, so my suggestion #1 is to think hard about “how high” and in what type of company (big/small, start-up, product vendor, RnD…).
Some things we can do at age 55; other things we can’t (meaning unlikely) do after we pass 40. For example, switching from team lead to a director is doable at an older age. Mastering (beyond the basics) java/c# on large enterprise projects takes years and can be hard when we are old — very few people at that age accept a junior java dev role; most team members are in their 20’s; interviewers may not like the idea… My suggestion #2 is to list out what kind of opportunities will disappear in 2 years.
Personally, I always emphasize Accumulation. These 2 years of working should build on my previous 10 years, and make me a more valuable contributor. Random jumps won’t accumulate, as a rolling stone won’t gather moss. It’s rare for a big company to need skill in both java and php. If my long term specialization is java, then 2 years in php is not effective accumulation. My Suggestion #3 is to avoid dispersion of energy or “spreading yourself too thin”. A questionable exception — If someone is already expert in win32 programming (for example), then she might want to branch out to database tuning or whatever, because of “diminishing return”.
I think all my suggestions so far are rooted in a long term career vision. However, software guys often witness/experience too many destructive changes to have a vision. If you aren’t sure about long term, then perhaps play it safe. Go for more money, better family life, more job security, more mainstream technologies and brand name companies (adding credibility to resume). These choices are less likely to be a waste of time.
Let’s face it, thanks to destructive changes or whatever, most of our past years are a waste of time. (If you remember thermodynamics) We are particles in hot air, getting knocked left and right. The trick is how to reduce loss of energy and accumulate momentum.
I feel you have always wanted to get into java in a big shop. In that case this is a rare opportunity.