visitor@afrenchwrench:~$ whoami
بهداد صیادی
مهندس نرمافزار بکاند با بیش از ۴ سال تجربه در طراحی، توسعه و استقرار سیستم با استفاده از Python، Django، PostgreSQL، Redis و Celery. دارای تجربه در معماری بکاند، طراحی APIهای REST و GraphQL، مدلسازی دادههای رابطهای، پردازشهای ناهمگام، احراز هویت و مجوزدهی، بهینهسازی عملکرد پایگاه داده و استقرار سرویسها. توانمند در مالکیت کامل سیستم از مرحله نیازمندی و معماری تا پیادهسازی و استقرار، همچنین هدایت تیمهای مهندسی چندتخصصی.
مهارتها
مهارتهای فنی
تجربه
تجربه کاری
- طراحی و توسعه سیستمهای بکاند آماده بهرهبرداری برای چندین مشتری و صنعت، شامل چهار پروژه تحویلشده از طریق Developeria طی سالهای ۲۰۲۴ و ۲۰۲۵.
- معماری و پیادهسازی APIهای امن REST با Django REST Framework، شامل احراز هویت، مجوزها، اعتبارسنجی، فیلترینگ، صفحهبندی و کنترل دسترسی مبتنی بر نقش.
- طراحی مدلهای رابطهای و بهبود عملکرد پایگاه داده از طریق ایندکسگذاری، بهینهسازی کوئریها و پروفایلینگ در سطح ORM.
- پیادهسازی گردشکارهای ناهمگام با Celery و Redis برای احراز هویت OTP، پردازشهای پسزمینه و وظایف زمانبندیشده.
- توسعه APIهای GraphQL در کنار سرویسهای REST و تطبیق معماری API با نیازمندیهای محصول.
- همکاری مستقیم با مشتریان و تیمهای محصول برای تبدیل نیازمندیها به معماری فنی، برنامه پیادهسازی و سیستمهای آماده بهرهبرداری.
- بنیانگذاری و هدایت یک تیم توسعه نرمافزار چندتخصصی برای ارائه محصولات وب از مرحله نیازمندی اولیه تا پیادهسازی.
- تعریف معماری بکاند، استانداردهای مهندسی، ساختار مخازن، گردشکار توسعه و استانداردهای فنی.
- بررسی پیادهسازیها با تمرکز بر نگهداشتپذیری، امنیت، عملکرد، یکپارچگی و رعایت استانداردهای معماری.
- هماهنگی توسعه بکاند و فرانتاند و تبدیل نیازمندیهای محصول به اجرای فنی در سطح تیم.
پروژهها
پروژههای منتخب
- بنیانگذاری و توسعه Aphra، یک پلتفرم SaaS برای پیدا کردن آرایشگران، مشاهده خدمات و رزرو نوبت.
- مالکیت معماری بکاند و مدل داده اصلی محصول شامل مشتریان، آرایشگران، سالنها، خدمات، نوبتها، زمانهای آزاد، رسانه، احراز هویت و کنترل دسترسی مبتنی بر نقش.
- طراحی و پیادهسازی لایه REST API با فیلترینگ، صفحهبندی، اعتبارسنجی، مجوزها، آپلود رسانه و رزرو.
- طراحی سیستم زمانبندی و دسترسی با پیادهسازی اعتبارسنجی قوانین کسب و کار و سازوکارهای جلوگیری از رزروهای متداخل.
- پیادهسازی زیرساخت ناهمگام با Celery و Redis برای احراز هویت OTP، اعلانها و پردازشهای پسزمینه.
- هدایت توسعه محصول از ابتدا تا انتها با مشارکت در بکاند، فرانتاند و تصمیمات UI/UX و تبدیل نیازمندیهای محصول به یک پلتفرم آماده بهرهبرداری.
- ساخت یک بکاند دانشگاهی با Django برای گردشکارهای واقعی دانشگاه — ثبتنام درس، حذف و اضافه، اعتراض به نمره، حذف اضطراری درس، انصراف از ترم و مرخصی تحصیلی — که بهطور کامل از طریق یک API واحد از نوع GraphQL (Graphene-Django) و بدون لایه REST ارائه میشود.
- اعمال قوانین واقعی ثبتنام در ریزالورها: پیشنیازهای گذراندهشده، عدم تکرار درس، ظرفیت کلاس، سقف واحد بر اساس معدل ترم قبل، و عدم تداخل زمانی کلاس یا امتحان — همگی محدود به رشته خود دانشجو.
- پیادهسازی احراز هویت JWT همراه با بلاکلیست کردن توکن هنگام خروج (django-graphql-jwt به همراه یک بررسی اختصاصی در هر درخواست) و کنترل دسترسی مبتنی بر نقش که بر اساس دانشکده برای کارکنان، دستیاران، اساتید و دانشجویان محدود میشود.
- افزودن کش Redis برای ریزالورهای کوئری و Celery برای ایمیلهای پسزمینه (بازنشانی رمز عبور، اعلان تأیید درس)، همگی روی PostgreSQL در یک راهاندازی چهار-کانتینری با Docker Compose.
- ساخت یک سیستم مدیریت کتابخانه ترمینالی با Python و MySQL، شامل کل چرخه امانت: موجودی کتابها، حساب اعضا، امانت، بازگشت و جریمهها.
- اعمال قوانین امانت در لایه داده: دوره امانت ۱۴ روزه، سقف ۳ امانت فعال برای هر عضو، جلوگیری از امانت گرفتن در صورت داشتن ۲ جریمه پرداختنشده، و جریمه خودکار ۲۵ واحدی به ازای هر روز تأخیر پس از ۳ روز مهلت.
- استفاده از یک تریگر در MySQL برای تضمین وجود تنها یک حساب مدیر — اعمالشده در سطح پایگاه داده، نه فقط در کد برنامه — همراه با رمزهای عبور هششده با bcrypt و اعتبارسنجی در سطح هر مدل که از حذف رکوردهایی که هنوز جای دیگری استفاده میشوند (مثلاً نویسندهای با کتاب) جلوگیری میکند.
- ساختاردهی کد به ماژولهای جدا برای منوهای CLI، مدلهای داده و احراز هویت، همراه با مجموعه تست اختصاصی برای هر مدل و یک اسکریپت seed مبتنی بر Faker که پایگاه داده را با دادههای نمونه واقعی — از جمله چند امانت عمداً دارای تأخیر — پر میکند.
دستاوردها
برنامهنویسی رقابتی و دستاوردها
گواهینامهها
گواهینامهها
تحصیلات
تحصیلات
- گذراندن دو ترم تحصیلی و سپس تصمیم به ترک دانشگاه برای ادامه مسیر مهندسی نرمافزار بهصورت مستقل، با تمرکز بر کار عملی و پروژهمحور بهجای ادامه واحدهای درسی.
زبانها
زبانها
راههای ارتباطی
ارتباط با من
برای پروژههای فریلنس، موقعیتهای بکاند و همکاریهای فنی در دسترسم.