SoftMax
Available · Poland · 24h

Systems that survive production.
With AI inside.

An engineering studio. Two pillars: complex real-time backend systems — experience at ~20M requests per second at 10–80 ms latency — and AI built into your product: chat, knowledge retrieval and agents on official SDKs, with cost limits and measured quality.

requests per second
~20M
RTB systems, 10–80 ms latency, 24/7
years at RTB House
5+
real-time bidding, billions of auctions daily
UW degrees
3
MSc CS + JSIM: BSc Math + BSc CS
Bronze Medal 2014
IPhO
International Physics Olympiad
Microsoft · Teams · Prague Math Olympiad Laureate 2015 Informatics Olympiad Finalist 2015 Java · Kafka · GCP · Aerospike B2B invoice · KSeF Built in Poland

// facts from the CV — verifiable

What we build

Two pillars. First: complex backend systems — distributed, low-latency, running 24/7. Second: AI built into the product — chat, knowledge retrieval, MCP servers and agent systems on official provider SDKs, under cost limits and with measured quality.

Pillar 01 · Complex backend systems

Distributed systems & throughput

Real-time services under real load — designed for scale.

  • RTB-grade experience: ~20M requests per second, 10–80 ms latency, 24/7
  • Low-latency processing and performance optimisation
  • Streams and queues: Kafka — event flows designed schema-first

// scale from practice, not a slide — billions of auctions daily in AdTech.

Backend architecture & data

A backend you can grow: clear service boundaries and deliberate data.

  • Java/Spring in production for years; Python where it fits
  • A data layer per task: PostgreSQL, BigQuery, Aerospike, Redis
  • Integrations and zero-downtime migrations — API contracts, versioning, backward compatibility

// architecture and scalability are the day job, not a brochure line.

Reliability & production

Systems that survive traffic — and can be diagnosed.

  • Observability and production debugging — metrics through incident analysis
  • Payments and invoicing: Stripe, KSeF
  • Security: encryption, audit trails, GDPR in the architecture

// reliability, observability and production debugging — the areas we work in daily.

Pillar 02 · AI in your product

Chat & assistants in your product

An assistant that knows your product — from prototype to production with cost limits.

  • Integrations on official SDKs: Claude, Gemini, OpenAI — with tool use and streamed responses
  • Multi-tenant systems with token-cost limits — per user, per tier and globally
  • Personal data under control: minimisation and pseudonymisation before anything reaches the model

// model cost and response time get a budget — just like every request in the backend.

Company knowledge & retrieval

Answers grounded in your documents — with the source cited, not the model's memory.

  • RAG and GraphRAG: entity and relation schema, hybrid retrieval — vectors plus keywords
  • A store per task: Neo4j, Qdrant, PostgreSQL with pgvector
  • MCP servers with access control — company tools and data available to the AI assistant

// no source = "I don't know". Retrieval quality is measured on control questions.

Agents & evaluation

Process automation that doesn't guess — behind contracts and quality gates.

  • Agent architectures behind JSON contracts — every step validated
  • Prompt and model evaluation on numeric measures, not vibes
  • A human in the loop wherever a decision has consequences

// a prompt change goes through regression tests like any code change.

Every line: custom work after a consultation. Discovery call — 30 minutes, free.

Write to us

How we design

Every request has a time budget. We split it before any code exists.

In real-time systems a late answer is worth as much as no answer. So we divide the latency budget into stages up front — and hold it by measuring the tail of the distribution, not the average.

FIG. 01 · LATENCY BUDGET

example budget · illustrative numbers

network & parsing 8 ms
state read from cache 14 ms
logic & scoring 28 ms
response serialisation 6 ms
headroom for the tail 24 ms
Σ 80 ms

↳ off the critical path: event write to Kafka (asynchronous)

FIG. 02 · THE SAME DISCIPLINE IN AI

Token cost and model response time get a limit too — nested.

Going over = a clear message for the user, not a surprise invoice at the end of the month.

global limit the whole application
tier limit e.g. the Business plan
user limit one person, one day

A budget per stage

Every stage has its own limit. An overrun shows up in the metrics at once, not in customer tickets.

A critical path that never waits

Event writes go asynchronous, reads come from cache (Redis, Aerospike).

A deadline, not a wait

Past the deadline we answer with a default variant. Degrade, never fail.

We measure the tail

p99 and p99.9 from production — not an average from a laptop benchmark.

// ~20M requests/s · 10–80 ms · 24/7 — the scale this discipline comes from.

How we work

Production from day one

We don't start with throwaway MVPs. We start with what's going to production — so the quality is there in version one, not version five.

  1. 01

    Test before code

    More test code than production code. BDD for user flows, real external APIs in tests over mocks wherever possible. No tests, no deploy.

  2. 02

    Transparency over promises

    You get the repository, the docs and a record of architecture decisions — not a closed box. Anyone can do the code review.

  3. 03

    Audit-ready always

    GDPR, KMS for sensitive data, immutable audit trails, versioned ToS. Ready for any regulator audit at any moment.

  4. 04

    Distributed by default

    ShedLock crons, Redis sliding windows, dual-layer rate limiting, optimistic + pessimistic locking. Scalability isn't an add-on.

  5. 05

    Zero attack window

    Immutable deploys, SHA-256 verification, auto-rollback on health-check failure. No attack window on production.

