About the role
We’re building high-throughput, low-latency, event-driven services that power centralized cryptocurrency exchange at scale. As a Senior Software Engineer, You’ll own core services written in Go, operate stateful distributed systems, and design data flows across the system.
Office Address: Satarkhan St, Khosrow crossroad,
Type: Full Time, 9a.m. to 18 p.m. Saturday - Wednesday
What you’ll do
- Design & build event-driven services using Kafka, gRPC and HTTP as communication medium.
- Own stateful services: dealing with partitioning/sharding strategies, snapshotting, recovery process and graceful rollouts.
- Model and persist data in MySQL: Including schema design, access pattern design, and query tuning.
- Engineer with Go at scale: implement robust services dealing with concurrency and efficient memory management.
- Make systems observable: Introducing meaningful metrics, logs, and distributed tracing all over the system.
- Teamworking not Group thinking: review designs/PRs, level up peers, and debate over the designs.
Minimum qualifications
- 5+ years building backend systems; 2+ years with Go in production.
- 1+ years with Kafka at scale (partitions, keys, compaction vs. delete, idempotent producers,
- EOS/transactions, consumer group tuning).
- 3+ years designing MySQL schemas and optimizing queries (EXPLAIN, covering indexes,
- partitioning, lock/contention analysis, replication).
- 1+ years running Redis in production
- Proven mastery of Go concurrency: fan-in/fan-out, worker pools, bounded concurrency, backpressure, cancellation, timeouts, and profiling tools.
- Hands-on with stateful distributed systems: sharding/consistency trade-offs (CAP theorem), idempotency, delivery guarantee semantics.
- Production ops experience: Docker, CI/CD, feature flags
Nice to have
- Experience with PHP and Laravel framework.
- Experience with Rust (don't worry about this one, this service is on maintenance mode)
- Experience in banking / centralized exchanges development.
- Familiarity with blockchain concepts, and different blockchains.
- Designing multi-tenant platforms, per-tenant quotas, and rate limiting.
- Good English writing skills.
How we work (tech & tools)
- Languages: Go (primary), Rust as trading engine, and some PHP as legacy.
- Data/Infra: Kafka, Redis, MySQL, gRPC/Protobuf, REST.
- Observability: ELK + APM
Interview process (signal-focused)
- Technical Programming Language & Concepts Interview: We will cover concurrency patterns, race conditions, profiling, and memory model trade-offs. We will also discuss database-related concepts like CAP, PACELC, transactions, sharding, and partitioning. (we'd like to host you online for 1 hour.)
- Systems Design: We are eager to see how you tackle a problem. (this will take no more than 90 minutes, we promise.)
- Teamwork: We'd like to learn how you interact with people in different situations. (30 minutes)
The arrangement can be on the same day. If you pass the first step and want to continue, you can have the second step after a 15-minute break. Please just let us know in advance.