⚡ Sangsakala Proxy 🏠 Home

Mashhad, Iran Open to freelance & contract Available

Mohammad Zarif

Senior Software Engineer · Flutter & Python

Nine years writing software, eight of them professionally: Flutter apps for brokerages, exchanges and trading desks, and the Python and .NET services behind them, where correctness and uptime are the requirement, not a goal.

  • 9 yearsWriting software since 2017
  • 4 countriesCross-border product teams
  • FinTechBrokerage, exchange & trading
  • MITLibraries on pub.dev & PyPI
Scroll
01

About

Eight years delivering software professionally, end to end: Flutter on the client, Python and .NET services on the server, across in-house teams and independent engagements. Most of that work has been in financial products — an environment that enforces the disciplines every other domain benefits from: correctness, availability, and failure paths you can reason about.

I build architecture that holds up in its second year: typed boundaries instead of exceptions thrown across layers, generated clients instead of hand-written ones, and a static-analysis baseline held at zero warnings. I started writing software in 2017, mid-degree, building the signal-processing and neural-network code behind my biomedical-engineering research, and went professional in 2018 with trading systems.

Outside client work I maintain open-source libraries: Flutter packages on pub.dev and Python packages on PyPI. The main ones are ohlcv_chart, a trading-terminal charting engine, and two reference backends: oauth-dpop-server for sender-constrained tokens and ledger-service for double-entry money movement. All are MIT licensed and public on GitHub.

02

Selected work

Six engagements that best represent the work: what was built, how it was architected, and what it changed.

DeltaFX CRM

Full-stack · Flutter app & Django backend · 2026 → present

Live

A cross-platform client portal for a forex brokerage, and the backend behind its social feed: wallets, trading accounts, IB/affiliate management, social trading, AI market analysis, and support — architected and delivered end to end.

  • Clean Architecture + BLoC with get_it DI — 11 feature modules, 151 use cases and 63 BLoCs across 118K LOC, with a typed Result<Ok, Err> boundary replacing exception-based error flow.
  • Dio + Retrofit networking driven by a Swagger codegen pipeline producing ~190K LOC of type-safe clients and dart_mappable models, behind an interceptor chain for auth, transparent 401 refresh, envelope unwrapping and logging.
  • Deposits, withdrawals and transfers with address whitelisting; demo and live accounts; IB rebate, network and installment dashboards; ProTrader copy-trading follow flows; AI-assisted chart analysis.
  • Discovery, the app's social-feed backend, on Django Ninja (async), PostgreSQL and Redis — 10 apps and 90 endpoints covering feed ranking, moderation, paid promotions, search and insights.
  • CRM integration over OAuth/JWKS bearer auth, role permissions and wallet payments with refunds; the OpenAPI contract is exported straight into the app's codegen.
  • 1,715 localization keys with zero hardcoded strings, and a Figma-token-driven design system generated into typed Dart theme code.
  • Dev/sandbox/production build flavors, GitHub Actions CI running flutter analyze + tests on every PR, per-branch APK/iOS artifacts, a custom Dart analyzer plugin for project lint rules, 132 unit/BLoC test suites, and 488 backend tests running against Docker-based sandbox and production stacks.
  • Flutter
  • Dart
  • BLoC
  • Clean Architecture
  • Django Ninja
  • PostgreSQL
  • Redis
  • Codegen
  • GitHub Actions

BTCB Exchange

Senior Flutter Developer · Remote contract, Dubai · 2025–2026

A multi-platform cryptocurrency trading app covering Futures, Spot and OTC markets, with real-time market data and secure financial operations.

  • Real-time market data, advanced charting and trading interfaces across three market types.
  • Registration, login, Apple & Google Sign-In, JWT, 2FA, DPoP token security and passkey support.
  • Clean Architecture with BLoC, dark/light theming, motion design, and 9-language localization.
  • Flutter
  • Real-time
  • WebSocket
  • Passkeys
  • DPoP
  • 2FA
View on Google Play

Analytics pipeline rebuild

