Givebutter is a nonprofit fundraising and CRM platform that empowers changemakers to raise more and give better. The Staff Software Engineer will be responsible for building and evolving systems for fraud detection, risk decisioning, and internal tooling, collaborating closely with various teams to enhance payment integrity and safety.
Responsibilities:
- Build the fraud platform. Design and implement fraud detection and risk decisioning systems, rule engines, scoring pipelines, event-driven risk signals, and backtesting infrastructure
- Build for operators. Create investigation and review tooling that helps our Trust & Safety operations team triage, investigate, and resolve cases efficiently. You care as much about internal UX as external
- Help shape what we build next. You'll work closely with your manager, product, operations and leadership stakeholders to identify where we're exposed, propose solutions, and help prioritize the roadmap. Your domain expertise matters here — we want your perspective on what we should be doing
- Think like an adversary. Develop a deep understanding of fraud vectors in the fundraising and payments space: stolen cards, synthetic identities, friendly fraud, campaign abuse, and help us build systems that adapt as threats evolve
- Strengthen payment integrity. Work across our payment systems to harden the transaction lifecycle against abuse. You don't need to be a payments expert on day one
- Mentor and grow the team. Help engineers on your team develop Trust & Safety domain expertise. Share what you know, pair on hard problems, and help raise the bar for how the team approaches adversarial challenges
Requirements:
- 8+ years of software engineering experience, with meaningful time spent in adversarial domains — fraud, trust & safety, risk, abuse prevention, or similar
- Experience building fraud detection or risk decisioning systems — rule engines, scoring systems, policy frameworks, or investigation platforms. You've built the thing, not just consumed the output
- Strong backend engineering fundamentals. You can design scalable, event-driven systems and reason about distributed architecture tradeoffs. You've debugged production issues across multiple layers of the stack
- Collaborative influence. You've helped drive technical initiatives across multiple teams and stakeholders. You're comfortable building consensus and working through ambiguity with others
- Good judgment and prioritization. You can take a vague problem like 'our dispute rate is climbing' and work with your team to break it down into a concrete plan with clear next steps
- Experience with PHP/Laravel, or a similar MVC framework like Ruby on Rails, Django, etc. Laravel experience is a plus, but strong fundamentals in any comparable framework translate well
- Experience leading projects or small teams as a senior IC (e.g., technical lead/staff-level leadership): setting direction, unblocking others, and mentoring
- Experience with React/TypeScript on the frontend
- Familiarity with Stripe's APIs, payments, disputes, Radar, or similar payment processor integrations
- Experience building tools for operations or support teams (internal tooling, case management, review queues)
- Background in fundraising, nonprofit tech, or marketplace platforms where T&S challenges involve campaign legitimacy, donor protection, or platform abuse
- Exposure to event-driven architectures (CDC, Kafka, event sourcing) for real-time risk signal processing
- Experience working in AWS (EKS/Kubernetes, RDS, etc.)