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.
| 17 packages published on pub.dev & PyPI |
9+ years brokerage & exchange systems |
MIT licensed documented and reusable |
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.
A production-oriented Django Ninja starter, as a template and a generator
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 v1Generates 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
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.
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
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 β |
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.
|
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 |
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 |
| Mobile |
|
| Backend |
|
| Trading |
|
| Delivery |
|
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.