Alpha Niro · Berlin, remote · 2024–2025

7d → 2h

Backend and data work for a trading-technology company: a secured REST API, an admin panel, and a re-engineered batch layer.

  • Complete REST API behind a two-way encrypted token system, plus an administration panel for system management.
  • Re-engineered background data processing so heavy analytics dropped from 7 days to 2 hours.
  • MQL scripts bridging trading platforms to the backend — extracting market data and triggering server-side actions.
  • Automated data processing, test workflows and documentation generation to standardize output across environments.
  • Python
  • REST
  • MQL
  • Automation
  • DevOps
3 more engagements

Traia

Copy-trading & AI trading assistant · 2023–2024

A copy-trading platform with an AI assistant that reads a user’s own trading history back to them.

  • Copy-trading core with gamification layered on to drive engagement.
  • AI assistant analyzing trade history across 1,500+ factors with neural-network models to produce insights and recommendations.
  • Secure data pipelines and behavioral analytics feeding prediction accuracy and performance tracking.
  • Flutter
  • Python
  • Neural networks
  • Analytics

Business systems

Bull-x-Bear Holding & freelance · 2020–2023

The unglamorous, load-bearing kind of software: ledgers, portfolios, and performance tracking.

  • A full accounting suite in Python and C# — general ledger, AP/AR, financial statements, with separate admin and management panels.
  • A Flutter investor app for portfolio management, with real-time market data and secure transaction APIs.
  • An employee performance automation system tracking KPIs and turning activity data into management insight.
  • Vu1 — an event-oriented social platform for weddings, birthdays and parties, Flutter front-end on a Python backend with real-time interactions.
  • Python
  • C# / .NET
  • Flutter
  • Accounting

Trading robots

Katana Co. · Mashhad, Iran · 2018–2020

+15%

Proprietary automated trading systems, plus the accounting layer that kept them honest.

  • Trading robots in MQL and Python executing strategies automatically, improving company profit by up to 15%.
  • Extensive backtesting and parameter optimization to maximize performance and cap risk.
  • A dedicated accounting application collecting platform data in real time for P&L, capital management and performance reporting.
  • MQL 4/5
  • Python
  • Backtesting
  • Risk
03

Experience

Iran · UAE · Germany · Turkey — predominantly remote, across product and contract teams.

  1. Apr 2026 — Present

    Senior Full-Stack Developer Flutter & Django

    DeltaFX Broker · Mashhad, Iran

    Full-stack on the DeltaFX CRM brokerage portal: the 118K-LOC Flutter app and the Django Ninja backend behind its social feed — architecture, networking, feature delivery, design system, CI and engineering standards.

  2. Aug 2025 — Mar 2026

    Senior Flutter Developer Remote contract

    BTCB — Amatis Dadeh Exchange · Dubai, UAE

    Multi-platform crypto trading app: Futures/Spot/OTC markets, real-time data and charting, and the full secure-authentication surface.

  3. Nov 2024 — Aug 2025

    Senior Backend Developer Remote

    Alpha Niro · Berlin, Germany

    Encrypted REST API and admin panel, MQL↔backend bridges, and the analytics pipeline rebuild that cut a 7-day job to 2 hours.

  4. Jul 2023 — Nov 2024

    Software Developer Mobile & Backend

    Freelance · Mashhad, Iran

    Traia copy-trading platform with an AI trading assistant, and Vu1, an event-oriented social platform on Flutter + Python.

  5. Mar 2020 — Jul 2023

    Application & Backend Developer

    Bull-x-Bear Holding · Istanbul, Turkey

    Full accounting suite in Python and C#, a Flutter investor portfolio app, and an employee performance automation system.

  6. Sep 2018 — Mar 2020

    Backend Developer

    Katana Co. · Mashhad, Iran

    MQL and Python trading robots that lifted company profit by up to 15%, plus the accounting application tracking their financial activity.

04

Open source

