Software Engineer Ii, Backend (merchant Advocacy)

Affirm Affirm · Fintech · Canada, United States · Remote · Checkout

Backend Software Engineer II role at Affirm, focusing on building and scaling the merchant lifecycle orchestration service. Responsibilities include designing platform backbone, cross-team project alignment, technical strategy execution, and improving engineering standards. Requires 3+ years of backend experience, familiarity with distributed systems, API design, event-driven architecture, and experience with AWS, gRPC, Kotlin, Python, MySQL, and Kubernetes.

What you'd actually do

  1. Design & expand the backbone of our platform to scale to hundreds of thousands of merchants from all around the world
  2. Design and align the scope of work with other teams to deliver cross-team projects
  3. Partner with Engineering Manager and Team Lead to execute the long-term vision of the team
  4. Execute technical strategy for broad or complex requirements with insightful and forward-looking approaches that go beyond the direct team and solve large open-ended problems
  5. Utilize agentic development tools like Claude Code to automate parts of the development process
  6. Improve engineering standards, tooling, and processes throughout the organization

Skills

Required

  • 3+ years of experience as a backend software engineer
  • Familiarity with Domain-Driven Design, distributed systems, and how architectural decisions affect performance and maintainability
  • Experience with concepts such as data models, API design (http and RPC), state machines, event-driven architecture, and database design
  • Excellent communication skills, both written and verbal
  • Proficient in asynchronous communication–written tech specs, ADRs, project plans, etc.
  • Experience designing, developing, and launching backend systems
  • Prior experience with monitoring and alerting systems (sentry.io, rollbar, chronosphere, kibana)

Nice to have

  • Java and Kotlin experience are especially helpful

What the JD emphasized

  • brand new lifecycle-orchestrator service
  • critical architectural risks
  • system simplification and isolation
  • modernize older parts of the codebase
  • scale to hundreds of thousands of merchants
  • broad or complex requirements
  • large open-ended problems
  • agentic development tools