Mateusz Worotyński Fractional CTO & product consultant · Kraków, Poland · EN / PL
Fractional CTO & CPO for early-stage and growing startups

I help founders make the calls that get expensive later.

Product, architecture and scaling decisions are cheap to get right at the start and expensive to unwind a year in. I made them under load — a platform at a billion events a day, a team of fifteen, an acquisition — and now I sit in the room when a startup has to make one.

Everything below is the same work read two ways: one column is the business, the other is the technology. Most calls need both.

Senior product & technology advice at a startup-friendly 175 PLN/hour.

Book a 30-minute call Write on WhatsApp Where startups call me in ↓
1B+ events a day on a platform I architected
200+ enterprise customers on it
15 engineers hired, led and mentored
Exit PushPushGo acquired by Vercom S.A., 2021

Developer, then CPO, then CTO of the company I co-founded. The advice on scaling, architecture and product decisions comes from building and running the thing — not from consulting alone.

The three reasons startups hire me

the doorway, not a menu
01 · technology leadership

Fractional CTO

When you need CTO-level thinking, not a full-time hire. I take the decisions you would hire a CTO for — architecture, hiring and the technical bar, build-versus-buy, vendor and cloud choices, the technical side of a raise or an acquisition — one to four days a month.

Fractional CTO page
02 · second opinion

Architecture & technical review

When the architecture, the scaling or the technical debt needs an outside read. Two to three weeks: what breaks first at 10×, what the debt costs you in weeks per month, which risks are real, and a prioritised plan your engineers can start on the following Monday.

How an engagement runs
03 · product decisions

Product & business strategy

When the roadmap, the pricing or the priorities need a decision rather than another workshop. What to build, what to kill, what it costs and who it is for — prioritised against revenue, with the trade-offs written down.

Product consulting page
Track 01

Product & business

Strategy, pricing, market and the product organisation.

Technology track ↓
Track 02

Technology & architecture

Systems, delivery, scale and the engineers who run them.

Business track ↑

Where startups call me in

Business
Technology

Everything else I help with

Business
Pricing & monetisation
Tiers, the value metric behind them, commission and freemium models, margin per segment.
Go-to-market & positioning
Who it is for, what it replaces, the sentence that makes it obvious, channels that fit the price.
Product strategy & roadmap
Row 03 kept running month to month instead of as a single decision.
Technology
Technical due diligence
Code, infrastructure and delivery process for investors, acquirers and boards.
Engineering leadership
Hiring and the technical bar, process, code review, release cadence, mentoring a first tech lead.
Architecture & scaling review
Row 02 run as a rolling review instead of a one-off engagement.

Track record

Business MarTech · exit, 2021

PushPushGo

From a side project to the leading push-notification platform in Poland: two hundred enterprise clients including TUI, POLITICO, Auchan, Hearst and Interia, a team of fifteen, and a majority acquisition by WSE-listed Vercom S.A. Co-founder, then CPO, then CTO.

  • 200+enterprise clients
  • 15engineers hired and led
  • ~70%stake acquired by Vercom S.A., 2021
Technology Event-driven · high throughput

PushPushGo

Multi-channel delivery platform: event ingest, fan-out, queueing and delivery for web and mobile push, on bare metal and cloud, with a data warehouse over the top and SDKs and APIs for customers — then inside a listed group after the acquisition, with the security and compliance reporting that comes with it.

  • 1B+events a day
  • 5push channels from one platform
  • 13 Gbpspeak egress on the image CDN

stack · mongodb · rabbitmq · typescript · bare metal + cloud

Business FinTech · beta, going to market

GetViaMsg

57% of readers leave when they hit a paywall. One SMS is the whole sign-up and the whole payment: the phone number is the identity, commitments gathered across a session settle into one bill, and the publisher pays commission on volume instead of a fee per transaction. Co-founder and CTO.

  • 10%default commission on volume, capped under 20%
  • SMSis the identity and the consent — no sign-up
  • 1settlement per session, paid by transfer
