Software Engineer II, Backend (ML Training & Serving)

AffirmAffirm·Remote(Remote Canada)
Software Development

WFA Digital Insight

The demand for skilled software engineers with expertise in machine learning and backend systems has surged in recent years, with a notable 25% increase in job postings in 2025 alone. Affirm, a pioneering fintech company, is seeking a talented Software Engineer II to join its ML Training & Serving engineering team. With the rise of digital payments and the importance of reliable, efficient systems, this role is poised to make a significant impact. As a candidate, you should be prepared to showcase your proficiency in designing, developing, and launching backend systems, as well as your experience with distributed systems and technologies like AWS, MySQL, and Kubernetes. With the remote job market continuing to grow, this is an exciting opportunity to work with a cutting-edge company and contribute to the development of innovative financial solutions.

Job Description

About the Role

As a Software Engineer II at Affirm, you will be an integral part of the ML Training & Serving engineering team, responsible for building and operating the critical infrastructure that enables models to be trained and served across the company. Your work will have a direct impact on Affirm's mission to make credit more honest and friendly, giving consumers the flexibility to buy now and pay later without any hidden fees or compounding interest. You will collaborate closely with cross-functional teams, including engineering, product, and data science, to ensure seamless integration and timely delivery of your work.

The ML Training & Serving team is at the forefront of Affirm's technological advancements, and as a Software Engineer II, you will be expected to contribute to the design, development, and launch of backend systems that support machine learning models. Your expertise in Python or Kotlin will be essential in this role, as you will be working with a range of technologies, including AWS, MySQL, and Kubernetes.

What You Will Do

  • Collaborate with the tech lead and manager to break down larger projects into individual tasks and deliver them in multiple phases
  • Support peers and stakeholders in the product development lifecycle by articulating technical constraints and partnering on decisions
  • Ensure the operations and availability of team artifacts by creating and monitoring metrics, escalating when needed, and supporting on-call efforts
  • Contribute to the sense of community on the team by engaging in growth and development activities, such as participation in the interview process
  • Design, develop, and launch backend systems that support machine learning models
  • Work with distributed systems and technologies like AWS, MySQL, and Kubernetes
  • Collaborate with cross-functional teams to ensure seamless integration and timely delivery of work
  • Provide technical expertise and guidance to junior engineers
  • Participate in code reviews and ensure high-quality, well-tested, and extensible code

What We Are Looking For

  • 1.5+ years of experience as a software engineer
  • Experience designing, developing, and launching backend systems
  • Proficiency in Python or Kotlin
  • Familiarity with distributed systems and technologies like AWS, MySQL, and Kubernetes
  • Strong verbal and written communication skills
  • Ability to navigate a large code base, debug others' code, and provide feedback through code reviews
  • Experience with machine learning and data science concepts
  • Strong problem-solving skills and attention to detail
  • Ability to work effectively in a remote environment and collaborate with global teams

Nice to Have

  • Experience with cloud-based technologies and containerization
  • Knowledge of Agile development methodologies and version control systems
  • Familiarity with data visualization tools and techniques
  • Experience with DevOps practices and continuous integration/continuous deployment (CI/CD) pipelines

Benefits and Perks

  • Competitive salary and equity package
  • 100% subsidized medical coverage, dental, and vision insurance
  • Monthly stipends for health, wellness, and tech spending
  • Flexible paid time off and holidays
  • Opportunity to work with a cutting-edge fintech company and contribute to the development of innovative financial solutions
  • Collaborative and dynamic work environment with a global team of engineers and professionals
  • Professional development opportunities and support for ongoing education and training
  • Access to the latest technologies and tools, including machine learning and data science platforms
  • Recognition and rewards for outstanding performance and contributions to the company's mission

How to Stand Out

  • To stand out as a candidate, be prepared to showcase your experience with machine learning and backend systems, as well as your proficiency in Python or Kotlin. Highlight specific projects or accomplishments that demonstrate your technical skills and problem-solving abilities.
  • Make sure to review the company's technology stack and be prepared to discuss your experience with distributed systems, AWS, MySQL, and Kubernetes.
  • As a remote candidate, be prepared to demonstrate your ability to work effectively in a distributed team environment and collaborate with global colleagues.
  • Be prepared to provide specific examples of your experience with code reviews, debugging, and troubleshooting, as well as your ability to communicate technical concepts to non-technical stakeholders.
  • When negotiating salary, be sure to research the market rate for software engineers in your area and be prepared to discuss your expectations and requirements.
  • Be aware of the company's mission and values, and be prepared to discuss how your own values and goals align with those of the organization.

This is a remote position listed on WFA Digital, the platform for professionals who work from anywhere. Browse more remote jobs across all categories.