Skip to content
View CtrlAltDevelop's full-sized avatar
πŸ€’
From Iran. My dreams travel farther than my internet
πŸ€’
From Iran. My dreams travel farther than my internet

Block or report CtrlAltDevelop

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
CtrlAltDevelop/README.md

CtrlAltDevelop β€” Mobile Β· Backend Β· Beyond

Mohammad Zarif

Senior Software Engineer Β· Flutter & Python Β· FinTech Systems

I build production Flutter and Django systems for brokerages and exchanges β€”
then extract the reusable parts into open-source packages for the Dart and Python communities.

Portfolio Open-source packages Packages on PyPI Contact


17 packages
published on pub.dev & PyPI
9+ years
brokerage & exchange systems
MIT licensed
documented and reusable


Open source

Two long-running projects sit at the centre of my open-source work β€” a charting library that covers a whole trading product, and a Django Ninja backend starter that covers a whole service. Both come out of shipping real trading systems, and both are maintained as products in their own right: documented page by page, tested, versioned, and used in production.

Around them sits a focused set of smaller, single-purpose Dart and Flutter packages. Every project is MIT licensed and available on GitHub.


Flagship projects

A production-oriented Django Ninja starter, as a template and a generator

PyPI version Python versions License Source

Distributed both as a GitHub Template and as a pipx-installable generator, so a service can start either way. The decisions a backend has to make in its first week β€” environment separation, authentication, API versioning, CI β€” are already made, wired together and documented.

The foundation

  • Feature-first layout, per-environment settings, hardened production defaults
  • Versioned OpenAPI: Swagger with a version picker, and a ReDoc page per version
  • Health endpoints, container support, CI, and typing, linting, coverage and tests configured up front
  • Admin skinned with Unfold, including a metrics landing page and a visible environment marker

Authentication, opt-in by design. Each mechanism ships as an isolated app that stays inert until it is enabled:

  • 4 login methods Β· 4 second factors Β· 4 social providers Β· 3 token modes
  • Every path converges on a signed JWT
  • Intermediate two-factor state is hashed and held in Redis, and responses are written so they cannot be used to discover which accounts exist

Five optional feature apps. Each stays dormant β€” no migrations, routes or admin registration β€” until it is switched on:

App Scope
cms A page model assembled from reusable, translatable section types, with drafts, scheduling and signed preview links
notifications One notification model exposed over REST, GraphQL, gRPC and WebSocket, kept consistent across a reader's devices
support Ticketing and messaging unified in a single model, covering staff queues alongside group and private conversations
shop Catalogue, variants and stock, timed pricing campaigns, carts, and the order, coupon and payment cycle
wallet Ledger-derived balances with deposits, transfers, conversion, crypto support and operator approval steps

Scaffolding

python manage.py startapi users --api-version v1

Generates the app, registers its router and writes a first endpoint test, so the new route appears in the versioned schema straight away.

Python 3.12+ Β· Django 5.2 and 6.x Β· a documentation page per app


A charting library covering the trading screen and the reporting around it

pub.dev version pub points License Source

A candlestick chart carrying 31 indicators and 29 drawing tools, accompanied by 39 further chart widgets that span order flow, backtest reporting and dashboards. Everything is drawn directly in Flutter through CustomPainter, with no embedded web view and no wrapped JavaScript library. MIT licensed throughout, with no commercial tier and nothing held back behind one.

Eight chart types rendered by ohlcv_chart

The candlestick chart

  • 8 base types, plus Heikin-Ashi, Renko, line break, Kagi, point & figure and range bars as re-aggregations of the source candles
  • 31 indicators instantiated per configuration, so several periods of one indicator coexist; higher-timeframe series derive only from closed bars and so never repaint
  • 29 drawing tools with an inline style editor, multi-select, undo and redo, keyboard shortcuts, JSON serialisation and level-crossing alerts
  • Replay, linked charts, an overview scrubber, order and position overlays, session boundaries and a live price marker

The 39 charts around it

  • Order flow β€” market profile, footprint, book heatmap, cumulative delta, liquidity map, open interest and funding
  • Backtests β€” equity curve with drawdown panel, Monte Carlo bands, R-multiple distribution, trade timeline, seasonality, calendar P&L
  • Dashboards β€” treemap, sunburst, sankey, chord, marimekko, stream, parallel coordinates, box, violin, bullet, gauge, waffle and funnel
  • Derivatives β€” option payoff with break-evens, volatility smiles and term structures, pair spreads with a z-score

Dart 3.12+ Β· Flutter 3.44+ Β· themeable throughout Β· a documentation page per feature


Supporting packages

Small, single-purpose packages extracted from production Flutter work β€” each one solving one problem completely.


Architecture β€” explicit error flow and predictable state, with zero code generation

Package What it does Link
verdict A sealed Result type and structured Failure hierarchy, so calls return a typed verdict instead of throwing across layer boundaries pub.dev β†—
verdict_bloc BLoC states that keep the last known good data through loading and error, plus a paginated list bloc built on verdict pub.dev β†—
safe_json_cast Typed casts for decoded JSON that fail loudly and name the field, so a malformed payload surfaces at the parse site rather than deep in the UI pub.dev β†—

