Role in brief
OKX, a crypto exchange, is seeking a Senior/Staff Engineer for their Fraud Risk team. This role involves designing and developing high-scale APIs and distributed systems using Java, focusing on backend microservices. Candidates with strong Java fundamentals, experience in distributed systems, and a background in fraud prevention or risk management are encouraged to apply.
About the role
This role involves designing and implementing robust backend microservices and distributed systems that operate 24/7. Engineers will work with engineering managers, architects, and QA to create solutions that meet functional, performance, and reliability standards. The position requires ownership of services from development through production monitoring, with an emphasis on continuous improvement and adherence to development goals.
The successful candidate will contribute to the entire service lifecycle, influencing each step of the process. This includes researching and promoting new technologies, as well as addressing technical challenges related to performance, fault-tolerance, security, and live production issues. The team values collaboration and requires effective communication to drive cross-team solutions with complex dependencies.
Success in this role means developing high-quality product features across multiple domains, ensuring they are scalable and reliable. It also involves being a technical leader who can solve problems, learn independently, and contribute to a team-oriented environment. The engineer will play a key part in safeguarding the platform against fraud within a leading crypto exchange.
The annual salary for this position ranges from $152,000 to $218,900 USD.
Skills that matter here
- Java: This role requires deep proficiency in Java, including JVM tuning, multi-threading, and concurrency frameworks, to develop high-performance backend systems.
- Spring Framework: Engineers will use Spring Framework, specifically Spring Boot, for developing web services and microservices.
- MySQL: Experience with MySQL and other databases is essential, including understanding optimization techniques like indexing and sub-database/sub-table design.
- Kafka: Familiarity with Kafka is needed for working with message queues in distributed architectures.
- Redis: Understanding the design principles of caching systems like Redis is required for accurately choosing caching solutions.
- Git: Proficiency with Git is necessary for version control and collaborative development workflows.
Who this role suits
- A person with at least five years of software development experience, particularly in Java backend systems.
- Someone who thrives in a team environment, capable of driving complex cross-team solutions and communicating clearly.
- An individual who is results-oriented, a self-learner, and a problem-solver with a proactive attitude.
- A candidate with a strong understanding of distributed system principles and experience with high-scale APIs.
From the employer
- Proficiency with Java stack and JVM (memory/performance tuning, GC)
- Proficiency with developing Web Services, SOA, REST APIs, Message Queue, Distributed/Scalable Architecture
- Proficiency in Spring Framework (Spring Boot), Hibernate (or similar ORM), Maven, Git
- Design and develop 24/7 high scale APIs and distributed system, the tech stack will be on Alicloud/AWS
- Strong CS fundamentals, solid knowledge of OOP/OOD, GoF design patterns
- Write unit tests, integration tests and CI/CD scripts
- Own, monitor and improve our services in production
- Development and testing of high quality product features spanning multiple product domains
- Work with engineering managers, architects, engineers & QA to develop innovative solutions that meet market needs w.r.t functionality, performance, reliability, realistic implementation schedules and adherence to development goals and principles
- Be a technical leader; research and promote new technologies and tools
- Face technical challenges - performance, fault-tolerance, security and live production issues
- Be involved throughout our service life cycle, influence every step of the way
- Min. 5+ years of experience in Software Development
- Possess a solid foundation in Java, with a deep understanding of JVM configuration optimisation strategies and tuning, IO, multi-threading, concurrency frameworks, common data structures, algorithms, and design patterns
- Good programming specifications and rich work experience
- Familiar with mainstream open-source application frameworks, such as SpringBoot, SpringMVC, Mybatis, SpringCloud, etc.
- Experience with MySQL, Oracle, and other databases, with an in-depth understanding of things, locks, indexes, database and SQL optimisation, design methods such as sub-database sub-table, leader/follower synchronization
- Familiar with common middleware, such as Kakfa, ELK, Hologres, etc.
- Possess a deep understanding of the design principles of common caching systems, such as Memcached, Redis, etc. and be able to accurately choose caching solutions
- Have a good understanding of distributed system principles, including CAP, consistency, idempotent operation, etc.
- Work well in a team environment and be able to effectively drive cross-team solutions that have complex dependencies and requirements
- Results-oriented, self-learner, problem solver with can do attitude
- Clear logic, quick thinking and good communication skills
- Bilingual is highly preferred (Mandarin and English) as the team will be working with stakeholders in different regions
- Competitive total compensation package
- L&D programs and education subsidy for employees growth and development
- Various team building programs and company events
- Wellness and meal allowances
- Comprehensive healthcare schemes for employees and dependants
- More that we love to tell you along the process!
Questions about this role
What is the remote work policy for this position?
This is a fully remote position.
What level of seniority is expected for this role?
This position is for a Senior/Staff Engineer, requiring a minimum of five years of software development experience.
How should I apply for this position?
The job description does not specify an application process, but typically applications are submitted through the company's career portal or a linked application system.