Senior Software Engineer · Backend & Distributed Systems · Persian Musician
Mojtaba Norouzi
I architect distributed systems and keep the rhythm of the
daf — engineering and music, two expressions of the same pattern-sense.
Senior .NET backend engineer with 8 years building backend systems for e-commerce and
logistics — the last four on event-driven distributed systems at scale — an M.Sc. in AI,
and a player of Daf, Tar, Tonbak, and Setar.
I live where structure meets expression. By day I design and ship reliable backend
systems — event-driven services, data models, and APIs that hold up under load.
By night I sit behind a tonbak or lift a daf, working in
the same currency I use at work: pattern, timing, and tension-and-release.
A 6/8 Persian rhythm and a well-orchestrated stream of Kafka events aren't so different —
both are about getting many independent voices to stay in time. Whether I'm tuning a
consumer group for throughput or tuning a daf for a performance, I'm chasing the same
thing: many parts moving on their own yet landing together, exactly on the beat. That
instinct — for structure that breathes — is what ties my engineering and my music into a
single way of thinking.
02
Engineering
Senior Software Engineer · Okala (Golrang Industrial Group), Tehran
Oct 2024 — Present Promoted from Software Engineer · Feb 2022 — Sep 2024
Core skills
C# / .NET 6–10
ASP.NET Core
EF · LINQ · T-SQL
Clean Architecture
Domain-Driven Design
Event-Driven Design
Apache Kafka
RabbitMQ
Redis
SQL Server
Geospatial · NetTopologySuite
Testcontainers · xUnit
Prometheus · Elastic APM
Docker · Kubernetes
CI/CD · Agile
Selected projects
Four Generations off the Monolith
Owned execution of a multi-year migration off the fulfillment monolith — building its replacements from zero, moving every operational flow across, then decommissioning the originals. Production incidents fell from near-daily to one or two a month.
.NET
Kubernetes
DDD · EDD
High-Throughput Logistics APIs
Designed and built the APIs behind 150K+ orders a day — over 300K during campaigns: around 200 versioned REST endpoints running four versions of one API surface side by side, integrating third-party logistics over Kafka and orchestrating couriers, the call center, and customers.
REST · API versioning
Kafka
ASP.NET Core
AutoRadius — Rules Over Guesswork
Replaced hand-maintained, per-store delivery radiuses with a rules engine that encodes operations agents' expertise, evaluating time of day, weather, and pending-order backlog to adjust each store automatically. Its pending-order signal is kept live by re-partitioning order events onto one ordered Kafka partition per store.
Rules engine
Kafka
Operations
Geospatial Store Coverage
Store coverage and nearby-store search built on SQL Server spatial types with NetTopologySuite (SRID 4326) — delivery-radius coverage, polygon non-coverage areas, and distance-ranked results — evolved across four side-by-side API versions.
NetTopologySuite
SQL Server spatial
Geospatial
A Kafka Backbone with a Transactional Outbox
A 40-topic event backbone with at-least-once delivery and per-entity ordering — every message keyed by its business entity ID. Failed events retry with backoff, then land in a persisted outbox a sweeper reprocesses every two minutes; an atomic Redis SET NX guard stops duplicate notifications across replicas.
Kafka
Transactional outbox
Redis
Tests That Boot Real Infrastructure
A test suite across unit, integration, and Gherkin BDD tiers — the integration harness boots real SQL Server and Redis containers via Testcontainers, hosts two full ASP.NET Core apps, and drives them over real HTTP through typed clients, sharded across parallel CI jobs.
Testcontainers
xUnit · BDD
GitLab CI
Timeline
Oct 2024 — PresentSenior Software EngineerOkala (Golrang Industrial Group), Tehran · .NET services on Kubernetes, Kafka, geospatial SQL Server, mentoring & CI/CDPromoted from Software Engineer · Feb 2022 — Sep 2024
Oct 2018 — Feb 2022Back-End DeveloperCapital-markets software company, Tehran · ASP.NET, RabbitMQ, SQL Server & Redis
Sep 2017 — Oct 2018Research AssistantShahid Beheshti University, Tehran · Multi-Agent Systems (MAS) Lab — transfer learning for reinforcement learning, applied to traffic signal control
2016 — 2019M.Sc. — Artificial IntelligenceShahid Beheshti University · reinforcement learning & transfer learning
03
Music
Persian percussion and string traditions, starting with fifteen years behind a daf.
Daf
Primary instrument · 15 years
Frame drum at the heart of Sufi and folk repertoire. The constant thread from early TV performances in Semnan Province to concert stages in Tehran.
Tar
Since 2018
Long-necked lute carrying the melodic modes (dastgāh) of Persian classical music.
Tonbak
Since 2023
The principal goblet drum of Persian classical music; intricate finger technique and meter.
Setar
Currently learning · since 2025
A quieter, four-stringed relative of the tar, central to solo and mystical repertoire.
Performance highlights
Live television performances for national calendar celebrations — Semnan Province, circa 2012–2013
Numerous regional performances for local organizations and events, Semnan Province
Concert performance — Azadi Hall, Tehran, 2017
Concert performance — Vahdat Hall, Tehran, 2018
04
Education
M.Sc. — Artificial Intelligence
Shahid Beheshti University · 2016 – 2019
Focus on machine learning and reinforcement learning, with research in transfer learning for traffic-signal control.
B.Sc. — Computer Engineering
Shahrood University of Technology · 2012 – 2016
Foundations in software engineering, algorithms, and systems.
Publication
“Experience Classification for Transfer Learning in Traffic Signal Control” —
Springer, 2020
05
Blog
A working notebook — things I learned, things I built, and papers I went down a
rabbit hole on.