Flex is a growth-stage FinTech company headquartered in NYC, focused on enhancing the rent payment experience. They are seeking a Staff Software Engineer to lead the development of financial infrastructure and ensure the reliability and scalability of their payment systems.
Responsibilities:
- Design, build, and scale backend services and APIs that power Flex's core financial infrastructure, including payments, money movement, billing, settlements, reconciliation, and ledger systems
- Lead the architecture and evolution of highly available, fault-tolerant financial platforms that process and track millions of dollars in transactions with accuracy, reliability, and auditability
- Provide technical leadership and guidance on distributed systems design, financial data consistency, transaction integrity, and long-term platform strategy
- Drive the delivery of highly impactful initiatives end-to-end, from requirements gathering and technical design through implementation, rollout, and operational excellence
- Partner closely with Product, Finance, Risk, Compliance, Operations, and cross-functional engineering teams to deliver scalable and compliant payment experiences
- Build robust systems that integrate with external payment processors, banking partners, card networks, and financial service providers
- Design and implement resilient ledger, settlement, and reconciliation workflows that ensure financial accuracy across the ecosystem
- Drive adoption of engineering best practices across the organization, including observability, automated testing, reliability engineering, CI/CD, and secure software development
- Mentor and support engineers on the team, raising the technical bar and fostering a culture of technical excellence and ownership
- Operate mission-critical financial services in production with stringent uptime, security, compliance, and performance requirements
- Contribute to the evolution of Flex's service-oriented architecture, event-driven systems, APIs, message queues, and scalable financial platforms
- Balance hands-on execution with architectural leadership, ensuring both rapid delivery and long-term maintainability of critical money movement systems
Requirements:
- 6–8+ years of professional software engineering experience, with a focus on backend development
- 4+ years of hands-on Java experience (Spring core/web/boot, Gradle, JUnit, JVM tuning & performance)
- Strong computer science fundamentals and proven experience designing scalable, distributed systems
- Deep experience building or operating financial systems, including payments, money movement, ledgers, settlements, reconciliation, billing, or banking infrastructure
- Experience integrating with payment processors, settlement, card networks, banking partners
- Strong understanding of transactional systems, financial data consistency, idempotency, auditability, and fault tolerance in distributed environments
- Skilled at working with both technical and non-technical stakeholders, aligning on scope and delivery
- Ability to write high-quality, testable, maintainable, and secure code
- Hands-on experience with AWS (EKS, Aurora RDS, Elasticache, DynamoDB), containerization (Docker/Kubernetes), and relational + NoSQL databases (MySQL, PostgreSQL, DynamoDB)
- Proficient with CI/CD pipelines (GitHub Actions preferred), git, and build automation
- Familiar with observability and monitoring tools (e.g., DataDog) for maintaining service availability
- Excellent communicator, comfortable collaborating in globally distributed teams
- Track record of mentoring engineers and raising team standards through best practices