EduChat
Polish students between 10 and 18 have three options outside the classroom: a paid private tutor at 80–150 PLN/hour, a generic chatbot that doesn't know what's on Tuesday's 8th-grade exit exam, or nothing. None of them tracks what the student already knows. None of them speaks the same data to the teacher, the parent, and the principal in the same product. The four roles that decide whether a kid actually learns are sold four different products.
Single-application, four-role architecture (student / teacher / parent / principal), one data layer with role-based access. Flask 3 + MySQL, no ORM — direct SQL on the bet that a small team is faster diagnosing a query than learning an ORM's edge cases. Hybrid auth so the Flutter iOS app and the web client share endpoints. Every subject has a JSON prompt configuration keyed to the Polish national curriculum, with separate files for the extended matura track across 13 subjects. Cost engineering became its own subsystem — six layers (model tiering, cross-student content cache, batch generation, prompt caching, plan-based limits, lazy node generation) — to drive AI cost to ≤$0.06 per 20-node course at the school tier. Without it, the unit economics didn't work.
About five thousand kilometers driven across Poland between September 2024 and February 2026, meeting over a hundred principals, heads of education, and mayors. Two hundred hours teaching Wodzisław Śląski fifth-graders, part volunteer, part paid — the product feedback came from the same room as the product. The Uniwersytet Śląski partnership opened on the same stage where the Silesian head of education was handing me a Prime Minister's scholarship; I told her I ran an education company; we met later. The Polish K-12 market doesn't take nineteen-year-olds seriously by default. The year between the workshops and the partnerships is what made nineteen-year-olds plausible to it.
answered. student wasn't asked to think.
asked back. student got there alone.
The EduSciezka adaptive engine — Bayesian mastery update per topic, an Ebbinghaus forgetting-curve readiness predictor, and a six-rule path recalculation engine that watches each student's signals and, when a test is on the calendar, inserts reinforcement before the curve takes over. Plus the lesson-account mechanism: accounts that exist for a single class period, so a teacher running EduChat live in lesson doesn't have to provision permanent students.
AIDA
A foresight tool for Polish MFA analysts — thousands of pages of sources (RSS, GDELT, Polish-language NLP) distilled into four traceable scenarios with chain-of-thought citations for ~$0.10 per run. Every conclusion clicks back to the document it came from. Built for the analyst who can't say 'AI said so' to a director.

