I've been a Java dev for 3 years now and I'm genuinely so sick of it. I want to go into Python but when recruiters see Java on my CV/Profile they wouldn't even consider me for Python. Also no way am I getting a pay cut and playing into recruiter's game for starting a different tech because it's not like I was a barista before that and going into programming... What is the best way to transition my career? I already do Python projects in my spare time and tell recruiters I'm looking for job that has both Java and Python so that I can gain experience while doing what I know.
IMO, this is a problem that very few people like to talk about, because we all subscribe to the (correct) idea that a good developer should be tech agnostic. Sadly, those in charge of hiring don't seem to believe the same thing.<p>I was in a somewhat similar boat. I was a .NET developer that wanted to try something new, and despite eight years of experience few people wanted to take a chance on someone. I managed to find a role doing Ruby, and I've managed to transition to a new stack and language fairly well.<p>The only roles where I had any real bite were the ones where I applied directly, and where the person on the other end of the table from me was a developer. To highlight the issue, the second I had Ruby on my CV after taking this role, the same companies that wouldn't hire me for a mid-level role wanted to offer me an interview for senior-level roles...
I think this is a weird problem and you may not like my answer. over the past 10 years I've changed tech stacks at nearly every job/project I've done (in order)<p>Student/Teaching -> Security/Operating Systems -> Programming Languages -> Data Engineering -> Image Processing -> Machine Learning -> Language Processing -> Audio Processing -> Full Stack Development -> ?<p>(sprinkled part-time teaching positions throughout)<p>Often this cost me in pay, but usually had good other benefits. I worked for smaller companies, government work/contractors, independent contracting, prototypes whenever possible. Many companies advertise themselves as polyglots (this can help measure the culture you're applying into).<p>Changing domains dramatically will often result in changing technologies. Signal processing is often done in Matlab, Full stack has a very diverse set of technologies, but different combination at every company. Different applications of statistics have very different preferred technologies.<p>You have to get real comfortable with being the dumbest person in every room. Eventually you can end up on top, but for your first several opportunities can reset major parts of your market value.<p>Its a long game. Now my market value is my diversity. It took a lot of resets to get there. There are some recruiters/Hiring managers that don't like this, but there are just as many who do.
Give yourself a few years at a contracting firm that fulfills projects in both your current specialty and the one you want to move into. Or any other growing company that uses both technologies.<p>Apply based on your ability to contribute to Java projects but communicate you’re intent: that you’re enthusiastic about Python and want to make the transition.<p>When it comes time for them to staff up on Python projects, you’ll be more of a known quantity than any outside applicant. That’s worth a lot.<p>There will be a risk that you’ll be stuck in Java work, but you just need to stay clear on what you want and be ready to move on again if they make a habit of ignoring that. You don’t want to stay somewhere that would ignore your career ambitions like that anyway.
Obv you need to fudge your experience a bit on paper, just to get past the tech-illiterate recruiters. Most reasonable managers that have good experience will understand that if you've operated in one language within a paradigm (OOP, etc) then you can easily pick up another during the slow onboarding process anyway.
If you apply directly (not through a recruiter) you should be fine. Many companies speak frankly about their requirements around languages in job ads. I would not make Java + Python a requirement, because it is not a common combination.