Software Engineer - Java
Who are we?
We are a highly skilled team of innovators. We apply big data, artificial intelligence, and machine learning to bring the next generation of financial products and services to global markets.
What do we do?
We built the only fraud and risk management platform that orchestrates data from the entire customer journey, fighting fraud more effectively with configurable risk models in a single, easy-to-use platform.
Company Overview:
We are a leading provider of cutting-edge software solutions, specializing in fraud risk management. Our innovative SaaS platform helps businesses mitigate fraud risks, protect sensitive data, and maintain trust with their customers.
Position Summary:
We are looking for a passionate software engineer to join our Risk team. As part of this team, you will build challenging back-end services (such as ML model management service) and other tools that can impact millions of users and will be used by many different internal and external teams.
Our ideal candidate is an ace problem solver and a learner at heart. You should have a very high degree of comfort in large-scale systems. We offer a flexible work schedule and you get your choice of tools (both hardware and software) and most importantly, the opportunity to work on tough problems with the brightest minds around you.
What does this include?
-
- Design and build strong, resilient, and fault-tolerant services capable of handling thousands of requests per second
- Follow development process methodologies, such as code review and writing of unit tests, to maintain and improve the quality of the codebase
- Troubleshoot, debug, and upgrade platform services whenever applicable
- Proactively identify and propose improvements to the platform codebase and architecture
- Monitor system performance and optimize existing solutions to mitigate any performance degradation due to context changes along time
- Continuously enrich the knowledge base with best practices and provide improvement suggestions to product and development teams.
- Adopt problem-solving as a way of life - always go to the root cause!
Requirements:
-
- 5+ years of strong, demonstrable experience with Java
- Solid foundation in designing and implementing large-scale systems and complex business requirements.
- Experience handling systems with over 10k+ requests per second, terabytes of daily data processing, and response time at under 100 ms.
- Strong experience working with distributed databases
- Experience providing and validating multiple technical solutions and analyzing their tradeoffs
- Experience with different system designs such as microservice architecture, domain-driven design, and event-driven architecture.
- Proven hands-on experience working with cloud-computing services (AWS, GCP or Azure).
- Experience troubleshooting large-scale systems such as Kubernetes, Kafka, Cassandra, Elastic Search, etc.
- Experience with end-to-end application monitoring, tracing, and alerting using tools like CloudWatch, Grafana, Prometheus, etc.
- Past experience with the development of real-time and business-critical systems.