Libraries and reference services, MIT licensed with every source public on GitHub. The larger projects come first; the smaller Flutter packages are listed after them.

  • 20packages published
  • 16Dart & Flutter on pub.dev
  • 4Python on PyPI
  • 32public repositories

Flagship projects

Flagship · Python

django-ninja-starter

A production-oriented Django + Django Ninja API template and project generator: authentication, OAuth token storage, versioned APIs, typing, tests and CI wired together from the first commit.

  • Password, emailed-code, SMS and magic-link logins, with TOTP, SMS, email and recovery-code second factors — each a separate app that installs nothing until you name it.
  • OAuth token strategy chosen by one environment variable: sliding expiry, server-side device sessions, or refresh rotation with family-wide revocation on reuse.
  • Social sign-in for Google, Apple and Microsoft; every login mints a signed JWT, and secrets are persisted only as hashes.
  • Environment-split settings, secure production defaults, health checks, Swagger docs, coverage and linting in the generated project.
  • Python
  • Django 5 / 6
  • Django Ninja
  • OAuth 2.0
  • OpenAPI
Flagship · Flutter

ohlcv_chart

A candlestick and market-depth charting engine for Flutter, drawn entirely with CustomPainter — no WebView, no JavaScript bridge. The whole trading-terminal surface, written once instead of per app.

  • Candles, OHLC bars, line, step, area, baseline and columns, plus Heikin-Ashi, Renko, Kagi, point & figure and range-bar transforms.
  • A full indicator set — MA, Bollinger, SAR, VWAP, Ichimoku, Supertrend and the rest — each a configured instance rather than a flag, across overlays and draggable, reorderable sub-chart panes.
  • Drawing tools from trend lines and channels to pitchforks, Gann fans, Fibonacci sets and XABCD patterns, with multi-select, exact-coordinate editing and undo/redo.
  • Bar replay, linked crosshairs, non-repainting higher-timeframe indicators, a separate order-book DepthChart, and layouts that serialize to JSON.
  • Flutter
  • CustomPainter
  • Market data
  • Technical analysis
  • Drawing tools
Backend services & Python packages

Backend services

Project · Django

oauth-dpop-server

An OAuth 2.1 authorization server where every access token is sender-constrained with DPoP (RFC 9449): a token lifted from a log or a proxy is inert without the key it is bound to. The server-side counterpart of dpop_client, tested against it in CI.

  • Authorization Code with mandatory S256 PKCE, Client Credentials, and refresh tokens rotated on every use, with reuse revoking the whole family.
  • The full RFC 9449 proof checklist: jti replay cache, server nonces, cnf.jkt thumbprint binding and authorization-code binding.
  • RFC 9068 JWT access tokens on rotating ES256 keys, plus metadata, introspection, revocation and pushed authorization requests.
  • ninja_dpop, a reusable Django Ninja auth class for resource servers. No hand-rolled cryptography.
  • Python
  • Django
  • OAuth 2.0
  • RFC 9449
  • PostgreSQL
Project · Django

ledger-service

A double-entry ledger over HTTP that moves money atomically, idempotently and append-only, so money is never created or lost, whatever the concurrency, the retries or the crashes.

  • Every transaction's entries sum to zero in every currency, and the database refuses to commit one that does not.
  • Balances are derived from entries, never stored; entries are never updated or deleted, and mistakes are undone with reversals.
  • Every write takes an Idempotency-Key; concurrent postings serialize on row locks taken in a fixed order, without deadlocks or retry loops.
  • Events leave through a transactional outbox, and a reconciliation job re-checks every invariant against the raw tables.
  • Python
  • Django
  • Double entry
  • Idempotency
  • PostgreSQL

Python packages

matching-engine

A deterministic price-time priority order book with a checksummed write-ahead log, snapshots and a FastAPI gateway. Nothing is acknowledged before it is on disk.

  • Python
  • Order book
  • Write-ahead log

mdp-outbox

Ingests trades from exchanges and a matching engine, builds OHLCV candles live and historically with event-time watermarks, and serves them over REST and WebSocket.

  • Python
  • Market data
  • Redis Streams