Technology Session-based payments · DORA

GetViaMsg

Three independent backends implement the same domain model — a Go event-sourced reference, a single-process Deno/SQLite build for small installs, and a Cloudflare Workers variant — wrapped by a TypeScript SDK and overlay, a WordPress plugin, an SMS router and analytics. Operator webhooks, idempotent accounting and DORA-aligned controls throughout.

  • 3backends, one domain model
  • npm + WPclient layers: SDK, plugin, edge router
  • 2SMS operators integrated

stack · go · kurrentdb · event sourcing · deno · sqlite · cloudflare workers · terraform · nomad

Research & development — WDFT, co-owned

Business

Federated Payment Standard

Card fees make small payments uneconomical: roughly 0.25 PLN plus 1–3% per transaction, so nothing below a few PLN is worth selling online. This standard takes no percentage at all — a flat fee per package of transactions, designed at 5 USD per 1,000, which brings the cost of a payment close to that of an Elixir transfer.

Technology Concept · spec and bank sandbox

Federated Payment Standard

An open standard that uses the banks' existing rails and mobile apps — deep links and QR codes — instead of building another payment network. Four parts: a registry holding the bank directory, the webhook verification keys, an API and the mobile-app manifests; an SDK that generates payment links and verifies signatures; banks and providers that execute and notify; the implementor that creates the link and receives the webhooks.

sdk · flutter · dart · kotlin · swift · typescript

Business

Session-Based Payments

Instead of one subscription or nothing, a reader commits around 0.50 PLN per article inside a session and settles it with a single transfer later — which monetises the readers who would never subscribe.

Technology

Session-Based Payments

Short-lived sessions with small commitments, aggregated into a single settlement and paid out to partners. Four roles — user, operator, partner, bank — and a settlement step that has to stay idempotent.

status · runs in production as GetViaMsg

What I run today

Business MedTech · live, paying customers

Terapeuto

Scheduling, records, billing and waitlists in one system for therapy centres — with every booking arriving on the clinic's own domain instead of a marketplace that takes the patient and the commission. Founder, CTO and CPO.

  • 0%commission per booking
  • 1install, many clinics, roles per person
  • 30 daysempty repo to working prototype
Technology Multi-tenant · encrypted records

Terapeuto

Multi-tenant practice management under medical-data rules: schedules built from reusable slots, a four-level pricing engine (clinic, branch, therapist, patient), and notes, ID numbers and patient files sealed with a key per patient — delete the key and that patient's records are unreadable. One container runs the app, replicates SQLite to S3 and drives the daily cron.

  • Per patientencryption keys — destroy one and that record is gone
  • Auditedevery write logged in the same transaction
  • RPO 30 spoint-in-time recovery, restore path tested daily

stack · python · sqlite · litestream · fly.io · docker

Business AI · live, paying customers

uff.email

An assistant you hire by giving it a name: forward it the work you hate and the answer comes back in the same thread. No app, no onboarding, no card to start. Founder, CTO and CPO.

  • 4.99USD a month per assistant, 14.99 PLN
  • 30 daysfree trial, then monthly by transfer
  • 1address and one memory, no tiers
Technology Agentic · knowledge graph

uff.email

Self-hosted, email-native agent: mail lands in a filesystem queue, a scheduler runs reminders and background work, and the memory is a knowledge graph of people, companies, documents and events — YAML, JSONL and Markdown on a per-assistant encrypted volume, with no database in the stack at all.

  • Isolatedits own container and encrypted volume per assistant
  • 10 weeksempty repo to production, one author
  • Hard capon model spend per assistant

stack · python · docker · ansible · mailu · filesystem state · openrouter

Business Local media · AI newsroom · no-person company experiment

Krazeta

A daily Kraków newspaper whose editorial team is AI: a new edition every day, city chronicle, business, sport, weather, an audio version. Founder.

  • Dailya closed edition every morning since July 2026
  • 1sponsor per edition — no ad network, no tracking
  • No paywallreading is free; the sponsor pays
