Senior Software Engineer – Java / Distributed Systems
6 months contractW2 preferred but open for C2C all.Hybrid if local or else Remote is fineAbout the OpportunityWe 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 ResponsibilitiesBuild & Own Critical SystemsDesign, 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 ArchitectureDesign 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 & ObservabilityImplement resilience patterns including:Circuit breakersRetriesTimeoutsBulkheadsGraceful degradationDesign 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 ManagementBuild 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 & ComplianceDevelop 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 LeadershipMentor 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 EngineeringLeverage 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 Qualifications7+ 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:MicroservicesREST/API developmentAsynchronous processingDistributed system designEvent-driven architectureExperience 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-HaveExperience 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 CandidateThe 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.