django-reliable-outbox

A transactional outbox and reliable background jobs for Django on PostgreSQL: publish or enqueue in the same transaction as the data, with retries and per-key ordering.

  • Django
  • Outbox pattern
  • Background jobs
15 more Dart & Flutter packages

Architecture & error handling

verdict

A sealed Result<T> and a five-variant Failure hierarchy, so a switch over either is exhaustive and the error path is back in the signature.

  • Pure Dart
  • Sealed types
  • Error handling

verdict_bloc

BLoC state where transient states carry the last known good data — a failed refresh raises a toast instead of blanking the list. Plus GenericListBloc for paginated endpoints.

  • Flutter
  • BLoC
  • Pagination

Networking, security & data boundaries

dpop_client

DPoP proof JWTs for Dart — RFC 9449 with ES256 keys, JWK thumbprints, access-token binding and server nonces. The unforgiving details: htu, ath, iat.

  • Pure Dart
  • RFC 9449
  • Security

socket_hub

One WebSocket, many channels: listening subscribes, cancelling unsubscribes, and everything asked for in one microtask leaves as a single frame. Streams survive a drop and resubscribe.

  • Pure Dart
  • WebSocket
  • Realtime

safe_json_cast

Typed casts for decoded JSON that throw a FormatException quoting the field and the value — so a bad payload fails at the parse site, not as a NaN in a chart.

  • Pure Dart
  • JSON
  • Zero deps

Code generation & tooling

openapi_enum_patch

A five-command CLI wrapped around swagger_parser: it shapes the export, names the integer enums OpenAPI leaves nameless — value2 becomes disabled — and audits the rest.

  • Dart CLI
  • OpenAPI
  • Codegen

figma_tokens_gen

Turns a Figma design-token export into checked-in Dart Color constants and palette maps. Reads DTCG, legacy and bare formats, so upgrading the Figma plugin changes nothing.

  • Dart CLI
  • Design tokens
  • Theming

Widgets & interaction

toast_overlay

An overlay toast with an auto-dismiss countdown ring and a copyable support reference ID. It renders into the root Overlay, so it sits above dialogs and survives route changes.

  • Flutter
  • Overlay
  • Theming

queued_toast

The dependency-light sibling: overlay toasts that queue per position, de-duplicate identical messages, stack up to five, and need no BuildContext at the call site.

  • Flutter
  • Overlay
  • Queueing

anchored_popover

A popover anchored to a widget rather than a screen edge. It follows its anchor as the list scrolls, flips and clamps to stay on screen, then fades itself back out.

  • Flutter
  • Overlay
  • Positioning
  • a11y

sliding_segmented_control

A segmented control marked by a pill that slides between segments, plus SegmentedBody, which pairs it with a body that cross-fades as the pill moves. No assets, no dependencies.

  • Flutter
  • material_ui
  • Animation

indicator_tab_bar

A tab indicator that draws a short bar of fixed width, whatever the tab beneath it measures, plus a sliver AnimatedSwitcher. Imports no Material at all.

  • Flutter
  • Tab bar
  • Slivers
  • Zero deps

capsule_nav_bar

A bottom navigation bar floating over content as a rounded capsule, its selection marked by a sliding pill. Each destination carries a line and a filled icon, swapped as the pill arrives.

  • Flutter
  • material_ui
  • Navigation

ruler_scrubber

A ruler that scrolls under a stationary needle, so a wide range stays scrubbable at a fine grain — the value moves by one tick per tick, however wide the range, and a flick coasts.

  • Flutter
  • material_ui
  • Accessibility

diamond_percent_slider

An integer slider on a diamond track with a thumb that tilts in the direction of travel — built for percentage and leverage, keeping Slider’s keyboard and semantics behavior.

  • Flutter
  • material_ui
  • RTL
05

Collaborations

Work selected or contributed to outside my own repositories.

XERJ Corpus Hub

A tested ProgressCard change to ohlcv_chart was selected for this open reference corpus that AI coding agents consult for working implementations. MIT, attributed.

  • Flutter
  • Selected