Technology Pipeline · agents · AI experiment: cost optimisation

Krazeta

Agents collect sources, draft, section and publish the daily issue from Conductor workflows, with model calls routed through OpenRouter. No database and no CMS: every article and every piece of state is a Markdown or YAML file in Git, so the whole editorial history is versioned and auditable. Audio edition generated per issue.

  • 8AI reporters working from 94 approved sources
  • ~$1model cost per edition — text, voice and images
  • Gitevery article and every state file, versioned

stack · python · conductor workflows · eleventy · markdown in git · openrouter

Business Publishing tech · PoC, in progress

ceemes.

A proof of concept for a modern CMS for publishers. I own the product, the technology and the delivery. Early days — the site is at ceemes.eu.

  • 1install = one newsroom, one SQLite file
  • 7.6 KBJavaScript on a published page
  • StaticHTML, no runtime CMS in front of the reader
Technology PoC · in progress

ceemes.

Static-first: pages are generated as static files with islands for interactivity, and every piece is pluggable. The editorial side is built for AI to drive it — an MCP server is exposed, so agents manage content directly. Published in the open as it is built.

  • Plugin-firstfeatures switched per site, no fork of the core
  • MCPexposed, so agents can drive the CMS
  • No app serverpages are files — nothing to run or patch

stack · typescript · hono · react 19 · vite · sqlite · drizzle · plugin-first

AI, two ways

Business

In practice

Most teams buy AI and then wonder where the value went. I help pick the two or three workflows where it pays for itself — and where it is a toy.

Technology

Actually deployed

Two of my own products are AI products, so this is operations, not theory.

On the record

3 recordings
Micro-payments in Poland FinTalks · Future Processing 36:49 From 5K to 500M notifications a day Scale versus quality at PushPushGo · OVH Experience 12:47 Entrepreneur of the Year Founder pitch · University of Warsaw 1:37

Compliance, folded into the work

not a separate service
regulation DORA readiness Operational resilience, controls and evidence — built into GetViaMsg from the first line of code.
risk NIS2 technology risk Assessment and technical measures, treated as engineering work rather than paperwork.
practices ISO 27001 practices Controls and evidence that survive an audit, kept where engineers actually work.
reviews Audits & vulnerabilities Security reviews, triage and fixes with the team that owns the code.

Off the clock

github.com/worotyns · 7 projects
llmact · typescript, deno LLM actors that live in Markdown files Define an actor, send it messages, ask it questions — and when it keeps making the same mistake, let it rewrite its own definition. Temperature 0, tools included, runs on a local model. publii plugin · javascript Mermaid diagrams in Publii Fenced code blocks in the Markdown editor, the code-sample dialog in the WYSIWYG one, light and dark, no build step. The one of these that other people actually run on their blogs. deno kv · fly.io Self-hosted Deno KV, with backups you hear about Continuous replication and a daily backup-integrity check that lands in your inbox. Written as an escape hatch when the managed platform said it was going away. content security policy · deno Fun with CSP A local server, a fake CDN and a violation reporter, so you can watch which directive actually stops an injected script. Built to explain CSP to a team without a slide deck. files as storage · typescript Atoms: persist and restore Two methods, and your objects are files you can read with jq instead of a database. The oldest idea on this page, and still the one I reach for first. small tool · typescript What to do next A task board where everyone gets one vote, the top task is the one you pick up, and only its author can close it. Built because prioritisation arguments are boring. click to call · javascript A widget that orders a callback A phone number in, a call back out: the whole backend lived with the telecom operator and I built the front. Made for Telecube as a barter deal, as a deliberate answer to CallPage. everything else · github A dozen more, mostly experiments Payment and SMS libraries from a decade of integrations work, and small tools built for one afternoon's curiosity. Nothing that needed a paragraph of its own.

Bring me the decision that is keeping you up.

Tell me what you are building, what it costs you today and what happens if it goes wrong. A thirty-minute call, then I come back with what I would do first, in writing. If I am not the right person, I will say so in the first reply.