Technologies

The tools we work in daily. Always chosen for the task — never the other way round.

Backend
JavaSpringKafkaPython
Data
PostgreSQLBigQueryAerospikeRedis
AI
Claude SDKGemini SDKOpenAI SDKMCPRAG / GraphRAG
Graphs & vectors
Neo4jQdrantpgvector
Cloud & tooling
GCPDockerLinux
Frontend
TypeScriptAngularAstro
Payments
StripeKSeF
We take small projects

Most software shops reject small projects.

Because small = lower margin on their infrastructure: project managers, stand-ups, offices, account managers. We have no infrastructure. We have code.

01 1-day audit

Code review, security check, performance audit. Concrete document at the end.

02 2-week spike

Proof of concept, integration, MVP feature. Working code in two weeks.

03 Full project

Discovery → fixed scope, fixed price → delivery. No T&M creep.

You pick the scope. We tell you what it costs.

Write to us — intro call (30 min, free) →
Compliance & standards

GDPR & compliance — default, not a line item

Every project we ship to production is regulator-audit-ready. Not retrofitted. From commit one.

Consent chain (GDPR)

Versioned consent chain with versioned ToS, withdrawal audit in a single SQL query. Aligned with UODO 2024 guidance.

Right to be forgotten

GDPR Art. 17. Sensitive data KMS-encrypted — deleting the key revokes access. 30-day execution.

Versioned Terms of Service

Every ToS version pinned to the user account. Dispute = show consent on day X. No retroactivity.

KSeF — 2026 ready

Fakturownia → KSeF ready from the mandate start (2026). Idempotent queue, exponential backoff retries.

Regulator audit? 24h to prepare. Immutable, signed audit trail kept for 6 years.

Lead Engineer

Who writes the code

Filip Plata — Lead Engineer, SoftMax
Filip Plata · Lead Engineer

Distributed Systems / Software Engineer. 5+ years at RTB House — systems processing ~20M bid requests per second at 10–80 ms latency, 24/7. Previously Microsoft (Prague, Teams — the follow-up-meeting feature), 9livesdata, Samsung. Stack: Java, Kafka, Python, GCP, BigQuery, PostgreSQL, Aerospike. Three University of Warsaw degrees: MSc Computer Science and JSIM — a selective MIMUW track open only to olympiad finalists and laureates (BSc Math + BSc CS in 4 years, GPA 4.63/5 with honors). Bronze Medal at IPhO 2014, Laureate of the Polish Mathematics Olympiad 2015 (16th in Poland), Finalist of the Polish Informatics Olympiad 2015.

„I don't build things I wouldn't run in an environment where everything breaks."
IPhO 2014
Bronze Medal · physics
Math Olympiad
Laureate · 16th place
JSIM · UW
olympiad-only track
5+ lat
RTB House · Real-time bidding
Microsoft
Teams · Prague
OI 2015
Finalist · informatics

Questions we get

Do you take small projects?
Yes. We start at any reasonable scope, including 1-day audits and 2-week spikes.
How do I know you can deliver?
Start with a small, paid scope: a 1-day audit or a 2-week spike. You get a concrete document or working code — and you know how we work before committing to anything bigger. The experience (RTB House, Microsoft) is verifiable on LinkedIn.
Do you build AI features?
Yes — it's the second pillar: chat and assistants on official SDKs (Claude, Gemini, OpenAI), company-knowledge retrieval (RAG, GraphRAG), MCP servers with access control, and agent systems with evaluation. It starts with a free consultation.
How does an engagement work?
It starts with a free intro call (30 minutes). Then a fixed scope at a fixed price — or a retainer: a reserved 80, 120 or 160 hours a month for products that live past launch.
What stack?
Java/Spring, Kafka and Python are home turf; TypeScript and Angular on the frontend. We've also shipped Node, React, Go and infrastructure. Good engineers learn a stack in a week.
Poland, Europe, worldwide?
All of the above. B2B invoicing in PLN, EUR, or USD. KSeF for Polish entities.
Response time?
Initial response within 24 working hours. Discovery call within a week.
NDA?
Yes, we sign them. With the client we work in full transparency by default — the repository, the docs and the decisions are yours.

Ready to build something that works?

An intro call — 30 minutes, free. We arrange it over e-mail: write a few sentences about the project and we reply within 24 business hours with proposed times.

E-mail template
To: softmax.contact@gmail.com
Subject: Intro call — [company name]

Hello,

we would like to talk about: [e.g. a backend system / an AI chat in our app / a code audit]

A few sentences about the need: [...]
Convenient times: [e.g. Tue–Thu, 10:00–14:00]

[name, company]