UI components β€” themeable widgets with motion that feels native

Package What it does Link
anchored_popover A popover that anchors to a widget instead of the screen β€” it follows its anchor as the list scrolls, flips and clamps to stay on screen, then fades itself back out pub.dev β†—
capsule_nav_bar A bottom navigation bar that floats over the content as a rounded capsule, its selection marked by a pill sliding between destinations pub.dev β†—
sliding_segmented_control A themeable segmented control with a pill sliding between segments and an optional body that cross-fades underneath it pub.dev β†—
indicator_tab_bar A fixed-width indicator that underlines the label rather than the tab, plus a sliver AnimatedSwitcher for cross-fading each tab's body pub.dev β†—
diamond_percent_slider An integer slider on a scale of diamonds, with a thumb that leans the way it is dragged and a bubble showing the value while it moves pub.dev β†—
ruler_scrubber An accessible ruler-style numeric scrubber for picking a value by sliding a measured scale pub.dev β†—

Notifications β€” two takes on overlay toasts, for different needs

Package What it does Link
toast_overlay An animated, themeable overlay toast with an auto-dismiss countdown ring and an optional copyable support reference id pub.dev β†—
queued_toast Overlay toasts that queue per screen position, de-duplicate identical messages, and stack up to five at a time pub.dev β†—

Networking & security β€” the transport and auth layers behind a live exchange app

Package What it does Link
dpop_client DPoP proof JWTs for Dart (RFC 9449) β€” ES256 key handling, PEM storage, JWK thumbprints, access-token binding, and server-supplied nonces pub.dev β†—
socket_hub One WebSocket, many channels β€” ref-counted subscriptions derived from stream listeners, batched frames, typed payload routing, and resubscribe on reconnect pub.dev β†—

Tooling β€” codegen and design-system chores, automated

Package What it does Link
openapi_enum_patch Prepares an OpenAPI export for codegen: names the integer enums swagger_parser produces, generates the enum files it skips, and audits the ones still unnamed pub.dev β†—
figma_tokens_gen Generates Flutter Color constants and palette maps from Figma design-token JSON exports β€” ships a CLI and a customisable library API pub.dev β†—


Professional work

I am Senior Flutter Engineer at DeltaFX, working on a cross-platform brokerage CRM covering wallets, trading accounts, introducing-broker and affiliate management, social trading, and AI-assisted market analysis.

DeltaFX CRM

Forex brokerage client portal Β· iOS & Android

A modular Flutter application built on Clean Architecture and BLoC, with one module per feature, generated type-safe API clients, resilient authentication, and explicit error boundaries at every layer seam.

Wallets Β· Trading accounts Β· IB & affiliate management Β· Social trading Β· KYC

BTCB Google Play

Cryptocurrency exchange Β· Futures, Spot & OTC

An exchange client with real-time market data, advanced charting, passkey sign-in and DPoP request signing, and full multi-language localization β€” built on the same modular architecture.

Futures Β· Spot Β· OTC Β· Order book Β· Streaming charts Β· Passkeys


Core technologies

Mobile Flutter Dart BLoC Clean Architecture CustomPainter
Backend Python Django Django Ninja FastAPI PostgreSQL
Trading MQL 4 and 5 C sharp Backtesting Algorithmic Trading
Delivery Docker GitHub Actions Git


Research

Author of five peer-reviewed papers on neural networks and biomedical signal analysis, published before moving into financial software full time. The same habits carry over: measure first, model explicitly, and document the method well enough that someone else can reproduce it.



Engineering financial products across mobile, backend, and automation
9+ years across brokerage, exchange, and trading-automation systems in Iran, the UAE, Germany, and Turkey.

Portfolio Β· GitHub Β· PyPI Β· Contact

Pinned Loading

  1. ohlcv_chart ohlcv_chart Public

    A CustomPainter candlestick chart for Flutter with 31 indicators, 29 drawing tools and 39 other chart widgets β€” order book, tape, backtest and dashboard charts. No WebView

    Dart 2

  2. figma_tokens_gen figma_tokens_gen Public

    Generate Flutter Color constants and palette maps from Figma design-token JSON exports β€” checked-in Dart, no runtime parsing

    Dart 1

  3. openapi_enum_patch openapi_enum_patch Public

    Prepare an OpenAPI export for codegen and give real names to the integer enums swagger_parser generates, fill in skipped enum files, and audit what still needs naming

    Dart 1

  4. toast_overlay toast_overlay Public

    An animated, themeable Flutter overlay toast with an auto-dismiss countdown ring and a copyable support reference id β€” renders above dialogs and survives route changes

    Dart 1

  5. verdict verdict Public

    A sealed Result type and structured Failure hierarchy for Dart, so fallible calls return a typed verdict instead of throwing across layer boundaries

    Dart 1

  6. verdict_bloc verdict_bloc Public

    BLoC state where transient states carry the last known good data, so errors never blank the screen β€” plus GenericListBloc for paginated lists

    Dart 1