Leadership & product ownership
IT Department Manager — nine and a half years
Total ownership of the technology at a consulting-engineering firm: the team, the infrastructure, procurement, and the software I wrote myself. Management is not something I picked up recently; it is where my career started.
Sep 2011 — Mar 2021
Technical Manager, Tejarat Shayan
Led the engineering team on a Bank Tejarat–affiliated financial system: prioritisation, code standards, review, and translating banking stakeholder demands into testable acceptance criteria.
Mar 2024 — Oct 2025
Product definition, written down and defensible
Even in personal projects I write the document before the code. The Helios governance brief locks decisions, partitions ownership across fifteen domains with no overlap, and states explicitly which document wins in a conflict. That is precisely the job a product owner has to be able to do.
ECOSYSTEM_BRIEF · GOVERNANCE_DECISIONS · ownership matrix
Selected projects
Fund platform — wallet ledger serviceEmployer work
The ledger is the single source of truth; a balance is only a derived, continuously reconciled projection.
The balancing rule, sign convention and account-number/IBAN validation live in a pure domain — fully unit-tested. UUIDv5 idempotency with safe replay: the same request twice yields the same result and no second posting.
Go 1.26 · PostgreSQL 16 · Chi · pgx · Goose · Oracle CDC · Prometheus · Vue 3
Invoice & supply-chain platformEmployer work
Fifteen services behind an auto-discovering gateway, each with its own microfrontend inside one shell.
Fifteen services: invoice, payment, payment-order, debtor, eligibility, fraud, signature, file, logs, egress, notifier, OTP, captcha and document conversion. Invoice workflows with VAT and settlement, integrated with the Moadian and Ofogh tax systems.
Go · Vue 3 · Microfrontends · API Gateway · OpenSearch · MinIO · PostgreSQL · Docker
Credit-scoring systemEmployer work
No external source is mandatory; a missing one does not stop the score, it lowers the stated confidence.
Two separate access planes: a key-authenticated API for machine consumers, and a session-authenticated BFF for the operator dashboard. Assessment runs on a durable queue, so a slow source never blocks a request.
Go 1.26 · PostgreSQL · Vue 3 · Durable queues · Scoring engine · eco-trust.ir/
Core banking system — researchEmployer work
A completed research reference implementation targeting 300,000 TPS, on the real 28-digit chart of accounts.
Persian documentation from the executive summary through the transaction engine, end-of-day, security, audit and business continuity. Infrastructure: partitioned PostgreSQL, Redis, Kafka and Kubernetes manifests.
Go · sqlc · goose · PostgreSQL · Redis · Kafka · Kubernetes · Vue 3
Yaadestan — Persian self-study platform
Ten self-study courses on one platform: from HTML through deep learning and LLM engineering.
Most courses are book-first — a self-study book, not a talking-head video. Seven run inside Google Colab, so nobody stalls on environment setup. A “Concept Ledger” guarantees no session leans on a concept not yet taught — a curriculum invariant, not a good intention.
Nuxt · Vue 3 · Go 1.26 · MicroPython · WebAssembly · Wokwi · ESP32 · Google Colab · yaadestan.com
Arena — multiplayer gaming platform
Eleven Go microservices behind a double-entry ledger that reconciles to zero.
Append-only double-entry ledger with a database constraint trigger that rejects any unbalanced journal entry at commit. Idempotency keys enforced in SQL, not in application code — a replayed request never double-credits.
Go · PostgreSQL · pgx · Redis · NATS · WebSocket · Flutter · React
And 14 more systems — each described in full at theservat.ir
Agentic engineering
Over roughly the last fourteen months I have built more than twenty systems with coding agents — a distributed gaming platform, an animation pipeline, quantitative research. But the throughput does not come from the tool; it comes from knowing what to specify and what to reject.
Specification before code
Every project starts with a document: domain, service boundaries, data contracts, acceptance criteria. An agent will implement a vague spec confidently and wrongly — which is exactly what makes precise product definition valuable.
Constraints instead of supervision
Rather than reviewing every line, I put the rules where they cannot be bypassed: database constraint triggers, dependency-cruiser for architectural boundaries, a determinism scan in CI, security tests on the permission boundary. If the agent gets it wrong, the pipeline stops it.