BACKEND ENGINEER & TECHNICAL LEADBased in Iran. Building beyond borders.

Serious systems.
Playful mind.

A little machine for big ideasAn isometric blue and porcelain marble machine: messages travel along curved silver pipes between a database, a processing tower, and an orderly queue.PERSISTDISPATCH

I’m Aryan. I make complex systems
work beautifully, under real-world pressure.

View work
Complexity, handled.
Code Systems People Impact
SELECTED WORK

Behind the scenes.
Out in the real world.

Real products. Real constraints. A few things I’ve helped make work.

Database migration

Changing the engine. Still moving.

99.9%availability during cutover
MongoDBDual writeReconcilePostgreSQL

The problem

Loyalty balances and settlements needed relational integrity. Merchants were already using the platform.

My contribution

I introduced dual writes, reconciled the two stores, and moved reads one domain at a time behind feature flags.

The outcome

A staged MongoDB to PostgreSQL migration that maintained 99.9% availability.

The trade-off

Temporary duplicate writes and reconciliation bought us a controlled rollback path.

Python / Django / PostgreSQL / MongoDB
Event-driven messaging

One slow provider. No traffic jam.

85-95%less analytic-store query load
IncomingDispatcherProvider lanesDelivery

The problem

Delivery webhooks sometimes arrived before their message records. A slow SMS provider could hold up other traffic.

My contribution

I separated provider dispatch queues, deferred early webhook processing, and added a TTL cache for repeated lookups.

The outcome

85-95% less analytic-store query load, with retries and dead-letter handling isolated by provider.

The trade-off

Delivery remains at-least-once. Retries can duplicate sends, so monitoring and controlled replay matter.

Go / Kafka / ClickHouse / TTL caching
Payments architecture

Nine gateways. One clear contract.

9Iranian payment gateways
CheckoutRegistryGatewayVerify

The problem

Each gateway brought its own request formats, verification rules, and transaction states.

My contribution

I put nine gateways behind a shared registry and interface, with explicit verification and state checks.

The outcome

A consistent integration surface for gateway selection, payment creation, and verification.

The trade-off

The common interface still has to preserve each provider's distinct verification behavior.

Python / Django / Payment APIs
Commerce integration

Loyalty, where the shopping happens.

~300merchant sites
StorefrontPluginLoyalty APIRewards

The problem

Merchants needed loyalty features inside their existing stores, without replacing their checkout experience.

My contribution

I built a WooCommerce integration with REST controllers and Gutenberg blocks.

The outcome

The plugin reached approximately 300 merchant sites.

The trade-off

Compatibility across store themes and plugin combinations is part of the ongoing maintenance work.

PHP / WooCommerce / Gutenberg / REST
Infrastructure economics

Make the invisible costs visible.

~30%lower cluster resource consumption
WorkloadsMeasureAttributeOptimize

The problem

Shared infrastructure obscured which products were consuming cluster resources.

My contribution

I introduced product-level cost allocation to help teams identify and prioritize optimization work.

The outcome

The analysis informed optimization associated with approximately 30% lower cluster resource consumption.

The trade-off

Attribution guided the decisions; the reduction came from the resulting optimization work, not the reporting alone.

Kubernetes / Observability / Cost attribution
Selected work at Idekavan / DobareMore on GitHub
A LITTLE LESS ABSTRACT

Good systems
leave room to play.

Make a provider slow. Send an event.
See why independent queues matter.

A simplified illustration of the messaging architecture.
MESSAGE ROUTER
Incoming event
A
Ready
B
Ready
00delivered
The queues are quiet. Send something through.

A builder.
And a people person.

The best part of engineering is connecting the pieces. Sometimes that means services. Sometimes it means people.

I’m a backend engineer and technical lead based in Tehran. At Idekavan / Dobare, I lead four engineers while staying hands-on with architecture, delivery, and reliability.

I’ve also taught Python and web development across three cohorts, reaching about 120 students. Explaining a tricky idea is one of my favorite ways to understand it better.

PythonDjangoGoPostgreSQLKafkaRedisDockerKubernetes
THE FULL STORYRésumé PDF
HAVE SOMETHING INTERESTING IN MIND?Open to remote roles.
Based in Iran.
Let’s make
it work.