- Location
- Hong Kong, Hong Kong SAR; Singapore, Singapore · Hong Kong, Hong Kong SAR · Singapore, Singapore
- Department
- Engineering
- Seniority
- Senior
- Source
- Greenhouse
Description
Staff/Senior Java Engineer, OKX Wallet (Web3)
Who We Are
OKX Wallet is OKX's self-custody wallet, built for users worldwide to securely and conveniently store, manage, and use their on-chain assets. The wallet backend operates in a multi-chain, multi-asset, high-concurrency environment shaped by on-chain state uncertainty and strict fund-security requirements — combining the complex-systems challenges of traditional internet backends with the transaction, signing, and on-chain interaction problems unique to blockchain.
We're looking for a Senior Java Engineer with roughly 5–10 years of backend experience: someone with strong engineering fundamentals who can independently own core modules, exercise sound judgment on complex problems, and proactively coordinate across upstream and downstream teams to drive work to completion.
What You'll Do
- Own core wallet backend modules. Build and continuously improve address management, asset synchronization, transaction construction, broadcasting, on-chain confirmation, gas estimation, nonce management, and transaction-state tracking. Understand each module's role in the full wallet flow, and keep stability, performance, and maintainability front of mind. For complex requirements, break the problem down before choosing an implementation rather than stacking code or reusing old designs.
- Build transaction and on-chain interaction scenarios. Work on transfers, token approvals, contract interactions, cross-chain, swaps, DApp connections, and signature-request handling. Understand a transaction's full lifecycle — from initiation through construction, signing, broadcasting, on-chain confirmation, and final state update — and diagnose issues like stuck transactions, duplicate submissions, state inconsistencies, and on-chain success that isn't reflected in the business system, using logs, on-chain data, and call traces.
- Support multi-chain and new-chain integration. We already support EVM, Tron, and Solana, and continuously onboard new public chains, Layer 2 networks, and asset standards. Contribute to technical research, integration design, and feature development, accounting for differences in address models, account systems, transaction structures, signing methods, fees, and confirmation mechanisms — as well as node stability, asset sync, exception compensation, monitoring, and security boundaries.
- Ensure stable operation. Contribute to day-to-day stability work — monitoring, alerting, rate limiting, graceful degradation, retries, compensation, data reconciliation, and troubleshooting. When incidents occur, help investigate, narrow scope, and fix root causes; for recurring issues, drive systemic fixes such as added monitoring, stronger fallbacks, or design improvements.
- Drive your projects to delivery. Take ownership of the modules and projects you're responsible for. On work spanning product, QA, frontend, infrastructure, or other backend teams, proactively sync information, surface dependencies and risks, and drive issues to resolution. When requirements are unclear or opinions diverge, lay out the context, offer your own judgment, and help build consensus.
- Continuously raise engineering quality. Participate in design discussions, code reviews, and system optimization. Spot unreasonable designs, duplicated logic, and latent risks, and propose actionable improvements. Document technical decisions, post-incident learnings, and best practices, and help less-experienced teammates.
- Apply AI in daily development. Use AI coding tools (Claude Code, Cursor, Codex, etc.) to assist with code comprehension, scaffolding, unit tests, code review, troubleshooting, refactoring, and documentation — validating AI output for correctness, project conventions, performance, and security rather than using it unchecked.
What We're Looking For
- Solid Java backend fundamentals. ~5–10 years of Java backend experience with a strong grasp of collections, concurrency, thread pools, the JVM, network communication, and common performance issues. Proficient with Spring Boot, Spring Cloud, MyBatis, or comparable stacks, able to independently design and build medium-to-large backend modules and reason about the mechanics behind the frameworks you use.
- Strong system design ability. Experience with complex or high-concurrency systems; comfortable with idempotency, retries, compensation, caching, message queues, distributed locks, data consistency, rate limiting, and service degradation. Able to own module- or service-level design and clearly explain the core flow, failure scenarios, and key trade-offs.
- Cognitive ability and judgment. Able to understand context and goals on ambiguous problems, separate symptom from root cause, and choose a fitting solution based on business value, user experience, stability, cost, and security — rather than reflexively adding complexity.
- Drive and ownership. Able to independently own a module or project end to end, from design through development, testing, and launch. Proactively communicates and resolves dependencies, risks, and blockers, and follows through on launch outcomes rather than stopping at code merge.
- Blockchain or wallet experience. Experience with wallets, blockchain, trading platforms, on-chain data services, or related systems. Understands addresses, public/private keys, mnemonics, transaction signing, broadcasting, on-chain confirmation, gas, and nonce; familiar with the transaction mechanics of at least one of EVM, Tron, or Solana, and with token standards such as ERC-20 and TRC-20. (Strong backend fundamentals and fast learning can offset gaps in blockchain coverage.)
- High security awareness. Sensitive to private-key, signing, permission, and user-asset security; familiar with replay protection, API authentication, tamper resistance, sensitive-data protection, and least-privilege principles. Actively considers malformed input, duplicate requests, privilege bypass, and data-leak risks when building transaction features.
- Independent production troubleshooting. Able to diagnose live issues via log analysis, metrics monitoring, distributed tracing, and thread/memory analysis; can form hypotheses and narrow scope even with incomplete information. Hands-on experience with performance degradation, timeouts, message backlogs, data inconsistencies, memory issues, or unstable third-party services.
- Engineering in the AI era. Willing to use AI coding tools to improve daily efficiency and able to judge whether AI output meets real business requirements before shipping it. Has a basic understanding of prompts, context management, RAG, AI agents, and MCP, or a genuine willingness to keep learning — treating AI as an engineering tool, not requiring an algorithm/model-training background.
Nice to Have
- Integration work on new public chains, new asset standards, or cross-chain protocols
- Familiarity with WalletConnect, DApp Browser, or signature-request handling
- Knowledge of MPC, multisig, hardware wallets, or TEE-based key-security schemes
- Experience with Swap, staking, cross-chain bridges, or DeFi aggregation
- Address risk detection, allow/deny lists, anti-fraud, or wallet risk-control experience
- High-concurrency transaction systems, blockchain node services, on-chain data indexing, or transaction-state-tracking systems
- Familiarity with RPC calls, block scanning, chain reorgs, transaction compensation, and reconciliation mechanisms
- JVM performance tuning, stability governance, or complex production-incident experience
- Cross-team collaboration with a track record of driving projects to delivery
- Real projects built with AI — e.g. AI code review, development agents, MCP servers, intelligent troubleshooting, or knowledge bases
- Follows developments in AI coding assistants and LLM applications and shares practical takeaways with the team
Perks & Benefits
- Competitive total compensation
- Comprehensive insurance coverage for you and your dependents
- More benefits to be discussed after you join