پرش به محتوای اصلی
بهنام آذری
RFC-۰۰۱ وضعیت: پذیرش پروژه از اردیبهشت آخرین بازبینی: امسال
مهندس نرم‌افزار ارشد · بک‌اند و سیستم‌های توزیع‌شده

سیستم‌هایی می‌سازم که ساعت سه بامداد کسی را بیدار نمی‌کنند.

نُه سال است روی سرویس‌های بک‌اندی کار می‌کنم که اگر بخوابند، کسب‌وکار می‌خوابد. کارم فقط نوشتن کد نیست؛ نوشتن سندی است که شش ماه بعد، مهندس بعدی بتواند بدون تماس با من ادامه‌اش بدهد.

تجربه ۹ سال از استارتاپ چهارنفره تا بانک
اوج ترافیک ۱۲ هزار درخواست بر ثانیه، سرویس پرداخت
دسترس‌پذیری ۹۹٫۹۸٪ میانگین دوازده ماه گذشته
متن‌باز ۴۱ مخزن کتابخانه، ابزار و نمونه‌کد
تخصص‌ها

شش مسئله‌ای که بلدم حل کنم

بیرون از این فهرست هم کار کرده‌ام، اما این‌ها جایی است که می‌توانم بدون آزمون‌وخطا به نتیجه برسم.

طراحی سرویس‌های توزیع‌شده

شکستن یک تک‌پارچه‌ی بزرگ به سرویس‌هایی با مرز روشن، بدون اینکه پیچیدگی از کد به شبکه منتقل شود.

Go · gRPC

کارایی و تأخیر

پیدا کردن گلوگاه واقعی با پروفایلینگ و ردیابی توزیع‌شده — نه با حدس زدن و بازنویسی کورکورانه.

pprof · OTel

مدل‌سازی و مهاجرت داده

طراحی شِما، پارتیشن‌بندی و مهاجرت‌های بدون قطعی روی جدول‌هایی که صدها میلیون سطر دارند.

PostgreSQL

پایداری و بازیابی

بودجه‌ی خطا، آزمون بار، برنامه‌ی رویداد و پس‌مرگی بدون سرزنش؛ تا خرابی بعدی ارزان‌تر تمام شود.

SLO · SRE

خط لوله‌ی تحویل

ساخت مسیر انتشار خودکار با آزمون، بازگشت سریع و انتشار تدریجی؛ استقرار باید کسل‌کننده باشد.

CI/CD · K8s

راهبری فنی تیم

بازبینی کد، سند طراحی و منتورینگ مهندسان جوان‌تر؛ بخش بزرگی از کیفیت، در گفت‌وگو ساخته می‌شود.

Design Docs
نمودار معماری

شکل معمول سیستمی که تحویل می‌دهم

هر پروژه جزئیات خودش را دارد، اما لایه‌بندی تقریباً همیشه همین است: مرز روشن، وابستگی یک‌طرفه و مسیر داده‌ی قابل ردیابی.

هر لایه فقط با لایه‌ی پایین‌تر حرف می‌زند. هر سرویس پایگاه داده‌ی خودش را دارد و هیچ سرویسی جدول سرویس دیگر را مستقیم نمی‌خواند.

پرونده‌ها

شش پروژه، با عددی که بعدش ماند

نام کارفرماها طبق قرارداد محرمانه است؛ مسئله، تصمیم و نتیجه واقعی‌اند.

پرونده مهندسی بازطراحی سرویس پرداخت
سیستم پرداخت · فین‌تک

پرداختی که در جمعه‌ی فروش نمی‌افتاد

سرویس پرداخت در اوج فروش قفل می‌شد. تراکنش‌ها را از قفل خوش‌بینانه به صف رویداد با تضمین یک‌بار پردازش منتقل کردیم.

−۷۳٪کاهش خطای اوج بار
پرونده مهندسی مهاجرت پایگاه داده
پایگاه داده · خرده‌فروشی

مهاجرت ۴۰۰ میلیون سطر، بدون قطعی

جدول سفارش‌ها به مرز خودش رسیده بود. پارتیشن‌بندی زمانی و نوشتن دوگانه در شش هفته و بدون یک دقیقه قطعی اعلام‌شده انجام شد.

۰ دقیقهقطعی برنامه‌ریزی‌نشده
پرونده مهندسی کاهش هزینه زیرساخت
زیرساخت · سامانه ابری

صورت‌حساب ابری که دو برابر شده بود

هیچ‌کس نمی‌دانست هزینه از کجاست. برچسب‌گذاری منابع، اندازه‌گذاری دوباره‌ی پادها و حذف نودهای بی‌کار، مسئله را حل کرد.

−۴۱٪کاهش هزینه ماهانه
پرونده مهندسی جست‌وجوی محصول
جست‌وجو · بازارگاه

جست‌وجویی که نتیجه‌ی درست را دیر می‌آورد

نمایه‌سازی هم‌زمان با نوشتن، تأخیر را بالا برده بود. نمایه‌ساز به مصرف‌کننده‌ی رویداد تبدیل شد و مسیر خواندن سبک ماند.

۸۵ میلی‌ثانیهتأخیر صدک نودونهم
پرونده مهندسی خط لوله تحویل
تحویل · تیم ۲۴ نفره

