Three long projects where I owned everything from the data model to production. All of them are in use today.
Editori: construction ERP
Architect & lead developer · In production · 2021–2026
The full lifecycle of facade renovation and apartment reconstruction in one system, originally the “Westface site editor”
- A configurable state machine: status groups, status logic and status types, plus a change history for every entity (element, apartment, room, ticket, company). The customer defines their own workflows without a code change.
- Permissions on two levels: spatie/laravel-permission on the back end and CASL on the front end, with per-project roles. The same user can be a foreman on one project and a viewer on another.
111Eloquent models248API routes3apps, 1 API
Laravel 10PHP 8.2MySQL 8Redis 7React 18TypeScriptRedux ToolkitKonva
Why it matters: Complex operational software in Laravel and React: the level client work expects.
B2B CRM & lead automation
Architect & sole developer · In production · 2026 to present
Lead acquisition, enrichment, campaign sequences and a sales pipeline on one platform
- A campaign engine: multi-step sequences, message variants with A/B testing (multi-armed bandit), condition-based branches, automatic actions and recipient enrollments.
- An enrichment chain where every contact passes through paid and free sources (PDL → Hunter → ZeroBounce → Gemini) until it has a verified, deliverable email address and a reasoned company context.
39+domain models
PythonFlask 3.1SQLAlchemy 2.0PostgreSQL 16React 19Vite 8CeleryRedis
Why it matters: Python, React and integrations with dozens of APIs, running every day.
Automated accounting system
Architect & developer · In daily use · 2026 to present
End-to-end bookkeeping automation for a sole trader, a limited company and a personal account.
- Bank-statement retrieval and parsing: Nordea (CSV / JSON) and Holvi (XLSX / JSON). The limited company has two Holvi accounts (main and tax reserve), of which only the main one is published to the ledger while the reserve is tracked as a budget.
- A VAT engine: rates and tax classes, reverse-charge VAT, pension-scheme expenses, a counterparty map and rules that live in configuration rather than in code.
2banks integrated0duplicates (idempotent)
PythonGmail APIGoogle Sheets APINordeaHolviFirefly IIISQLiteGemini
Why it matters: Bank connections and accounting rules: an area where mistakes cost money.