refresh_loadmore

A Flutter component for pull-down refresh and pull-up load-more. Contributor: added padding on the main widget and support for a custom loading widget.

  • Flutter
  • Contributor
06

How I work

Four practices present in every codebase I own — the reason a large production application stays workable rather than calcifying.

  1. Architecture that survives the second year

    Clean Architecture with a strict dependency direction, feature modules that can be reasoned about alone, and DI wiring kept out of business logic. The test is simple: can a new person change one feature without reading the other ten?

    • Clean Architecture
    • BLoC
    • get_it
    • 11 modules
  2. Errors as values, not surprises

    A typed Result<Ok, Err> boundary instead of exceptions thrown across layers. The compiler forces every failure path to be handled at the point it matters, so production surprises become compile-time arguments. The pattern is also published as verdict and verdict_bloc.

    • Typed boundaries
    • Total functions
    • No silent catch
    • verdict
  3. Generate what shouldn’t be written by hand

    API clients, models, theme code and localization all come out of a source of truth — Swagger, Figma tokens, translation files. ~190K LOC of client code is generated, which means it can’t drift from the contract and nobody wastes a day on a mistyped DTO. Two open-source CLIs cover the gaps in that pipeline: openapi_enum_patch and figma_tokens_gen.

    • Swagger codegen
    • dart_mappable
    • Figma tokens
    • 1,715 keys
  4. A baseline the team can’t drift below

    Zero-warning static analysis, a custom analyzer plugin for project-specific rules, Conventional Commits, and CI that runs analyze plus the full test suite on every PR with per-branch build artifacts. Standards that are enforced don’t need to be argued about.

    • Zero warnings
    • Custom lints
    • GitHub Actions
    • 132 suites
07

Stack

The tools I reach for by default.

Mobile

  • Flutter
  • Dart
  • BLoC
  • get_it
  • Retrofit
  • dart_mappable
  • Melos

Backend

  • Python
  • Django
  • Django Ninja
  • FastAPI
  • C# / .NET
  • REST APIs
  • OAuth 2.0 & DPoP

Trading

  • MQL 4
  • MQL 5
  • Backtesting
  • Market data
  • Copy trading

Infrastructure

  • Git
  • Docker
  • DevOps
  • GitHub Actions
  • Multi-env builds

Data

  • PostgreSQL
  • Redis Streams
  • TimescaleDB
  • Data pipelines
  • WebSocket

Languages

  • PersianMother tongue
  • EnglishProfessional (B2)
  • GermanA1
08

Education

B.Sc. in Biomedical Engineering, with five peer-reviewed papers on signal analysis and neural networks before moving into software full time.

  1. 12 / 2018

    Early Diagnosis of Alzheimer’s Diseases Using a Combination of Images Processing and Brain Signals

    International Journal of Biomedical and Biological Engineering ISI

  2. 04 / 2017

    Epilepsy Diseases Detection using Cross-Correlation with Support Vector Machine for Brain Signal Classification

    13th Symposium of Advances in Science and Technology

  3. 11 / 2016

    Speech Accuracy Detection Using Psychophysiological Signals Based on Nonlinear Methods

    National Conference on Electrical, Electronic and Biomedical Engineering

  4. 04 / 2016

    Identification of Parkinson’s Disease Stages through Brain Signal Analysis and Processing

    12th Symposium of Advances in Science and Technology

  5. 01 / 2016

    Research and Analysis on Android-Based Applications in the Health Sector

    National Conference on Novel Research in Electrical and Biomedical Engineering

09

Let’s build something
that has to stay up.

Available for freelance and contract engagements: cross-platform Flutter applications, Python and .NET backends, and the integration work between them.

  • EngagementFreelance or contract, fully remote
  • TimezoneUTC+3:30, within 2½ hours of the UAE, Turkey and Central Europe
  • PaymentInvoiced and paid in USDT

Based in Mashhad, Iran  ·  Past teams in the UAE, Germany and Turkey