Open to Staff and Senior Rust roles

I build backend systems in Rust, and the products around them.

I'm Wojciech Bator. I've been shipping backend software for ten years, the last four in production Rust. At G2A I work on marketplace pricing, recommendations and messaging.

Outside work I build CrowdRelay and AhojBus, and play guitar in Virya.

price simulation at G2A
60–70 → 15–30 ms
bounded RabbitMQ workers
~40k msg/s
Redis latency in production
~2× lower

Experience

I usually own a system end to end: profiling, design, the code, the rollout and supporting it in production.

  1. G2A · Senior Backend Engineer

    2022 – now

    Marketplace pricing, recommendations and messaging under production traffic. Rust services, Redis data models, RabbitMQ and Kafka, Kubernetes.

  2. Vizlib · Backend Engineer

    2021 – 2022

    Designed and built the query engine of a BI product that runs against data warehouses. Go, NATS, Snowflake.

  3. Neurosys · Backend Engineer

    2019 – 2021

    Event-driven services for an IoT smart-home platform and a hub connecting several content and QA systems.

  4. SIENN · Mitron · Software Engineer

    2015 – 2019

    Scheduling systems and integrations, and monitoring tools for railway and metro operators in Latvia, Helsinki and Mexico.

Selected results

60–70 → 15–30 ms
Price simulation path at G2A, after profiling the whole call chain and cutting requests.
~40% faster
Cart loading, after moving recommendations and bundles into a Rust service.
~40k msg/s
Bounded RabbitMQ worker model with backpressure and clean shutdown. Write-up
~2× lower
Redis latency, from thinner records, pipelining and fewer round-trips. Write-up

Tools I use most

  • Rust
  • Tokio
  • Axum
  • SQLx
  • PostgreSQL
  • Redis
  • RabbitMQ
  • Kafka
  • Go
  • TypeScript
  • Kubernetes
  • AWS

How I work

  • Fix the shared layer, not just my service

    Our shared, schema-generated RabbitMQ client sits under the messaging services, so I rewrote it from Actix actors to plain Tokio rather than patching around it in one place. In messaging-heavy workloads consumer throughput rose about 20%, producer throughput 2–3× and memory fell 30–40%, and the recurring messaging alerts stopped.

    The write-up
  • Measure first, then change

    Before touching the price simulation path I profiled the whole call chain; the fix was fewer requests, not a faster language. 60–70 ms became 15–30 ms. The same habit showed that Redis itself was not slow; we were storing and asking for too much.

    The write-up
  • Design for the bad day

    Backpressure, idempotency, outboxes and graceful shutdown go in at the start, not after the first incident. In CrowdRelay every command commits its business rows, idempotency result and outbox event in one transaction: a retried request gets the original result back, and delivery to providers is at-least-once with consumers that deduplicate.

    The write-up

Ask my CV

Answered by an AI model from my CV. It can be wrong.

What I'm building

Two products I build and run on my own, from the database schema to the landing page.

CrowdRelay

Live · 14-day free trial

Most tools give artists a dashboard. This one does the work.

CrowdRelay keeps every fan an artist has met in one record per person, decides what is worth doing next and does it, inside limits the artist sets. Every action is written down with the reason, and measured against a holdout group, so the artist learns what actually brought in fans. You approve each step or let it run.

  • Tickets with QR check-in, payments through Stripe
  • Referral draws anyone can verify afterwards
  • Push notifications, smart links and first-party referral tracking
  • Virya runs on it in production

AhojBus

Live · Poland

Rent a van or minibus without calling ten companies.

You say where, when and how many people. AhojBus checks real availability across rental operators and shows vehicles that are actually free, then handles the quote, booking, payment and paperwork. Operators get a fleet calendar, pricing rules and bookings in one place, and can hand leads they can’t serve to partners in the network.

  • Search returns free vehicles, not a list of rental companies
  • Double bookings are blocked by the database itself
  • Fleet import from a spreadsheet in minutes
  • Stripe and BLIK payments, contracts and Google Calendar sync
  • Rust
  • PostgreSQL
  • SolidJS

Selected writing

What I built, what broke and what I measured. Start with these: messaging, Redis and correctness under retries.

All posts

Music

Outside engineering I compose and play guitar in Virya and Refaktor, and release instrumental music under my own name. For Virya I also build the apps around the band.

  • Seed Of Doubt
  • Unmasked
  • Dualism
  • Entropy

Get in touch

Hiring for a Rust role, curious about CrowdRelay or AhojBus, or want to talk music? Send a message or email me directly. I read everything.

Have a project? See how I work with clients.

Based in
Wrocław, Poland · works remotely across Europe

Your details are only used to reply to you.

Loading…