Affirm is hiring a remote ML Engineer II Underwriting ML!
Affirm is hiring an ML Engineer II for its Underwriting ML team, working remotely from one of nine Canadian provinces. The role sits at the core of Affirm's real-time checkout decisioning: you would build and maintain models that estimate repayment risk and expected value for every transaction, shepherding them from early prototypes through production deployment and ongoing monitoring. The team operates at the intersection of engineering, risk analytics, product, and the ML platform group, so the work blends hands-on modeling with cross-functional communication. Affirm describes itself as remote-first, with 100% subsidized medical coverage, wellness and tech stipends, flexible time off, and an employee stock purchase plan.
Key responsibilities
- Develop and iterate underwriting prediction models spanning tabular and sequential data
- Build and scale feature pipelines and training datasets from proprietary and third-party signals, coordinating with data and platform teams
- Prototype new modeling approaches and features, run offline experiments, and promote winning methods into production with suitable risk controls
- Integrate models into batch or real-time decision systems and improve reliability, latency, and operational robustness
- Instrument and monitor model and data health, and help define retraining and backtesting workflows
- Partner with Engineering, Risk Analytics, Product, and ML Platform to set requirements, weigh tradeoffs, and communicate results to technical and non-technical audiences
Key requirements
- 2+ years as an ML engineer, or a PhD in a relevant field (or equivalent practical experience / bachelor's degree)
- Strong Python and production-quality coding skills
- Experience building and evaluating classification models, ideally gradient-boosted trees such as LightGBM, XGBoost, or CatBoost
- Familiarity with a deep learning framework, with PyTorch preferred
- Experience with distributed data processing or parallel compute frameworks, ideally Spark (Ray or Dask also relevant)
- Hands-on with ML lifecycle tooling for training orchestration, experimentation, and monitoring, such as Kubeflow, Airflow, or MLflow
- Comfort using AI-assisted developer tools to speed up iteration and debugging
- Ability to navigate a large codebase, debug others' code, and give thoughtful code review feedback
- Clear written and verbal communication for a global team, plus a proactive approach to owning your growth
- Seniority: Mid-level (ML Engineer II)
- Work mode: Remote (Alberta, British Columbia, Manitoba, New Brunswick, Newfoundland and Labrador, Nova Scotia, Ontario, Prince Edward Island, or Saskatchewan)
- Salary: $133,000 - $183,000 CAD per year
- Key skills: Python, LightGBM, XGBoost, CatBoost, PyTorch, Spark, Ray, Dask, Kubeflow, Airflow, MLflow, feature engineering, model monitoring, classification modeling
Want more jobs?
Join our mailing list to receive updates about new data science and ML Engineer II Underwriting ML jobs.