Work
Engagements that show how the work is done.
Some projects are public by their nature, a national blockchain product, or a platform you can click. Others are described by sector, without names or identifying detail. That is the ordinary price of working inside organisations that do not publish their architectures, and I would rather pay it than work around it with hints.

Development banking, public sector
2017–2021
Replacing a core banking system is an organisational problem
How to run the largest technology transformation in a bank's history when the difficulty lies not in the new system but in the volume of parallel decisions and cross-team dependencies.
- IT organisation
- 300+ people
- Parallel project teams
- 10+
Described by sector, no organisation name and no identifying detail.

Pet food manufacturing, B2B private label
2026
Ten internal systems without ten separate stacks
How to build a dozen internal systems for a manufacturing plant and its sales operation without reaching the point where maintenance costs more than the build.
- Systems on shared infrastructure
- About 10, on a single VPS
- Supplier price list validation
- 8–12 h of manual work to ~5 min plus 15–30 min of review
Described by sector, no organisation name and no identifying detail.

National postal operator
2023–2024
A postage stamp on a blockchain, for a buyer with no wallet
How to issue a philatelic release with an on-chain counterpart without losing the regulated status of a postage stamp, and without requiring the buyer to understand crypto.
- Organisation size
- 80,000+ employees
- Product reach
- Nationwide

KNF-regulated fintech
2021–2022
A crowdfunding platform built from zero, under supervision
How to take a fintech platform from an empty repository to production in the cloud when supervisory requirements apply from day one rather than from the first audit.
- Starting point
- Zero to production
- Environment
- Azure cloud

Manufacturing group, HR and recruitment
2026
Recruitment software written around the audit that is coming
How to build AI-assisted hiring as a high-risk system under the EU AI Act, where the measure against a model inventing a qualification is a string containment check, and the list of behaviours the system must never exhibit was written before the list of features.
- Classification
- Annex III(4) high-risk, deployer obligations under Article 26
- Grounding
- Every evidence quote must be a literal substring of the parsed CV
Described by sector, no organisation name and no identifying detail.

Group of companies, finance and accounting
2026
Accounting automation in which the model never supplies a number
How to automate invoice handling for a group of companies under mandatory national e-invoicing, where every amount comes from the structured XML rather than from a model, and a database trigger rather than a policy prevents an unapproved posting.
- Numbers from AI
- None: every amount is read from the structured invoice XML
- Compliance gate
- Deterministic checks run before an invoice reaches a person
Described by sector, no organisation name and no identifying detail.

Food manufacturing, production planning and maintenance
2026
A production plan that can still be reproduced a year later
How to build planning and manufacturing operations on a constraint solver so that a scheduling decision taken months ago can be regenerated exactly, and so that the most dangerous defect in the system cannot pass with the tests green.
- Reproducibility
- Same canonical payload, seed and solver version give a byte-identical plan
- Solver inputs
- Every run persisted append-only, with immutability enforced in the database
Described by sector, no organisation name and no identifying detail.

Animal feed R&D and quality assurance
2026
Compliance verdicts a laboratory can defend in a certification audit
How to place a deterministic compliance core between feed regulation and an AI assistant, so that the assistant interprets, orchestrates and explains while the pass or fail comes from code that answers the same way every time.
- Verdicts
- Deterministic pass or fail, identical on every run
- Regulatory scope
- FEDIAF nutritional guidelines plus four EU instruments
Described by sector, no organisation name and no identifying detail.

Food manufacturing, maintenance and shop-floor data
2026
Replacing a maintenance system by building less of one
How to retire a standalone CMMS without rebuilding it, by treating the asset register, the shop-floor telemetry and the plant hierarchy that already existed as the foundation and constructing only the parts that were genuinely missing.
- Asset register
- 327 canonical machines with plant coding, criticality and condition
- Reused rather than rebuilt
- Register, OEE live, alarm wallboard, maintenance calendar
Described by sector, no organisation name and no identifying detail.

Own tooling, open source
2026
Architecture documentation that is not stale on the day it ships
How to make an architecture model and its governance leave machine-checkable evidence, instead of diagrams and meeting notes that nobody ever verifies.
- Lifecycle coverage
- 19 skills, define through maintain
- Output format
- ArchiMate 3.2 validated against XSD

Consumer e-commerce, pet care
2026
A storefront that shares a building with the back office but not a lock
How to run a customer-facing commerce platform beside a dozen internal systems on the same infrastructure, when the correct answer to sharing is different for the database, the identity provider and the network.
- Identity
- A dedicated provider and realm, deliberately separate from the internal one
- Network
- Isolated Docker network; the API never reaches the internal one
Described by sector, no organisation name and no identifying detail.

Own products, open source
2025–2026
Cryptographic-signature login without giving up the corporate IdP
How to accept Ethereum signature authentication while keeping the roles, MFA, audit trail and federation that an enterprise-grade identity provider gives you.
- Extension depth
- Custom SPI, not configuration
- Client side
- Published npm package (MIT)

E-commerce fulfilment, food manufacturing
2026
A packing engine that declines to report the savings it was hired to prove
How to choose shipping cartons from a validated three-dimensional arrangement instead of a volume comparison, and why the reports stop one step short of the financial claim everybody expected them to make.
- Benchmark
- 386 complete geometric plans from 400 orders, 544 parcels
- Validation
- Independent validator: collisions, support, transmitted load, mass
Described by sector, no organisation name and no identifying detail.

