Loading

Mashhad, Iran Open to freelance & contract Available

Mohammad Zarif

Senior Flutter & Python Developer

Nine years developing cross-platform Flutter apps and the Python and .NET backends that power them — most of it inside financial products where uptime and correctness are the whole job.

  • 0+ yearsProduction mobile & backend
  • 0 countriesCross-border product teams
  • 0K LOCFlutter platform ownership
  • 0 packagesPublished on pub.dev & PyPI
Scroll
01

About

Nine years of developing software end to end — Flutter on the front, Python and .NET services on the back, in freelance teams and in-house. Most of that time has been spent inside financial products, which is a good school for the things that matter everywhere else: correctness, uptime, and error handling you can reason about.

I care about architecture that survives contact with a real product — typed boundaries instead of thrown exceptions, generated clients instead of hand-written ones, and a static-analysis baseline that stays at zero warnings. I’m committed to continuous learning, which is mostly how a biomedical-engineering researcher ended up owning a 118K-LOC trading codebase.

Seventeen of those pieces are now open source — sixteen Dart and Flutter packages on pub.dev and a Django backend starter on PyPI. Two are projects in their own right: ohlcv_chart, a full trading-terminal charting engine, and django-ninja-starter, a production Django API template with authentication and OAuth built in. The rest are the typed Result boundary, the BLoC layer over it, the codegen CLIs, and the widgets I got tired of rewriting — all MIT licensed and public on GitHub.

  • 0K LOCproduction Flutter platform
  • 0unit and BLoC test suites
  • 0typed application use cases
  • 0published open-source packages
  • 84×pipeline acceleration · 7d → 2h
  • 0technical and research publications
02

Open source

Seventeen published packages — sixteen Dart & Flutter libraries on pub.dev and a Django backend starter on PyPI. Two of them are full products in their own right; the rest are the pieces of the DeltaFX codebase that were general enough to stand alone. MIT licensed, with every source on GitHub.

  • 0packages published
  • 0Dart & Flutter on pub.dev
  • 0Python on PyPI
  • 0flagship projects

Flagship projects

Flagship · Python

django-ninja-starter

A production-oriented Django + Django Ninja starter, shipped both as a GitHub template and as an installable project generator. Authentication, OAuth token storage, versioned APIs, typing, tests and CI are already wired together — the parts every backend rebuilds from scratch, built once and made opt-in.

  • Four login methods — password, emailed code, SMS code, magic link — and four second factors (TOTP, SMS, email, recovery codes), each a separate app that installs nothing until you name it.
  • Three OAuth token modes selected 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 ends by minting a signed JWT, and secrets are persisted only as hashes.
  • Environment-split settings, secure production defaults, health checks, Swagger docs, coverage, linting and CI in the generated project from the first commit.
  • Python
  • Django 5.2 / 6.x
  • 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, and updated weekly.

  • Eight chart types — candles, OHLC bars, line, step, area, HLC area, baseline, columns — plus Heikin-Ashi, Renko, Kagi, point & figure and range-bar transforms.
  • 31 indicators, each a configured instance rather than a flag, across main-chart overlays (MA, Bollinger, SAR, VWAP, Ichimoku, Supertrend) and draggable, reorderable sub-chart panes.
  • 29 drawing tools — trend lines, channels, pitchforks, Gann fans, four Fibonacci tools, XABCD patterns, planned positions with risk-to-reward — with multi-select, exact-coordinate editing and undo/redo.
  • Bar replay, linked charts sharing one crosshair, higher-timeframe indicators that never repaint, and price and indicator alerts.
  • A separate order-book DepthChart, linear/log/percentage/indexed price axes, a draggable price scale, and layouts that serialize to JSON.
  • Flutter
  • CustomPainter
  • Market data
  • Technical analysis
  • Drawing tools

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
03

How I work

Four habits that show up in every codebase I own — they’re why a 118K-LOC app stays workable instead of 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. I extracted that boundary into verdict and verdict_bloc and published both.

    • 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. The two gaps in that pipeline became CLIs of their own — 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
04

Selected work

Six projects that best describe what I actually do.

DeltaFX CRM

Sole senior developer · iOS & Android · 2026 → present

Live

A cross-platform client portal for a forex brokerage: 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.
  • 1,715 localization keys with zero hardcoded strings, and a Figma-token-driven design system generated into typed Dart theme code — the generator is now published as figma_tokens_gen.
  • 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, and 132 unit/BLoC test suites.
  • Flutter
  • Dart
  • BLoC
  • Clean Architecture
  • Dio + Retrofit
  • Codegen
  • GitHub Actions

BTCB Exchange

Senior Flutter Developer · Dubai, remote · 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

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

Trading robots

Katana Co. · Istanbul era · 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

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
05

Experience

Iran · UAE · Germany · Turkey — mostly remote.

  1. Feb 2026 — Present

    Senior Flutter Developer

    DeltaFx Broker · Mashhad, Iran

    Sole senior developer on the DeltaFX CRM brokerage portal — architecture, networking, feature delivery, design system, CI and engineering standards.

  2. Aug 2025 — Mar 2026

    Senior Flutter Developer Remote

    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 Application & 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

    Application & Backend Developer

    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.

06

Stack & principles

Mobile

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

Backend

  • Python
  • REST APIs
  • C# / .NET
  • Data pipelines
  • Auth & token security

Trading

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

Infrastructure

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

Principles & practices

  • SOLID
  • OOP
  • DRY
  • KISS
  • YAGNI
  • Dependency Injection
  • Clean Code
  • Design Patterns

Languages

  • PersianMother tongue
  • EnglishB1
  • GermanA1
07

Research & education

Before trading systems, it was brain signals — five papers on neural-network and signal-analysis methods for neurological diagnosis.

  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

08

Let’s build something
that has to stay up.

Available to hire for freelance and contract work — cross-platform Flutter apps, Python and .NET backends, and the integration work in between.

Based in Mashhad, Iran  ·  Working remotely across UAE, Germany and Turkey