I’ve been hiring software engineers in financial services for 8 years. Last quarter, I reviewed 243 applications for 4 AI/ML engineering positions. We made 3 offers. This quarter, I have 6 open roles and 180 applications pending review.
Here’s what keeps me up at night: I’m rejecting exceptional engineers with 10-15 years of experience because they don’t have 5 years working with tools that have existed for 3 years.
The Perfect Match Problem
Our current job posting for “Senior AI Engineer” requires:
- 5+ years production ML experience
- Expert-level Python, PyTorch, TensorFlow
- Experience with LangChain, vector databases, RAG architectures
- Knowledge of prompt engineering, fine-tuning, RLHF
- AWS SageMaker or equivalent MLOps platforms
- Financial services domain expertise
- Plus the usual: system design, algorithms, CI/CD, security
I’m not exaggerating. That’s the actual JD approved by our talent acquisition team.
The problem? LangChain launched in late 2022. RAG architectures went mainstream in 2023. We’re asking for 5 years of experience in technologies that are 2-3 years old, combined with financial domain expertise that takes 5+ years to develop.
We’ve created an impossible candidate that doesn’t exist.
The Rejection Paradox
Last month I rejected a brilliant engineer with 12 years of backend experience, 6 years in fintech, deep knowledge of distributed systems, proven track record scaling services to millions of users. Smart, curious, great communicator.
Why did I reject him? He’d only been working with ML for 8 months through online courses and side projects.
The kicker: My team is currently stuck because our “AI-native” engineer doesn’t understand our legacy payment systems and keeps introducing bugs that someone with financial domain expertise would catch immediately.
I rejected the person we actually need because he didn’t match the requirements for the person we think we need.
The 10 Tools Phenomenon
I reviewed job postings from 50 companies in our industry. The average “AI Engineer” role lists 12-15 specific tools and frameworks. Some examples:
- Python, PyTorch, TensorFlow, JAX, Hugging Face Transformers
- LangChain, LlamaIndex, vector databases (Pinecone, Weaviate, ChromaDB)
- OpenAI API, Anthropic API, open-source LLMs
- MLflow, Weights & Biases, SageMaker
- Kubernetes, Docker, Terraform
- Spark, Airflow, dbt
No one has deep experience with all of these. The people who come closest are either currently employed at FAANG companies making $500K+, or they’re consultants charging $300/hour who won’t take full-time roles.
We’re competing for maybe 5,000 qualified people nationwide while posting 50,000+ AI engineering jobs.
Are We Creating Artificial Scarcity?
Here’s my uncomfortable realization: We might be manufacturing this talent shortage.
What if instead of posting “Must have 5 years ML production experience,” we posted:
- “Strong software engineering fundamentals”
- “Demonstrated ability to learn new technologies quickly”
- “Excited to work with AI/ML in financial services”
- “We’ll provide 3-month onboarding with ML training”
I ran this experiment informally. I met with 5 rejected candidates and asked: “If we hired you with a 6-month ramp period and paired you with our ML team, could you become productive?”
All 5 said yes. Based on their backgrounds, I believe 4 of them would succeed.
But our hiring process doesn’t allow for this. We need “ready on day one” because we’re under pressure to ship AI features now to justify the layoffs we made last quarter to fund these AI hires.
The Upskilling Investment Nobody Wants to Make
I proposed a hybrid approach to our VP of Engineering:
- Hire 3 strong engineers with adjacent skills (backend, distributed systems, data)
- Partner with a bootcamp or university for intensive ML training
- Pair them with our senior ML engineer for 6 months
- Total investment: ~$50K per person in training + reduced productivity
Response: “That’s 6 months. We need production AI features in Q2 to show board progress.”
So we continue searching for unicorns while our product roadmap slips because we have 4 people doing the work of 10.
The Question I Can’t Answer
Is perfect-match hiring sustainable when the technology changes every 6 months?
By the time someone builds 5 years of experience with today’s AI stack, we’ll be on to different architectures, different frameworks, different approaches. The GPT-4 prompt engineering expert might be obsolete when GPT-6 changes how we interact with models.
Meanwhile, the fundamentals—algorithms, system design, data structures, software craftsmanship—those don’t change. The engineer I rejected with 12 years of backend experience? He could learn ML. But I can’t teach the ML bootcamp grad 12 years of production system wisdom.
What I’m Proposing
I’m going to push back on our next hiring round. My proposal:
Hire for potential, train for skills:
- Focus on software engineering fundamentals and learning ability
- Assess problem-solving, not tool knowledge
- Provide structured ML onboarding (3-6 months)
- Pair new hires with experienced ML engineers
- Measure success at 12 months, not 3 months
The alternative is continuing to compete for people who don’t exist while rejecting people who could excel with investment.
For other hiring managers: How are you solving this? Are you finding the perfect-match candidates? Or are you also stuck between unrealistic requirements and business pressure to hire fast?
I don’t have the answer, but I know our current approach isn’t working.