Job Title: Senior Software Engineer Duration: 6+months
Location: Remote
About the Opportunity
We are looking for a Senior Software Engineer to take technical ownership of key services supporting a modern customer application and decisioning platform.
This is a hands-on engineering role for someone who enjoys working with Java, distributed systems, microservices, event-driven architecture, and cloud-native technologies. You will be responsible for designing, building, deploying, and supporting scalable, secure, and production-ready services.
You will also play an important role in improving system resilience, observability, service boundaries, and engineering productivity while helping the organization adopt modern AI-assisted software development practices.
Key Responsibilities
Build & Own Critical Systems
- Design, develop, test, deploy, and operate high-performance Java services.
- Take technical ownership of critical services from design through production.
- Translate architectural requirements into scalable designs and reusable patterns.
- Balance performance, scalability, reliability, maintainability, and delivery speed.
- Participate in code reviews, testing, documentation, and technical troubleshooting.
Distributed & Event-Driven Architecture
- Design and modernize microservices and distributed systems.
- Help evolve tightly coupled systems toward event-driven architectures.
- Establish clear service and domain boundaries.
- Design scalable systems capable of supporting increasing transaction volumes.
- Identify and address architectural, performance, and reliability issues.
Resilience & Observability
- Implement resilience patterns including:
- Circuit breakers
- Retries
- Timeouts
- Bulkheads
- Graceful degradation
- Design highly available and fault-tolerant services.
- Implement and improve logging, metrics, monitoring, and distributed tracing.
- Work with OpenTelemetry or similar technologies.
- Troubleshoot complex production issues across multiple services.
Experimentation & Feature Management
- Build architecture supporting A/B testing and runtime experimentation.
- Implement feature flags, controlled rollouts, and customer segmentation.
- Instrument services to measure the impact of new features and experiments.
Security & Compliance
- Develop applications with strong standards around security, auditability, traceability, and PII protection.
- Support secure and reliable financial/business workflows.
- Collaborate with Engineering, Product, Risk, Security, and Business teams.
Technical Leadership
- Mentor and support other engineers.
- Participate in architecture and technical design discussions.
- Conduct code and design reviews.
- Document systems and architectural decisions.
- Promote knowledge sharing and cross-training across the engineering team.
AI-Assisted Engineering
- Leverage modern AI coding tools and agents for development, testing, debugging, refactoring, and documentation.
- Identify opportunities to improve engineering productivity and software quality using AI.
- Follow secure and responsible practices for AI-assisted development.
- Share effective AI development workflows with the broader engineering team.
Required Qualifications
- 7+ years of professional software engineering experience.
- Strong, hands-on Java development experience.
- Proven experience designing and building large-scale distributed systems in production.
- Strong knowledge of:
- Microservices
- REST/API development
- Asynchronous processing
- Distributed system design
- Event-driven architecture
- Experience with asynchronous messaging systems and patterns.
- Hands-on experience implementing resilience patterns such as circuit breakers, retries, timeouts, bulkheads, and graceful degradation.
- Experience building high-availability and fault-tolerant systems.
- Strong understanding of application observability, including logging, metrics, monitoring, and distributed tracing.
- Experience with OpenTelemetry or similar distributed tracing tools.
- Experience with feature flags, controlled releases, experimentation, or A/B testing.
- Strong automated testing experience.
- Ability to troubleshoot complex production issues across multiple services.
- Strong communication and technical collaboration skills.
Preferred / Nice-to-Have
- Experience in FinTech, lending, payments, banking, or other regulated industries.
- Experience handling sensitive financial or personally identifiable information.
- Experience modernizing legacy or tightly coupled applications.
- Experience with complex third-party/vendor integrations.
- Knowledge of Domain-Driven Design (DDD) and effective service boundaries.
- Experience mentoring engineers and improving engineering standards.
- Demonstrated experience using AI development tools to improve engineering productivity and software quality.
Ideal Candidate
The ideal candidate is a hands-on technical engineer who enjoys both architecture and implementation. You should be comfortable taking ownership of critical systems, solving challenging production issues, improving system reliability, and mentoring other engineers.
You should also have a strong understanding of what happens when systems or downstream dependencies fail, not just when everything works as expected.