درباره من
در سیستمهایی کار میکنم که خطا در آنها گران تمام میشود. هفت سال است روی کیفپولها، لجرها و پلتفرمهای بیمه کار میکنم؛ جایی که یک خطای گِرد کردن، پول واقعی یک آدم واقعی است.
کیفپول دیجیتال بیمه سامان را بهعنوان تنها توسعهدهنده، از یک کدبیس نیمهکاره به پروداکشن رساندم؛ جایی که در حدود دو سال بیش از ۲۰۰ میلیارد تومان تراکنش پردازش کرد. مدل لجر، کنترل همزمانی، idempotency در کالبکهای درگاه، مغایرتگیری خودکار شبانه و audit trail را خودم ساختم.
معماری برای من دیاگرام نیست؛ چیزی است که تعیین میکند بدترین شب کاریات چقدر بد باشد. با Clean Architecture، DDD و CQRS کار میکنم چون در عمل هزینهٔ تغییر را پایین نگه میدارند. آمادهٔ همکاری دورکاری.
مهارتها
اکوسیستم .NET
ASP.NET Core، DI، Middleware، Filters، Background Services، Configuration
پایگاه داده و ORM
EF Core (Code First، Migration)، Dapper، T-SQL، Performance Tuning، Indexing
NoSQL و Cache
Redis (کش توزیعشده)، MongoDB (آشنا)
لاگینگ و مانیتورینگ
Serilog، ELK Stack (Kibana)، Seq، Grafana، Custom Metrics
معماری
Clean Architecture، DDD، CQRS، Repository، Unit of Work، Microservices، Event-Driven
ابزارها
Git، Docker، CI/CD (آشنا)، Stimulsoft، Swagger
فرانتاند (آشنا)
JavaScript، React، Blazor
هوش مصنوعی
Claude، GitHub Copilot (جهت تسریع توسعه)
تجربیات کاری
توسعهدهنده ارشد بکاند | طراحی سیستم — بیمه سامان
تیر ۱۴۰۲ – اکنونتهران، ایران
کیفپول دیجیتال (اپلیکیشن بیمه سامان)
- لجر بهعنوان منبع یگانهٔ حقیقت — هر موجودیای که کاربر میبیند از روی تراکنشهای ثبتشده بازسازیپذیر است، نه از یک ستون کششده.
- پول بهشکل Value Object (مقدار + ارز + قواعد) بهجای یک decimal خالی، تا خطای ارز یا مقدار منفی در مرز دامنه فریاد بزند نه در یک گزارش بیصدا.
- Idempotency در کالبکهای درگاه پرداخت و تکرار درخواست کاربر — کالبک تکراری و دابلکلیک دیگر پول تکراری نمیسازد.
- کنترل همزمانی روی تغییر موجودی و رفع race condition که در staging پول تکثیر میکرد.
- مغایرتگیری خودکار شبانه، بعد از اینکه یک بررسی دستی مغایرت سه روز وقت گرفت.
- لاگ ساختاریافته با Serilog و ELK؛ داشبورد پایش تراکنش برای تیم عملیات و تشخیص الگومحور رفتارهای غیرعادی.
- دو نوع کیفپول (اعتباری و نقدی) با قواعد مستقل؛ شارژ از درگاه، اعتبار معرفی، برداشت و انتقال کاربر به کاربر. یکپارچهسازی درگاه بهصورت سرویس مستقل با مسیرهای شکست مشخص.
- جذب رشد ۱۰ برابری حجم تراکنش با بهینهسازی کوئری، کش Redis و جابهای پسزمینه؛ انتقال دانش به تیم ششنفرهای که بعداً سیستم را تحویل گرفت.
مشارکت در توسعه سیستمهای بیمهای
- یونیتلینک طلا (Microservices، DDD، Event-Driven، .NET 6): توسعه و نگهداری سرویسهای بیمهای مبتنی بر رویداد
- درمانت (ASP.NET MVC، ADO.NET، .NET 4.5): فیچرهای جدید، Custom Metrics و داشبورد Grafana
توسعهدهنده .NET — مهرسپند
آذر ۱۴۰۰ – تیر ۱۴۰۲تهران، ایران
- توسعه و نگهداری نرمافزارهای داخلی بانکی با ASP.NET Core Web API
- استفاده از معماری DDD برای لایهبندی مؤثر نرمافزار
- بهکارگیری EF و Dapper برای ارتباط کارآمد با پایگاهداده
- یکپارچهسازی سرویسهای خارجی با Flurl و Stimulsoft برای گزارشگیری
توسعهدهنده فولاستک وب — سایپا
شهریور ۱۳۹۹ – آبان ۱۴۰۰تهران، ایران
- رهبری مهاجرت سیستم داخلی سایپا از Oracle Forms به ASP.NET Core + React
- پیادهسازی Kendo UI برای رابط کاربری و Stimulsoft برای گزارشگیری
پروژهها
پیشگامیت — پلتفرم خبری/آموزشی
بنیانگذار و تنها توسعهدهنده از ۱۳۹۶ — طولانیترین سیستمی که مالکش هستم. بیش از ۴۰۰۰ مطلب، اوج ۱۵۷ هزار بازدید ماهانه، بازنویسیشده از ASP.NET MVC روی .NET 8.
- مالکیت کامل: SQL Server، IIS، VPS، دیپلوی، پایش و سئو.
- بازیابی از جریمهٔ گوگل با حذف حدود ۶۰٪ محتوای کمکیفیت و بازسازی ساختار برچسبها (از ۱۱٬۰۰۰ برچسب به یک ساختار قابل استفاده).
Digital Wallet — میکروسرویس (متنباز)
سیستم کیفپول دیجیتال متنباز با معماری مدرن
- ASP.NET Core 8 + Clean Architecture + CQRS + Event-Driven + Docker Compose
مهارتهای نرم
- مسئولیتپذیر و پایبند به تعهدات زمانی
- توانایی تحلیل نیازمندی و پیشنهادات سازنده
- تجربه کار تحت فشار بالا
- آشنا با Scrum و Agile
- Onboarding اعضای جدید و مستندات فنی
- توانایی دورکاری و گزارش منظم
- علاقهمند به یادگیری مستمر
- یادگیری سریع سیستمهای ناآشنا
تحصیلات
کارشناسی مهندسی تکنولوژی نرمافزار
دانشگاه آزاد اسلامی واحد ماهشهر | بهمن ۱۳۹۲ – شهریور ۱۳۹۶ | معدل: ۱۵