How we work
Every service does one job. The price engine, the trade engine, the API and the realtime gateway run apart, so a change to one cannot quietly move another, and each can be restarted on its own.
Money is append-only. A balance changes by a new ledger entry, never by an edit, and every contract can be replayed tick by tick after it settles. We build that way because it is what lets a customer check our arithmetic instead of trusting it.
We ship in small, checked steps. A release says beforehand what it will change, checks that on the running system before and after, and backs itself out if a check fails. The reasons behind a decision are written down next to the code, so the next person does not have to guess.
What the platform is built with
The work spans the whole stack, on servers we run ourselves.
Price engine
Rust on Tokio. Generates every tick of the synthetic indices and publishes them.
Trade engine
Go. Validates, prices and settles contracts, once each, against archived ticks.
API
Python with FastAPI and SQLAlchemy. Accounts, wallets, the ledger and reports.
Realtime gateway
Node.js. Streams ticks, balances and contract updates over websockets.
Web and phone
Next.js and TypeScript, with charts drawn from the live tick stream.
Data
PostgreSQL as the source of truth, Redis Streams for moving events between services.
Open roles
None listed right now. We would rather say so than keep a page of adverts that never close.
Send us your CV anyway
Email support@tradenexapp.com with Careers in the subject line: a CV or a link to work you have done, and which part of the platform you would want to work on.
See how it is built
Five specific claims about the platform, each with a way to check it yourself.
