Order.co is a fintech company transforming the purchasing and payment processes for businesses. As a Senior Software Engineer on the Payments team, you will be responsible for developing and maintaining software that manages financial transactions, ensuring security and reliability in money movement systems while mentoring junior engineers.
Responsibilities:
- Independently design and implement complex, multi-part features from requirements to production
- Own subsystems, services, or critical components in the payments stack — for example, the internal financial ledger, the virtual-cards issuance and authorization lifecycle, bank connections, or the invoicing and auto-debit pipeline. The team routes questions to you for these areas
- Write clean, maintainable, production-ready code with consistent test coverage — money-movement code paths are held to a high test bar
- Navigate existing codebases with architectural discernment — identify sound patterns to build upon, recognize technical debt, and use AI tooling as an accelerant while applying your own judgment on correctness, security, and alignment with the system's direction
- Debug production issues effectively; seek first to understand — investigate evidence and identify root causes rather than applying band-aids, especially in webhook, retry, and reconciliation paths where a quick patch can hide a deeper consistency bug
- Participate actively in design reviews; your designs regularly influence team-level architecture decisions
- Propose sound technical designs that account for scalability, performance, and reliability trade-offs — and for payments-specific concerns like idempotency, exactly-once semantics, reconciliation between internal state and vendor reports, and clean separation between authorization and capture
- Identify risks before they become incidents — surface edge cases, data consistency concerns, and failure modes during planning. In payments, that includes double-charge, double-credit, dropped webhook, and out-of-order event scenarios
- Scope and estimate work accurately; solve problems in order — break down epics into deliverable, independently reviewable units
- Deliver features end-to-end, including rollout coordination and post-release monitoring. Rollouts that affect real money rely on feature-flagging, dark-launching, reconciling, and watching dashboards before declaring "done"
- Communicate risks and blockers early — don't absorb uncertainty silently
- Review stories critically before committing: ensure they're appropriately broken down and that dependencies are well understood by the team
- Mentor junior and mid-level engineers through code reviews, pairing, and direct feedback
- Provide high-quality, substantive code reviews — lead with humility, treat the author as a teammate to help, and catch what AI misses; teach others to do the same
- Teach best practices; your presence raises the quality of code around you
- Influence technical decisions through credibility, not just seniority
- Drive improvements in team practices — testing patterns, observability for money-movement flows, code organization, and the bar for test coverage in code paths that move real funds
- Champion quality and standards; push back on shortcuts that create long-term cost — especially in code that touches funds or credit
- Explain technical decisions clearly to both technical and non-technical stakeholders
- Represent engineering well in product and cross-functional discussions, including with Finance, Operations, and Credit on reconciliation, credit-risk, and dispute-handling questions
- Translate vendor documentation (Stripe, Lithic, and others) into clear, scoped engineering work
- Approach all assignments with a security lens — actively look for vulnerabilities in your own code and in the code you review, with extra care in PII and PCI-adjacent paths
Requirements:
- You are motivated by accountability — you own outcomes, not just tasks
- You are results-oriented and measure success by shipped, working software
- You are motivated by correctness in code that touches money — the consequences of a bug land on real customer balances, and you take that seriously
- You love helping people on your team grow and improve
- Writing tests is an integral part of your development process, not an afterthought
- You know how to design and build software incrementally — you don't need a complete spec to make progress
- Collaborating with the people around you to achieve a goal motivates you
- You are collaborative, open-minded, and actively developing your craft
- You are curious and pragmatic about AI-driven solutions — you apply them where they add real value and stay skeptical where they don't
- Familiarity with AI-assisted development tools — you understand how they work, where they help, and where they fail. Prior hands-on use is a plus; intellectual curiosity and the instinct to evaluate AI output critically are what matter
- Strong foundation in computer science fundamentals: data structures, algorithms, and system design
- Expertise in building production-grade applications and services using Ruby and Ruby on Rails
- Extensive experience with PostgreSQL and SQL-based data modeling, including query optimization and performance tuning
- Deep understanding of web application security, observability, and scalable system architecture
- Proven ability to design, build, and maintain secure, scalable, and well-documented APIs
- Experience building integrations with external systems — REST/GraphQL APIs, webhooks, event-driven pipelines, or third-party vendor connections
- Hands-on experience with at least one payment processor or card issuer (Stripe, Lithic, Adyen, Marqeta, Braintree, or equivalents), or comparable fintech vendor work
- Working familiarity with at least one of: double-entry ledger design, idempotency / exactly-once patterns for webhooks and money-movement, ACH / wire / card-network basics, or reconciliation against vendor reports
- Familiarity with AWS and other cloud platforms, including infrastructure as code and CI/CD pipelines
- Experience using AI coding assistants (e.g., Claude, GitHub Copilot) as part of your development workflow — not as a shortcut, but as a force multiplier; you provide them with appropriate context about constraints and conventions, critique AI output, recognize failure modes, and decide when to override