- 2025.12won HackNation · MSZ Scenariusze Jutra
- 2025.12live on Hugging Face Spaces · day-one
- 2026.03private cabinet · Radosław Sikorski + 3 ministry officials
- 2026v2 in development for ministry deployment
A Polish MFA analyst preparing a position paper has hours, not days. Source material runs to thousands of pages — government statements, think-tank reports, GDELT-indexed news in 65 languages, market data. Standard tools either summarise without showing their work or hand back something the analyst can't defend in front of a director. 'AI said so' is not an answer to 'where did this conclusion come from?' The MSZ hackathon brief made the constraints explicit: explainability and resistance to data poisoning, both non-negotiable.
Five-phase pipeline — discovery → scraping → extraction → aggregation → synthesis — with the LLM touched once, at the end, against an ~8K-character payload of pre-weighted facts. Discovery layers RSS over a curated 85-source whitelist on top of GDELT keyword queries across 113 domains. Extraction is local: spaCy + regex + FAISS over multilingual-e5-large embeddings. Hierarchical bottom-up summarisation keeps the LLM payload constant whether the corpus is fifty million words or five billion. ~$0.10 per analysis, regardless of input size. Every scenario is a chain of FAKT → MECHANIZM → SKUTEK → WNIOSEK steps with numbered citations back to source. The chain exists in the data, not in the model — explainability is a structure, not a UI feature. Anti-poisoning runs four layers: triangulation (≥3 independent sources from ≥2 categories), anomaly detection, consistency checks, dynamic source-trust scoring with state-controlled domains penalised. What this gives an analyst: any conclusion clicks back to the documents it came from.
The hackathon weekend: twenty-four hours straight, except a 1:30 a.m. run around Bydgoszcz with Dawid and a 7:30 a.m. break in a massage chair. Final pitch in front of an MSZ panel, fifty-five hours into the streak; some of what I said made sense, some of it didn't. Won. Deputy PM Radosław Sikorski handed the award. Five-hour drive home, sixty-seven hours awake. Five hours of sleep, then 8 a.m. EduChat lessons in Wodzisław Śląski with fifth-graders — forming complete sentences took noticeable effort; the kids were patient. Three months later, the protocol the ministry reserves for foreign ministers and heads of state: a private cabinet next to Sikorski's office, three high-ranking officials, a continuation conversation. v2 is what's being built now.
POLAND
Geopolitical Foresight Analysis
Comprehensive scenario analysis for the Republic of Poland
Generated: 02.04.2026, 12:50
Classification: RESTRICTED — For official use only
Analysis Summary
Total processing time: 1416.6 seconds
2. Strategic Scenarios
2.1 Short-term Horizon (3 Months)
Prolonged Strait of Hormuz blockade — escalating energy and fertiliser costs, with limited direct supply impact
Over the next three months, the most likely scenario is one in which the Persian Gulf conflict is not resolved and the Strait of Hormuz remains partially or fully blocked to tanker traffic. The probability of a ceasefire without prior unblocking of the Strait is estimated at 15–20%, as the parties to the conflict are using the blockade as their primary negotiating leverage.
Reasoning path from historical facts to scenario prediction:
- FACT
+: The EU imports only 6% of its oil from the Middle East, but 80% of Qatari LNG goes to Asia; QatarEnergy has suspended exports.
- MECHANISM
Asian consumers (China, Japan, South Korea) will compete for Norwegian and American LNG supplies that currently flow to Europe, raising prices on the global spot market.
- EFFECT
Gas prices in Poland will rise 25–40% over 8–12 weeks despite no direct dependency on Gulf supplies, hitting households and energy-intensive industries (metallurgy, chemicals).
- FACT
++: Tanker traffic through Hormuz fell 90%, blocking 30% of global fertiliser trade; demand will rise in the planting season and production costs may double.
- MECHANISM
Poland's agricultural sector — dependent on nitrogen fertilisers (urea, ammonia) — will see cost increases of 30–50% in Q2–Q3 2025, which will translate into food prices.
- EFFECT
Food inflation in Poland may reach 8–12% YoY in Q3 2025, hitting household budgets and increasing social pressure on the government.
- FACT
: Helium prices have doubled, and Taiwan sources 70% of its helium from the Gulf.
- MECHANISM
The helium shortage will impact chip production (helium cools electromagnets in lithography), causing 4–8 week delays in semiconductor supply to Europe.
- EFFECT
Poland's IT/BPO, gaming, and automotive (electronic components) sectors will experience supply-chain disruptions, potentially delaying digitisation projects and EV production.
Blo
A Flutter app for EU savers — plan and compare term deposits across all 27 countries, with real-return math that pairs each nominal rate with its country's inflation. No bank-account integration; no PSD2 surface; ships now. Built around the 2026–2027 regulatory window: EUDI Wallet, PSD3, and FIDA collapse the cost of real cross-border integration. The planning-layer takes the trust position before the integration layer matters.