Manufacturing group, warehouse operations
2026
A warehouse system built for the second warehouse on the first day
How to start a WMS from a single module without acquiring the decisions that make the next three modules expensive, by treating location as an entity, warehouse as a dimension and the audit trail as something a database trigger enforces.
- Multi-warehouse
- Every business aggregate carries a warehouse reference from day one
- Location
- An entity of warehouse, zone and place, never a text field
Described by sector, no organisation name and no identifying detail.

Pet food manufacturing, B2B sales and distribution
2026
Field sales software that assumes there is no signal in the shop
How to build a sales force application for representatives working inside retail premises, where the hardest architectural question is not the feature set but which system owns the identity of a customer account.
- Offline first
- Local database with synchronisation, not a cached web view
- Account identity
- ERP contractor code paired with a CRM company reference
Described by sector, no organisation name and no identifying detail.

Manufacturing group, vehicle fleet
2026
A fleet register whose reminders do not give up
How to build vehicle administration around a notification that repeats until the reading actually arrives, and why the audit boundary was drawn to exclude the notification machinery on purpose.
- Mileage prompts
- Repeated until the driver supplies a reading
- Deadline scanning
- Thresholds at 30, 14 and 7 days before expiry
Described by sector, no organisation name and no identifying detail.

Pet food manufacturing, trade fairs and sampling
2026
An order that begins as a WhatsApp message and ends in the ERP
How to turn free-text requests for trade fair and sampling stock into ERP order lines, where every proposed product carries a confidence and a quoted fragment of the original message, and the catalogue is frozen at the moment of extraction.
- Entry point
- A message in natural language, no form to fill in
- Every proposal
- Carries a confidence score and a quoted fragment of the request
Described by sector, no organisation name and no identifying detail.

Pet food manufacturing, export and market expansion
2026
An export engine assembled almost entirely from systems that already existed
How to build market expansion tooling that reuses the model clients, the document storage, the signature service and the correspondence register belonging to three other internal systems, and adds only the part that was genuinely new.
- New infrastructure
- None: three existing systems supply the capabilities
- Operator interface
- A messaging conversation with an explicit dialogue state machine
Described by sector, no organisation name and no identifying detail.

E-commerce, multi-brand marketing
2026
One marketing automation for several brands, without a copy per brand
How to run content and campaign automation across multiple e-commerce brands from a single set of workflows parameterised by tenant, with an agent container per brand isolated behind a controlled interface.
- Workflows
- 19 automations parameterised by brand, not duplicated per brand
- Isolation
- Brand identifier as the data isolation key throughout
Described by sector, no organisation name and no identifying detail.

Manufacturing group, project delivery and CRM
2026
Building a project tool by deciding what it will never contain
How to replace a commercial project and CRM product with an internal module, when the decision that makes the build viable is the list of features deliberately excluded for good rather than postponed.
- Scope decision
- Benchmarked feature by feature against the incumbent product
- Permanently excluded
- Chat and absence management, with the reasons recorded
Described by sector, no organisation name and no identifying detail.

Consumer marketplace, pet care
2026
A design system where the review is performed by a script
How to run one component library across a web application and a native one, in two brands and two colour schemes, when the defects that matter most are invisible in any single screenshot and live in the relationship between two tokens.
- One shared library
- 62 domain areas used by both web and native
- Contrast gating
- Every ink and surface pair scored in four brand and scheme variants
Described by sector, no organisation name and no identifying detail.

Own products, open source
2026
A coach that cites its sources and refuses to invent the rest
How to build a domain engine whose every recommendation is traceable to published research, and which declines to compute the three numbers the market most wants, because the evidence does not support them.
- Traceability
- Every rule carries a source ID, ~60 sources
- Two interfaces
- CLI and 16 MCP tools over one handler set

Own products, open source
2026
An accounting agent that files documents, not one that talks about filing them
How to build an AI assistant for a one-person business where the output is a valid JPK, an invoice accepted by KSeF and a submission receipt, rather than a plausible-sounding answer.
- Regulatory surface
- KSeF FA(3), JPK_V7M, JPK_EWP, ZUS DRA, PIT-28
- Evidence
- 180 tests, e2e against MF sandbox

Own products, mobile and computer vision
2026–2027
Computer vision that has to work where there is no signal
How to run detection and species identification entirely on a phone, offline in the forest, with a confidence figure that is calibrated rather than decorative and the lookalike species shown beside every result.
- Reference data
- 125 species, 130 toxic lookalike pairs
- Offline requirement
- Inference, maps and database on the phone

Own products, open source
2026
A leaderboard that assumes the players will cheat
How to run a public ranking of language models and humans when the game is played in the browser, inference is paid for by the player, and nobody has an account.
- Trust boundary
- Every ranked match replayed server-side
- Inference cost to me
- Zero, players bring their own key

Own products, Web3 gaming
2024–2026
A game economy on a public chain that can still be redesigned after launch
How to put the rules of an NFT ecosystem into smart contracts and keep the right to change them, without asking holders to migrate to a new collection every time the design moves.
- Founding collection
- 2,300 NFTs, four variants
- Upgrade unit
- 21 facets behind one diamond

Own products, consumer Web3
2026
A collector's album for NFTs, with the analytics kept in-house
How to build a consumer platform on top of blockchain data where the interesting work is not the chain but the indexing, the identity and an analytical engine that does not send a user's collection to somebody else's API.
- Backend
- 1,100+ Java sources, 239 schema migrations
- Analytics
- 8 functions, inference on own infrastructure