Skip to content
mostafa.ghadimi
open to senior roles based in Istanbul remote · global

Mostafa Ghadimi

I build pipelines and the agents they feed.

Senior Data & AI Engineer, 6+ years. Currently at Vendoroo (San Francisco · through May 2026) — shipping LangGraph maintenance agents in production.

[STAGE 01] 15:42:01.001Z user@portfolio:~$ cat README.md

Short version.

Six years building the unglamorous parts so the interesting parts can ship.

I write the boring parts — partitioning, indexes, retry semantics, schema drift — so dashboards, models, and agents can ship without fear.

Six years across Digikala (Iran's largest e-commerce — OLAP on billions of rows), Mofid Securities (greenfield analytics for Iran's #1 brokerage), SnappPay (data-tech specialist at Iran's BNPL leader), Offerland (Vancouver PropTech — cut AWS ~40%), and now Vendoroo (San Francisco · through May 2026) on LangGraph maintenance agents.

  • 01

    Data platforms, end-to-end

    Streaming + warehouse + orchestration, blank-page to production. Kafka, dbt, ClickHouse, Airflow, Kubernetes.

  • 02

    Production LLM agents

    LangGraph + LangSmith, shipped with the same engineering bar as a data service — tested, traced, hot-swappable.

  • 03

    Hires & tech-lead

    Ran data-team hiring at a major fintech (20+ interviews). Senior IC and tech-lead in small teams.

[STAGE 02] 15:42:02.001Z user@portfolio:~$ kafka-console-consumer --topic experience --from-beginning

Career, as a topic log.

Newest offset first. One role per event.

topic: career.mostafa-ghadimi lag = 0
  1. offset.0006 ts. key.vendoroo

    Senior AI Engineer

    at Vendoroo · Remote · San Francisco, CA

    AI agents for property management — tenant comms, maintenance triage, vendor coordination.

    • LangChain
    • LangGraph
    • LangSmith
    • FastAPI
    • OpenAI
    • Multimodal
    • Python
    show what I shipped (4)
    • Ship the tenant-facing maintenance-triage agent serving millions of messages across thousands of properties and 1,000+ property managers, with monthly agent volume scaling ~3× in 6 months (LangChain, LangGraph, FastAPI).
    • Modularised the agent graph — conversation policy split from supporting middleware (input cleaning, context batching, reply formatting) — so each layer is independently testable and hot-swappable.
    • Added a vision pre-step via before_agent middleware that converts tenant-submitted photos (100K+ processed) into structured context; multimodal handoff plugged in without changes to downstream nodes.
    • Restored LangSmith tracing across the LLM fallback path (previously a black box), authored the next-milestone target architecture and decision log, and rebuilt new-engineer onboarding so day-one clone-and-run works across all repos.
  2. offset.0005 ts. key.snapppay

    Data Engineering Tech Specialist

    at SnappPay · Remote · Tehran

    Iran's leading BNPL fintech, part of the Snapp Group super-app.

    • ClickHouse
    • dbt
    • Airflow
    • Strimzi
    • Kafka
    • ArgoCD
    • Ansible
    • GitLab CI
    • Leadership
    show what I shipped (5)
    • Promoted from Senior Data Engineer to Tech Specialist in 5 months; owned hiring for the data team (20+ technical interviews), authored the interview rubric and calibration process still in use, ran weekly 1:1s, and wrote the onboarding playbook.
    • Cut cluster provisioning from a multi-day manual ritual to one command via an Ansible toolkit — ClickHouse cluster, monitoring, and managed PostgreSQL with a zero-downtime upgrade path.
    • Built the team's CI/CD framework as reusable GitLab pipeline components — every new repo ships DAG delivery, Spark jobs, semantic releases, and proxy-aware Docker builds out of the box.
    • Delivered the team's dbt project (staging + marts: transactions, orders, carts, credit, user dim) on Airflow + ClickHouse, turning ad-hoc SQL into reviewable, testable analytics code.
    • Built a data trust layer — generic DQ framework (completeness / freshness / uniqueness / consistency, chunked + retry-aware), schema-drift alerting to MS Teams via Kafka, daily credit-warehouse backfill — plus the streaming and GitOps backbone (Strimzi Kafka on K8s, ArgoCD).
  3. offset.0004 ts. key.iritco

    Senior Data Consultant

    at IRITCO · Remote

    Iranian IT consultancy — data platforms and ICT for enterprise and public-sector clients.

    • ClickHouse
    • Oracle
    • Python
    • SQLAlchemy
    • Architecture
    • Tech Lead
    show what I shipped (4)
    • Led 5 engineers through the greenfield build of a national aid-distribution analytics platform on ClickHouse.
    • Ran 4 architectural decision sessions (R&D, prototype, presentation, decision log) covering analytics-DB choice, ETL vs. ELT, and on-prem vs. cloud — evidence-backed sign-off rather than instinct.
    • Retired a legacy Oracle reporting stack with a Python ingestion pipeline (SQLAlchemy, pandas) that mirrored operational tables into the new warehouse on a known schedule.
    • Established the engineering practice the team kept — meta-repo orchestration, Git conventions, code-style guide, mandatory code review, on-call runbook.
  4. offset.0003 ts. key.offerland

    Cloud Engineer

    at Offerland · Remote · Vancouver, Canada

    Vancouver-based real-estate marketplace.

    • AWS
    • ECS
    • Terraform
    • Ansible
    • Prometheus
    • Grafana
    • GitLab CI
    • FinOps
    show what I shipped (4)
    • Cut AWS spend by ~40% with no service impact via right-sizing, Reserved Instance commitments, S3 lifecycle policies, and a sweep of orphaned compute and log retention.
    • Migrated production from a single EC2 + Docker-Compose host to AWS ECS behind an Application Load Balancer with an ECR image-promotion pipeline — removed single-host outage as a failure mode.
    • Delivered the company's observability stack (Prometheus, Alertmanager, Grafana dashboards, CloudWatch metrics) with on-call routing so issues surfaced before customers noticed.
    • Owned the IaC repos provisioning the platform (Terraform / Ansible modules, GitLab-CI templates, AWS auth and backup pipelines) and unified secret management to a single source of truth.
  5. offset.0002 ts. key.mofid

    Data Architect & Senior Data Engineer

    at Mofid Securities · Tehran, Iran

    Iran's #1 stock brokerage and securities firm — top retail-trading platform.

    • ClickHouse
    • Kafka KRaft
    • Kubernetes
    • RKE
    • ArgoCD
    • Airflow
    • Metabase
    • Helm
    • CDC
    show what I shipped (5)
    • Designed and built the brokerage's first analytics data platform from a blank page — owned architecture, tool selection, and core framework code across analytics DB, orchestration, GitOps, secrets, BI, and monitoring.
    • Automated the migration from a legacy SQL Server warehouse to ClickHouse with a custom change-data-capture framework that generated destination tables on the fly and handled decimal precision, binary columns, Jalali dates, and late-arriving updates with no manual intervention.
    • Delivered a no-code data-quality framework (table-level YAML config, separate query paths for SQL Server and ClickHouse) so onboarding a new table to monitoring is a config change.
    • Bootstrapped the Kubernetes platform bare-metal to production: RKE clusters, ArgoCD delivery, ingress for Airflow / Grafana / Longhorn, systemd-managed Kafka cluster (KRaft) feeding the CDC pipeline; packaged Metabase as a reusable Helm chart.
    • Authored the engineering methodology the team adopted (2-week sprints, 20-min standups, grooming / planning / retro, OKR-driven backlog) and wrote it up as a living team doc.
  6. offset.0001 ts. key.digikala

    Data Engineer → Senior Data Engineer

    at Digikala · Tehran, Iran

    Iran's largest e-commerce platform — the 'Amazon of Iran'.

    • Apache Pinot
    • Apache Spark
    • Airflow
    • Kafka
    • Kubernetes
    • ArgoCD
    • Snowplow
    show what I shipped (4)
    • Co-built Backbone, the internal platform that gave data scientists a one-button path from notebook to production — 15+ DS services (search, recommendation, query processing, trending, spell correction, synonym, Snowplow) on a shared Spark + Airflow + Pinot stack, no Kubernetes YAML required.
    • Delivered up to 10× query speed-up on billions of rows of clickstream / order OLAP workloads by introducing Apache Pinot with hand-tuned star-tree indexes and rewriting the heaviest dashboards.
    • Tuned production Kafka brokers (compression, page-cache, ACLs, broker config), reducing consumer lag and disk pressure on the busiest topics.
    • Brought GitOps (ArgoCD + Kustomize + Kaniko/Dagger CI) into the data org, replacing manual kubectl apply with reviewable PRs; provisioned production K8s clusters via RKE and Kubespray.
  7. offset.0000 ts. key.earlier

    Software / Data / Cloud Engineering

    at Earlier Experience · Vancouver · Tehran

    Three early roles — startup data infra, algorithmic trading, full-stack analytics.

    • Python
    • Web
    • ETL
    • Backtesting
    • Search
    • Document Store
    show what I shipped (3)
    • Lions Digital Solutions (Software Engineer, Vancouver, 2021–2022) — Built a sales-analytics web app for Amazon sellers with marketing/CRM data ingestion (Amazon, Google Ads/Analytics, Ontraport, Close, Oncehub, Thinkific, HelloSign) and the CI/CD that ships it.
    • Hoosh Pardaz (Algorithmic Trader & Data Scientist, Tehran, 2020) — Researched Crypto ETFs and built backtested trading strategies for the Canadian market under Dr. Soleymani Baghshah and Dr. Behrouzi.
    • Wize Analytics (Infrastructure & Data Engineer, Tehran, 2019) — Delivered the data infra (message bus, search index, document store, developer toolchain) for a Sharif-University NLP startup advised by Dr. Rabiee and Dr. Ramezani.

[STAGE 03] 15:42:03.001Z user@portfolio:~$ dbt run --select marts.projects

Four case files.

The work I'd point a hiring manager at.

CASE-001 · Digikala · 2021 — 2023

case file

Digikala 'Backbone' DS Platform

Notebook-to-production in one button — 15+ data-science services

Co-built Backbone, the internal platform that gave data scientists a one-button path from notebook to production. Introduced Apache Pinot with hand-tuned star-tree indexes — up to 10× query speed-up on billions of rows of clickstream OLAP.

DS services on platform
15+
OLAP speed-up
Up to 10×
Rows queried
Billions
K8s YAML for DS teams
Zero
  • Apache Pinot
  • Apache Spark
  • Airflow
  • Kafka
  • ArgoCD
  • Kustomize
  • Snowplow

CASE-002 · Mofid Securities · 2023 — 2024

case file

Mofid Greenfield Analytics Platform

Brokerage's first analytics platform — SQL Server → ClickHouse CDC

Designed and built the first analytics platform for Iran's #1 brokerage from a blank page. Custom CDC framework auto-generated destination tables and handled Jalali dates and late updates with zero manual intervention. Bare-metal Kubernetes with RKE, ArgoCD, and a KRaft Kafka cluster feeding the pipeline.

Investor accounts served
Millions
Migration
SQL Server → ClickHouse
DQ onboarding
YAML config
Platform
Bare-metal K8s
  • ClickHouse
  • Kafka KRaft
  • Kubernetes
  • RKE
  • ArgoCD
  • Airflow
  • Metabase
  • Helm

CASE-003 · SnappPay · 2024 — 2025

case file

SnappPay BNPL Data Platform

One-command cluster, dbt-on-ClickHouse, reusable CI/CD framework

Owned hiring and the long-term shape of the data org at Iran's largest BNPL fintech. Cut new-cluster provisioning from days to a single command and turned ad-hoc SQL into a reviewable dbt project on ClickHouse.

Cluster provisioning
Days → 1 cmd
Technical interviews owned
20+
Promotion to Tech Specialist
5 months
dbt marts modelled
5 domains
  • ClickHouse
  • dbt
  • Airflow
  • Strimzi Kafka
  • ArgoCD
  • Ansible
  • GitLab CI

CASE-004 · Vendoroo · 2025 — Present

case file

Vendoroo Tenant AI Agent

Maintenance-triage agent serving millions of messages, 1k+ property managers

Ship the tenant-facing maintenance-triage agent across thousands of properties. Modularised the agent graph — conversation policy split from middleware (input cleaning, context batching, reply formatting), each layer independently testable. Vision pre-step converts tenant photos into structured context for downstream nodes.

Monthly volume growth
~3× in 6mo
Property managers
1,000+
Photos processed
100K+
Messages handled
Millions
  • LangChain
  • LangGraph
  • LangSmith
  • FastAPI
  • OpenAI
  • Multimodal
  • Python

[STAGE 04] 15:42:04.001Z user@portfolio:~$ gh repo list --json name,stars

Open source.

Infra toolkits, Airflow utilities, learning resources.

$ tree --filter "open-source" 9 repos 649 stars total github.api · live
data-burst/ (5)
mostafaghadimi/ (4)

[STAGE 05] 15:42:05.001Z user@portfolio:~$ \d+ public.skills

Skills, as a schema.

Eight tables. One column per skill.

CREATE TABLE public.data_engineering (

Data Engineering
  1. 01 Apache Airflow TEXT PK
  2. 02 dbt VARCHAR(16)
  3. 03 Apache Spark VARCHAR(32)
  4. 04 ETL / ELT VARCHAR(32)
  5. 05 CDC VARCHAR(16)
  6. 06 Data Quality VARCHAR(32)
  7. 07 Warehouse Modelling TEXT
  8. 08 Data Vault VARCHAR(32)
  9. 09 Star / Snowflake TEXT

);

rows: 9

CREATE TABLE public.streaming (

Streaming
  1. 01 Apache Kafka VARCHAR(32) PK
  2. 02 Strimzi VARCHAR(32)
  3. 03 Debezium VARCHAR(32)
  4. 04 Kafka Connect VARCHAR(32)
  5. 05 Schema Registry TEXT
  6. 06 KRaft VARCHAR(16)

);

rows: 6

CREATE TABLE public.databases_and_analytics (

Databases & Analytics
  1. 01 ClickHouse VARCHAR(32) PK
  2. 02 PostgreSQL VARCHAR(32)
  3. 03 MSSQL VARCHAR(16)
  4. 04 Oracle VARCHAR(32)
  5. 05 Metabase VARCHAR(32)
  6. 06 DataHub VARCHAR(32)

);

rows: 6

CREATE TABLE public.ai_and_agents (

AI & Agents
  1. 01 LangChain VARCHAR(32) PK
  2. 02 LangGraph VARCHAR(32)
  3. 03 LangSmith VARCHAR(32)
  4. 04 FastAPI VARCHAR(32)
  5. 05 Celery VARCHAR(32)
  6. 06 OpenAI VARCHAR(32)
  7. 07 Tool Calling (@tool) TEXT
  8. 08 Skill Registries TEXT
  9. 09 Agent Middleware TEXT
  10. 10 Multimodal / Vision TEXT
  11. 11 MCP VARCHAR(16)
  12. 12 Prompt Engineering TEXT

);

rows: 12

CREATE TABLE public.cloud_and_iac (

Cloud & IaC
  1. 01 AWS (EC2, ECS, ECR, CloudWatch) TEXT PK
  2. 02 Kubernetes VARCHAR(32)
  3. 03 RKE / RKE2 VARCHAR(32)
  4. 04 Kubespray VARCHAR(32)
  5. 05 Docker VARCHAR(32)
  6. 06 Helm VARCHAR(16)
  7. 07 Terraform VARCHAR(32)
  8. 08 Ansible VARCHAR(32)

);

rows: 8

CREATE TABLE public.devops_and_observability (

DevOps & Observability
  1. 01 ArgoCD VARCHAR(32) PK
  2. 02 GitLab CI VARCHAR(32)
  3. 03 GitHub Actions TEXT
  4. 04 HashiCorp Vault TEXT
  5. 05 Prometheus VARCHAR(32)
  6. 06 Grafana VARCHAR(32)
  7. 07 Elasticsearch VARCHAR(32)

);

rows: 7

CREATE TABLE public.leadership_and_process (

Leadership & Process
  1. 01 Hiring & Interviewing (20+) INT PK
  2. 02 1:1s VARCHAR(16)
  3. 03 Mentoring VARCHAR(32)
  4. 04 Architectural Decisions TEXT
  5. 05 Agile (Scrum, OKRs) TEXT
  6. 06 Technical Writing TEXT

);

rows: 6

CREATE TABLE public.programming_languages (

Programming Languages
  1. 01 Python VARCHAR(32) PK
  2. 02 SQL VARCHAR(16)
  3. 03 Bash VARCHAR(16)

);

rows: 3

-- primary keys are the ones I lead with on a project. all columns are production-tested.

[STAGE 06] 15:42:06.001Z user@portfolio:~$ datahub lineage --upstream

Credentials.

Degrees, awards, certifications.

Education

n = 2
  1. 2016 — 2020 · Tehran, Iran

    BSc in Computer Engineering

    Sharif University of Technology

  2. 2022 — 2024 · Tehran, Iran

    MSc in Algorithms and Computations

    University of Tehran

    Relevant coursework: Distributed Systems, Advanced Algorithms, Machine Learning.

Awards

n = 2
  1. 2019 · Iran

    1st place — Fintech Challenge

    3rd ICT Challenge, Sharif University of Technology

  2. 2016 · Iran

    Top 0.002% nationally (rank 61 of 80,000)

    National Universities Entrance Exam (Konkour)

Languages

  • English professional
  • Persian native

Certifications

n = 4
  1. Mar 2024

    AWS Certified Cloud Practitioner (CLF-C02)

    KodeKloud

  2. Jan 2024

    DataOps Fundamentals

    DataKitchen

  3. Mar 2022 · Iran

    DevOps Engineering Bootcamp

    Rahnema College

  4. Aug 2024

    HashiCorp Certified: Terraform Associate

    KodeKloud

[STAGE 07] 15:42:07.001Z user@portfolio:~$ echo $EMAIL

Get in touch.

Email is fastest. I read every message.