انتشاری که دیگر شب جمعه نبود

انتشار دستی و ترسناک بود، پس ماهی یک‌بار انجام می‌شد. خط لوله‌ی خودکار با انتشار تدریجی و بازگشت یک‌کلیکی ساخته شد.

۳۱ بارانتشار در هفته
پرونده مهندسی پایش و هشدار
پایش · سامانه لجستیک

هشدارهایی که کسی جدی نمی‌گرفت

شبی چهل هشدار می‌آمد و همه بی‌صدا می‌شدند. هشدارها بر پایه‌ی بودجه‌ی خطا بازنویسی شد: کمتر، اما هر کدام قابل اقدام.

−۸۸٪کاهش هشدار شبانه
متن‌باز

چیزهایی که ساختم و رهایشان کردم

ابزارهای کوچکی که از دل پروژه‌های واقعی بیرون آمده‌اند و حالا تیم‌های دیگر هم از آن‌ها استفاده می‌کنند.

migrate-safe

مهاجرت شِما با نوشتن دوگانه و بازگشت خودکار، برای جدول‌هایی که نمی‌شود قفلشان کرد.

Go ۲٫۴ هزار لایسنس MIT

slo-kit

تعریف بودجه‌ی خطا به‌صورت پیکربندی و تولید خودکار داشبورد و قواعد هشدار.

Go ۱٫۱ هزار لایسنس Apache

rtl-logfmt

نمایشگر لاگ خط فرمان با پشتیبانی درست از متن راست‌به‌چپ و ارقام فارسی.

Rust ۶۴۰ لایسنس MIT

queue-lab

محیط آزمایشی برای مقایسه‌ی الگوهای صف و رفتارشان زیر بار و خرابی شبکه.

Python ۳۸۲ لایسنس MIT
سوابق

مسیر کاری

۱۴۰۲ — اکنون

مهندس نرم‌افزار ارشد · گروه پرداخت

مالک فنی سرویس تسویه؛ طراحی معماری رویدادمحور، راهبری چهار مهندس و بازنویسی مسیر بحرانی تراکنش.

۱۳۹۹ — ۱۴۰۲

مهندس بک‌اند · بازارگاه آنلاین

شکستن تک‌پارچه به هفت سرویس، ساخت خط لوله‌ی انتشار و پایه‌گذاری فرهنگ سند طراحی پیش از کدنویسی.

۱۳۹۷ — ۱۳۹۹

مهندس نرم‌افزار · استارتاپ لجستیک

تیم چهارنفره بودیم و همه‌کار می‌کردیم: از API تا استقرار. جایی که یاد گرفتم ساده نگه داشتن، خودش یک مهارت است.

۱۳۹۵ — ۱۳۹۷

کارشناسی ارشد مهندسی نرم‌افزار

پایان‌نامه درباره‌ی هماهنگی داده در سیستم‌های توزیع‌شده؛ همان موضوعی که هنوز نان‌آورم است.

تیم‌هایی که با آن‌ها کار کرده‌ام

بهنام آذری، مهندس نرم‌افزار
درباره من

بهنام آذری

با یک اسکریپت خط فرمان برای مرتب کردن فایل‌های دانشگاه شروع شد و به سرویس‌هایی رسید که هر شب میلیون‌ها تراکنش را جابه‌جا می‌کنند. در این مسیر یاد گرفتم که سخت‌ترین بخش مهندسی، انتخاب چیزی است که نباید ساخت.

روزهای زوج مهندسی می‌کنم و روزهای فرد سند می‌نویسم. اگر تیمی دارید که روی مقیاس یا پایداری گیر کرده، معمولاً می‌توانم در دو هفته بگویم مسئله کجاست.

سیستم‌های توزیع‌شده۹۴٪
پایگاه داده و مدل‌سازی۹۰٪
زیرساخت و کوبرنتیز۸۵٪
راهبری فنی و منتورینگ۸۸٪
بازخورد همکاران

آدم‌هایی که با من کد بازبینی کرده‌اند

«سند طراحی‌اش را خواندم و نصف سؤال‌هایم قبل از پرسیدن جواب داده شده بود. کم پیش می‌آید.»

نگار م.
مدیر فنی، گروه پرداخت

«مهاجرت پایگاه داده را بدون یک دقیقه قطعی برد جلو. تیم عملیات حتی متوجه شبِ انتقال نشد.»

سعید ط.
مدیر محصول، بازارگاه

«بازبینی کدش سخت‌گیرانه است ولی هیچ‌وقت شخصی نیست. بعد از شش ماه، کد تیم قابل‌تشخیص بهتر شد.»

آرزو ک.
مهندس بک‌اند

«هزینه‌ی ابری‌مان را نصف کرد و هیچ سرویسی کندتر نشد. گزارشش هم یک صفحه بود، نه سی صفحه.»

رامین ف.
مدیر زیرساخت
تماس

شرح مسئله را بفرستید

هرچه مسئله دقیق‌تر نوشته شود، جواب من هم دقیق‌تر است. معمولاً ظرف دو روز کاری پاسخ می‌دهم.

راه‌های ارتباط

ایمیل
b@azari.dev
گیت‌هاب
github.com/behnam-azari
لینکدین
in/behnam-azari
موقعیت
تهران · دورکاری با اختلاف ساعت تا +۴