Software Engineer (Backend)
Job Summary
This is a remote position.
- Design and implement transaction processing services.
- Manage transaction lifecycles and state transitions.
- Implement idempotency across transaction requests.
- Design retry timeout and failure-handling mechanisms.
- Handle pending failed reversed and unknown transaction states.
- Implement Saga and compensating transaction patterns where appropriate.
- Build reliable transaction recovery mechanisms.
- Implement double-entry accounting principles.
- Ensure every balance-affecting operation generates corresponding journal entries.
- Prevent uncontrolled or direct balance mutations.
- Maintain transactional consistency.
- Implement reconciliation and exception-handling mechanisms.
- Design appropriate suspense and reversal workflows.
- Design APIs and internal service interfaces.
- Implement asynchronous processing where appropriate.
- Design service boundaries and integration patterns.
- Review and improve existing architecture.
- Integrate payment switches and third-party services.
- Build adapters that isolate external dependencies.
- Implement timeouts retries circuit breakers and fallback.
- Handle external service failures without compromising transaction integrity.
- Investigate and resolve production incidents.
- Perform root-cause analysis.
- Monitor system behaviour and identify reliability issues.
- Implement permanent fixes rather than temporary workarounds.
- Participate in production releases and operational reviews.
We care about engineering depth and ownership not just years of experience.
You should be able to explain:
- How you prevent duplicate transactions.
- How you handle an unknown transaction state.
- How you design transaction recovery.
- How you maintain ledger integrity.
- How you handle external dependency failures.
- How you diagnose a production incident.
- Why you made the architectural decisions in systems you have built.
Remote-First
- Work fully remotely from anywhere.
Competitive Pay
- Strong compensation for experienced engineers.
Meaningful Technical Ownership
- Own significant engineering surfaces rather than isolated tickets.
- Participate in architecture and technical decisions.
- Work on production systems and real-world technology products.
Professional Engineering Environment
Learning & Growth
Flexible Contract Engagement
High-Impact Work
Required Skills:
Required Experience 37 years of backend engineering experience. Strong Javascript and TypeScript experience. Strong Database experience. Experience building production financial payment wallet banking or transaction systems. Strong understanding of distributed systems. Practical understanding of idempotency. Experience handling transactional consistency and failure recovery. Experience designing and consuming APIs. Strong debugging and problem-solving skills. Experience working with production systems. What We Look For We care about engineering depth and ownership not just years of experience. You should be able to explain: How you prevent duplicate transactions. How you handle an unknown transaction state. How you design transaction recovery. How you maintain ledger integrity. How you handle external dependency failures. How you diagnose a production incident. Why you made the architectural decisions in systems you have built.