Software Engineer II, Backend (ML Training & Serving)
WFA Digital Insight
The demand for skilled software engineers in machine learning has skyrocketed, with a 25% increase in job openings in the past year alone. As the remote job market continues to evolve, companies like Affirm are leading the charge in creating innovative solutions. With a strong focus on digital skills and remote work, this role is perfect for those who thrive in a collaborative environment. Candidates should be prepared to showcase their expertise in backend systems, distributed technologies, and a passion for building scalable solutions.
Job Description
About the Role
As a Software Engineer II on the ML Training & Serving team, you will play a critical role in building and operating the infrastructure that enables machine learning models to be trained and served across Affirm. This is a unique opportunity to work at the intersection of distributed systems, ML infrastructure, and platform engineering. You will collaborate closely with cross-functional teams to ensure seamless integration and timely delivery of projects.Affirm is committed to reinventing credit and making it more honest and friendly. The ML Training & Serving team is central to this mission, powering decisions across underwriting, fraud, servicing, and personalization. As a member of this team, you will be responsible for designing, developing, and launching backend systems that support the company's mission.
The ideal candidate will have experience working with distributed systems, ML infrastructure, and platform engineering. You will be comfortable navigating a large code base, debugging others' code, and providing feedback through code reviews. Strong communication skills and a passion for building reliable shared platforms are essential.
What You Will Do
- Break down larger projects into individual tasks, deliver them in multiple phases, and collaborate with others to ensure timely delivery of your work.
- Support peers and stakeholders in the product development lifecycle by collaborating across engineering, articulating technical constraints, and partnering on decisions that consider risks and trade-offs.
- Contribute to the operations and availability of your team's artifacts by creating and monitoring metrics, escalating when needed, and supporting on-call efforts.
- Engage in growth and development activities such as participation in the interview process to contribute to a sense of community on your team.
- Design and develop backend systems, including the creation of technical specifications and documentation.
- Collaborate with data scientists and engineers to integrate machine learning models into the production environment.
- Develop and maintain tools and scripts to support the deployment and monitoring of ML models.
- Troubleshoot issues with ML model serving and identify areas for improvement.
- Participate in code reviews and contribute to the improvement of the codebase.
- Stay up-to-date with industry trends and emerging technologies in ML and software engineering.
- Collaborate with cross-functional teams to identify and prioritize project requirements.
- Develop and maintain technical documentation and guides for internal stakeholders.
What We Are Looking For
- 1.5+ years of experience as a software engineer, with a focus on backend systems and distributed technologies.
- Experience designing, developing, and launching backend systems, with proficiency in Python or Kotlin.
- Familiarity with distributed systems, including technologies like AWS, MySQL, and Kubernetes.
- Strong understanding of software engineering principles, including design patterns, testing, and deployment.
- Experience with machine learning infrastructure and model serving.
- Ability to navigate a large code base, debug others' code, and provide feedback through code reviews.
- Strong verbal and written communication skills, with experience collaborating with cross-functional teams.
- Bachelor's degree in a related field, such as computer science or software engineering.
- Experience with Agile development methodologies and version control systems like Git.
Nice to Have
- Experience with cloud-based technologies, such as AWS or Google Cloud.
- Familiarity with containerization using Docker and Kubernetes.
- Knowledge of machine learning frameworks and libraries, such as TensorFlow or PyTorch.
- Experience with data engineering and data pipelines.
- Certification in software engineering or a related field.
Benefits and Perks
- Competitive salary and equity package.
- Comprehensive health, dental, and vision insurance.
- Flexible PTO and paid holidays.
- Remote work stipend and support for home office setup.
- Professional development opportunities, including training and conference attendance.
- Collaborative and dynamic work environment with a team of experienced engineers.
- Access to cutting-edge technologies and tools.
- Recognition and reward for outstanding performance and contributions.
How to Stand Out
- Develop a strong understanding of distributed systems and ML infrastructure to stand out in the application process.
- Showcase your experience with backend systems, including design, development, and deployment.
- Prepare to discuss your approach to troubleshooting and debugging complex technical issues.
- Highlight your ability to collaborate with cross-functional teams and communicate technical concepts to non-technical stakeholders.
- Be prepared to walk through your code and design decisions during the interview process.
- Research Affirm's products and services to demonstrate your understanding of the company's mission and values.
- Practice whiteboarding exercises to improve your problem-solving skills and ability to think critically under pressure.
This is a remote position listed on WFA Digital, the platform for professionals who work from anywhere. Browse more remote jobs across all categories.