- 2024.11.01concept · day 1 · Econverse V4, Prague
- 2024won the Prague stage · Marek Ditz signs on as mentor
- 2025.11.25Flutter rewrite · 16k LOC across two days
- 2026MVP · awaiting EUDI / PSD-3 / FIDA
EU treaty law promises a single market for capital, but in practice savings rates remain trapped behind national banking apps and national-language interfaces. A Polish saver who notices that a Spanish or Luxembourgish bank pays meaningfully more on a fixed deposit hits a wall: the bank's signup is in Spanish or French, comparison sites (Raisin, deposit-solutions, the national portals) terminate at a referral link, and any portfolio view has to be reconstructed by hand in a spreadsheet across multiple currencies and inflation regimes. Nobody is doing the planning layer — the part where a user models a portfolio across countries, with inflation and FX baked in, before committing to opening anything.
Two product calls separate Blo from everything else in the space. First: simulate first, commit later. The MVP doesn't connect to any real bank. Users hand-enter accounts as 'Planned,' 'Active,' or 'Matured.' Removing the integration layer collapses the regulatory surface and lets the actual product (cross-border comparison + portfolio math + maturity calendar) ship in days rather than months. Second: real-return-first analytics. Every nominal rate is paired with the country's inflation, so a 5.75% PLN deposit and a 2.98% EUR deposit are compared on the axis that matters. Stack: Flutter 3.10, Provider for state, sqflite for local SQLite, ECB Data Portal API for live key rates, six ChangeNotifier providers above a DAO/SQLite layer. Local-first, no backend. The compound-interest projection runs on-device in `UserAccount` so portfolio totals, projected values, and per-account interest derive from one source of truth.
Day 1 of Blo was the same day the Harvard admissions decision arrived (rejection). The concept came together at Econverse V4 in Prague, where Marek Ditz signed on as mentor and stayed. We won the Prague stage, then the Lodz finals; the first version on the App Store was Swift, written by Dawid; I rewrote the whole stack in Flutter — sixteen thousand lines across two days, November 24–25, 2025. The planning layer is shipped. The integration layer waits on EUDI Wallet (mandated 2026), PSD3 (2026–2027), and FIDA (2027) — the regulatory window that collapses the cost of real cross-border bank integration. The bet is the calendar, not the pivot.
ManagAI
An AI advisor for Polish managers — 145 specialized tools across 12 management domains, structured-output forms for the artifact a manager actually needs (script, RACI, mediation playbook, KP-correct incident note), and labor-law accuracy on Kodeks Pracy article numbers. Twenty-five years of one consultant's playbook compiled into the chat surface.

Polish managers facing daily problems — a difficult conversation about lateness, a suspected mobbing case, a budget cut to communicate, a hybrid team losing cohesion — have three options today, all bad: generic AI that hallucinates Kodeks Pracy article numbers; HR consultants at 800–2,000 PLN per session, days to schedule; or 90 minutes of PDF-from-Google methodology hunting. None of them produce a printable script with structured output. The harder problem under the surface: a manager who is overwhelmed doesn't know they need the Eisenhower Matrix; generic chat answers the question that was asked, not the one that should have been.
Single Flask app. Each of 145 tools is a Python class with a server-side ui_schema across 35 reusable components rendered identically on web and Flutter. The agentic loop streams Claude Sonnet 4.5, intercepts tool_use events, executes server-side, sends tool_result back, re-streams in a single user turn. Tool routing at scale: hybrid retrieval — cosine + BM25 over the tool descriptions themselves, with negative-signal blocks ('DO NOT USE WHEN…') stripped before vectorisation, since cosine has no concept of negation. Then a Claude Haiku re-rank top-10 → top-3, dynamic injection into the conversation's tool set with LRU eviction at 15. Token cost per turn dropped from ~25k (naive 'send all tools') to 700–2,800 — a 10–22× reduction at ~50–150ms added latency. Module 17, 'Prawne ABC menedżera', is the moat: generic Claude hallucinates KP article numbers; ManagAI doesn't.
Cezary had twenty-five years of management consulting and a thesis. I had the stack and the conviction the thesis was buildable. Three months and ten days from first commit to 145 tools. Single contributor in the git log; mobile (Flutter) and web shipped in parallel. The legal-tone calibration is the model learning by contrast — the system prompt holds both wrong versions, labeled, alongside the correct one. The wrong versions cost two iterations to find: a STOP-emergency mode managers rejected as alarming, and a therapy-speak version they rejected as performance. Reading actual transcripts out loud is what surfaced both.
Assistron
A software house in Wodzisław Śląski — AI integrations, ERP systems, voice assistants, and e-commerce automation. Bootstrapped from outside the Warsaw / Kraków corridor; legal-entity, code-warranty, VAT-invoice B2B.

