Software Engineer
Software Engineer
Toronto, Ontario, Canada - Permanent
Job Description
Our client are a leading provider of cutting-edge software solutions, specializing in fraud risk management. Their innovative SaaS platform helps businesses mitigate fraud risks, protect sensitive data, and maintain trust with their customers.
They're looking for a passionate software engineer(x3) to join the Risk team to 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.
An ideal candidate would be someone that is an ace problem solver and a learner at heart. They should have a high degree of comfort working with large-scale systems. With a flexible work schedule, you will get the choice of tools (hardware and software) that you'd like to work with, and most importantly, an opportunity to work on tough problems with the brightest minds around!
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!
Must Have Skills:
● 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.