Senior Software Engineer · .NET Backend & Distributed Systems
Mojtaba Norouzi
Building reliable backend systems through production change.
At Okala, I have owned delivery of two production-platform replacements across
fulfillment and delivery operations. My work combines .NET, Kafka and SQL Server
with production reliability and technical mentoring. Based in Tehran and open to EU relocation.
Senior Software Engineer · Okala (Golrang Industrial Group), Tehran
Oct 2024 — Present Promoted from Software Engineer · Feb 2022 — Sep 2024
Okala is an online grocery platform handling 150K+ orders daily and over 300K during
campaigns. My work spans fulfillment, logistics, and delivery operations. The projects
below cover both roles, including shared delivery with the team.
I owned the replacement of two live platforms, first fulfillment and then delivery: building their replacements, migrating every operational flow, and retiring both legacy systems. Following the migration from Windows Server to containerised services on Kubernetes, production incidents became rare, down from almost daily.
.NET
Kubernetes
Domain-driven design
Delivery Operations APIs
With the team, I built a platform with four independently deployable .NET 10 services and around 200 versioned REST endpoints. Four versions of the store API run side by side to support existing clients.
REST · API versioning
Kafka
ASP.NET Core
AutoRadius — Rules Over Guesswork
I designed a rules engine to replace manual store delivery-radius configuration, using time of day, weather, and pending-order backlog. Repartitioning Kafka events by store preserves per-store ordering and avoids contention on a shared database table.
Rules engine
Kafka
Operations
Geospatial Store Coverage
I built delivery coverage and nearby-store search with SQL Server spatial types and NetTopologySuite: delivery radii, exclusion polygons, and distance-ranked results.
NetTopologySuite
SQL Server spatial
Geospatial
A Kafka Backbone with a Transactional Outbox
I led work on a 40-topic Kafka event backbone with at-least-once delivery and per-entity ordering. Reliability measures include consumer retries with backoff, a persisted transactional outbox, and Redis-based customer-notification deduplication across service replicas.
Kafka
Transactional outbox
Redis
Tests That Boot Real Infrastructure
I built an integration harness that runs real SQL Server and Redis containers, hosts two ASP.NET Core applications, and exercises them over HTTP. Tests run in parallel GitLab CI jobs. Prometheus metrics and distributed tracing support diagnosis across all four production services.
Testcontainers
xUnit · BDD
GitLab CI
Alongside implementation, I define engineering standards and mentor junior and mid-level engineers through
code reviews, design discussions and technical problem-solving.
Engineering case study: replacing two live platforms
Context. Okala’s fulfillment and delivery operations ran on existing production systems. My work involved building their replacements, moving operational workflows and retiring the predecessors.
My responsibility. I owned execution of the fulfillment replacement during my Software Engineer role, then the delivery replacement as a Senior Software Engineer. The wider delivery platform was built with the team.
Implementation. The current delivery platform comprises four independently deployable .NET services. Its APIs support four concurrent store API versions. I led the Kafka event-backbone work, using business-entity keys for per-entity ordering, with at-least-once delivery, retries and notification deduplication.
Verification and operations. I built integration tests using real SQL Server and Redis containers and two ASP.NET Core hosts. Metrics and distributed tracing support production diagnosis across the services.
Outcome. Both predecessor platforms were retired after their workflows migrated. Following the move from Windows Server to Kubernetes, production incidents became rare, down from almost daily.
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 2022Backend EngineerCapital-markets software company, Tehran · C#/ASP.NET services for stakeholder conferencing, automated reporting, and real-time dashboards; RabbitMQ, SQL Server & Redis
2018 — 2019Research 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
02
About
I have built commercial backend systems since 2018, working on the services that support everyday commerce and delivery.
My work spans implementation, production migrations and operational support. I also mentor engineers through code reviews and design discussions. I hold an M.Sc. in Artificial Intelligence; my research on transfer learning for reinforcement learning led to a co-authored journal publication.
Outside engineering, I play Persian percussion and string instruments. Music is a lasting part of my life alongside software.
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.
From the concert archive
Music, in good company.
Two posters from my concerts with the Foroozan Ensemble.