To make the PDF: Ctrl+P → Destination: Save as PDF → Margins: default → Background graphics: on رزومهٔ فارسی

Sajjad Servatjoo

Full-Stack Engineer & Technical Lead
Distributed systems · Go & NestJS · Vue & Flutter · Product ownership
sajjad.servatjoo@gmail.com+98 938 621 7979Tehran, Irangithub.com/TheServattheservat.ir

Summary

Fourteen years of building systems — from the internal software of an engineering firm to a financial chain for Bank Tejarat. What I am actually good at: turning a vague domain into clear boundaries, data contracts and acceptance criteria, then building it myself. Backend is home, I take the frontend all the way, and I have run the team too.

Experience

Tejarat Shayan

Apr 2022 — Present
Full-Stack Developer Oct 2025 — Present
End-to-end ownership of the supply-chain finance systems — from the Go domain to the Vue dashboard, and from migration through to production incident work.
  • The fund platform (wallet ledger): an immutable double-entry ledger for Iranian Rial on Go and PostgreSQL with clean architecture. The ledger is the single source of truth and balances are a derived, continuously reconciled projection — design law: financial correctness over development simplicity.
  • A shared double-entry posting engine with UUIDv5 idempotency and safe replay; an outbox dispatcher on SKIP LOCKED with exponential backoff, jitter and a dead-letter queue.
  • A leader-elected reconciler service that continuously checks integrity invariants and the audit chain, and maintains table partitions.
  • A Vue 3 dashboard on TanStack Query/Table/Virtual, Pinia, ECharts and a Jalali calendar — with enforced architectural boundaries (eslint-plugin-boundaries, dependency-cruiser), accessibility testing via axe-core and a bundle-size budget.
Technical Manager Mar 2024 — Oct 2025
Responsible for the engineering team, prioritisation, code standards and the technical relationship with banking stakeholders.
  • Translated banking stakeholder demands into domains, service boundaries and testable acceptance criteria — in practice a blend of engineering manager and product owner.
  • Led a multi-service supply-chain-finance programme: invoicing, payment, credit assessment, signature, fraud, identity and an auto-discovering API gateway.
Senior Backend Developer Apr 2022 — Mar 2024
Built “Ecotam”, the Bank Tejarat–affiliated financial chain system, on NestJS.
  • Implemented the financial domain on NestJS over a relational store — a context where a calculation error is not survivable and every transaction has to stay traceable.
  • Worked under banking constraints: data integrity, auditability and service stability alongside enterprise deadlines.
Stack: Go · NestJS · TypeScript · Vue 3 · React · PostgreSQL · Oracle · Redis · Kafka · RabbitMQ · Docker · Kubernetes · Microservices

Irancell (MTN Irancell)concurrent

Sep 2025 — Oct 2025
Full-Stack Developer — project engagement Sep 2025 — Oct 2025
Project-based work on Irancell’s SLM software, concurrent with the full-time role at Tejarat Shayan.
  • Onboarded into a telecom-operator codebase and delivered inside a short window, with no long ramp-up.
Stack: TypeScript · Node.js · Vue · REST API

Hubwork

Jun 2021 — Apr 2022
Full-Stack Developer Jun 2021 — Apr 2022
Coworking-space reservation platform, plus a VoIP system on Asterisk.
  • Built the reservation platform on NestJS and Vue: resource availability, time-slot conflicts and booking lifecycle.
  • Integrated telephony with Asterisk — my first stateful, real-time system outside the request/response world.
Stack: NestJS · Vue.js · Asterisk · VoIP · Node.js · MySQL

Consulting Engineers firm

Sep 2011 — Mar 2021
IT Department Manager & Developer Sep 2011 — Mar 2021
Nine and a half years owning a company’s technology outright: building the software, and running the infrastructure and the team.
  • Built internal enterprise systems in PHP and Laravel — administrative workflows and operational tooling used by staff every day.
  • Designed and delivered websites and client portals for the firm’s customers.
Stack: PHP · Laravel · MySQL · JavaScript · CSS3 · Linux · Networking

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.

Technical skills

Backend & services

NestJS · Node.js · TypeScript · Go · PHP / Laravel · Express.js · Fastify · Koa.js

Architecture & integration

Microservices · REST API · GraphQL · gRPC · RabbitMQ · Kafka · NATS JetStream · Swagger / OpenAPI · WebSocket · Event-driven design · DDD / Hexagonal

Data & storage

PostgreSQL · MySQL · MongoDB · Redis · Double-entry ledgers

Frontend & client

Vue 3 · JavaScript ES6+ · CSS3 · Vite · React · Flutter

Platform & operations

Docker / Compose · Linux · Crawlers & scraping · CI (GitHub Actions) · Observability (OTel) · Networking & infra

Education

Associate degree, Software Engineering

Sama University · 2006 — 2009

Diploma, Graphic Design

Hashtroodi Technical School · 2002 — 2003

Languages

AzerbaijaniNative
PersianProfessional
TurkishIntermediate
EnglishIntermediate — fluent technical