Polish SMBs need software they actually own — bespoke ERPs, mobile apps, AI integrations — but SAP and Comarch are expensive and wrong-sized for the specific operational realities of, say, a paint shop or a service business. The Polish enterprise-IT default is corporate consultancy with three layers between the buyer and whoever is writing code.
Two of the most useful client builds — an automotive-industry ERP with bidirectional WooCommerce sync (orders, products, customers, stock — replacing manual Excel transcription with a mobile app for production-floor workers) and an AI voice assistant on FreePBX/Asterisk with sub-2-second streaming response and per-caller memory keyed to phone number, capable of inbound and outbound calls. EduChat is one of Assistron's products; covered above.
Origin: Econverse 2023 in Wrocław. Five-person student team, project called ZwrotMatch, won the eliminations, lost the finals. The team of five didn't survive the competition; Kuba and I kept the working relationship. Voicebots were one of the unbuilt ideas from the brainstorm; we started building them after. That's the seed. The rest: a software house run from Wodzisław Śląski, ~50k population, a region better known for coal mining than for AI agencies. VAT-invoice, code-warranty contracts mean carrying every piece of the compliance overhead a Polish sp. z o.o. requires.
good morning, I'm calling about a warranty claim from my March order.
good morning, Mr. Marek — I can see your prior ticket. please share the order number.
streaming · phone-keyed memory · response in 1.8 s.
Ocena Pracy Nauczyciela
A spin-off of EduChat. Annual teacher-evaluation paperwork drafted in ten minutes per teacher instead of multi-hour write-ups. Teacher names never reach the database. The AI writes documentation; the principal still does the evaluating.

Polish school principals are required by the Karta Nauczyciela and a MEN regulation to produce a written evaluation for every teacher. The grading itself is fast — a principal already knows their staff. The slow part is the paperwork: twelve numbered criteria, each needing formal multi-sentence justification, the right grade band selected (`wyróżniająca` / `bardzo dobra` / `dobra` / `negatywna`), supporting opinions attached. Twenty-plus hours per cycle, per principal — a week behind a desk. On top of that, MEN published a new regulation in 2025 that took effect on November 27th — the structure changed from eleven criteria to twelve, the points scale changed, existing templates and habits don't carry over.
Two product calls the existing tooling didn't make. First: don't ask the LLM to evaluate the teacher. Ask it to write the paperwork. The principal supplies observations and a target grade; the model's job is formal Polish prose against the criterion structure, not judgment. The system prompt tells the model that most teachers are competent and to default to 'bardzo dobra' (75–85%) unless the principal volunteers a problem. Second: keep teacher names out of the database entirely. Names live in browser localStorage keyed by UUID; the server stores only the UUID, the score JSON, and the documentation text. The LLM call sees observations, never an identified person — a concrete RODO answer instead of a privacy-policy paragraph. Stack: Flask 3, MySQL in prod / SQLite in dev, OpenAI GPT-4o with Anthropic fallback, WeasyPrint for PDF, Alpine.js on the conversation page.
A complete product, shipped by one engineer in three weeks against a non-negotiable November 27, 2025 regulatory deadline that the existing templates didn't carry across. Distributed free to several principals through their first cycle.
20 hours → 2 hours per evaluation.
Names never reach the LLM. Architecture, not promise.
A generative-AI product whose system prompt actively dampens the model's tendency to reason. The model is forbidden from forming opinions about the teacher; it's constrained to a single deliverable — formal Polish bureaucratic prose, minimum three sentences per criterion, padded with educational jargon when the principal's input is thin. The judgment stays human; the LLM writes the cover.
That's the work.
More is coming.
There's more on the desk. Atlas is the globe — every flight, every city. Stages is the three I didn't see coming. And more I haven't pointed at yet.
