مستند درخواست ارتقا

نام: محمد میثاقی

عنوان فعلی: برنامه‌نویس فرانت‌اند

عنوان مورد درخواست: (پوزیشن 4 فراتر از انتظار) برنامه‌نویس فول‌استک

تاریخ: ۲۵ آذر ۱۴۰۳

تصویر پروفایل

مقدمه

این مستند با هدف بررسی و درخواست ارتقای شغلی من تهیه شده است. از همان ابتدا مشخص نبود که از چه زاویه‌ای باید به معرفی دستاوردها و تلاش‌ها بپردازم: آیا صرفاً به موفقیت‌های فردی اشاره کنم یا نقش و سهم تلاش‌های تیمی را نیز برجسته سازم؟

نوشتن دربارهٔ خود و بیان دستاوردهای شخصی، گرچه کار چندان ساده‌ای نیست، اما امری کلیدی به شمار می‌آید؛ چراکه نیازمند ارزیابی دقیق عملکرد گذشته و مرور نقاط قوت و قابل‌بهبود است. از سوی دیگر، چنین مستندی نه‌تنها بازتاب‌دهندهٔ تلاش‌های فردی، بلکه نمایانگر هم‌افزایی موجود در تیم و سازمان نیز هست. ترسیم تصویری از این تعامل، به تصمیم‌گیران کمک می‌کند تا هم استعدادهای فردی را بهتر شناسایی کنند و هم به درک روشن‌تری از تأثیر همکاری‌های گروهی برسند.

عملکرد فراتر از انتظار

طبق معیارهای سطح ۴ در سازمان—که شامل تسلط بر دانش فنی، قدرت ایده‌پردازی، رهبری تیم‌های کوچک و پیشبرد مأموریت گروه است—توانستم در جایگاه برنامه‌نویس فرانت‌اند فراتر از انتظارات ظاهر شوم. در کنار انجام مسئولیت‌های محول‌شده، وظایفی فراتر از شرح شغلی نظیر توسعه بک‌اند و امور مربوط به دواپس (DevOps) را نیز برعهده گرفتم.

علاوه بر ایفای نقش فنی در پروژه‌های «فناپ کمپس»، «کنوس» و «مان»، هدایت تیم‌های کوچک و آنبورد کردن همکاران جدید نیز بخشی از فعالیت‌هایم بوده است. تسلط بر فناوری‌های گوناگون و مهارت در رفع چالش‌های پیچیده در حوزه‌های فرانت‌اند، بک‌اند و زیرساخت‌های فنی، در کنار نوآوری و پیاده‌سازی ایده‌های خلاقانه، شاهدی بر عملکرد فراتر از انتظار من در این سطح به‌شمار می‌آید.

تصویر مفهومی عملکرد فراتر از انتظار

نمایش محصولات و نقش من در آن‌ها

فناپ کمپس

فناپ کمپس

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

مشاهده وبسایتمشاهده نمونه کدها

نقش من:

  • در نسخهٔ اولیهٔ پروژه، 100٪ توسعه بک‌اند و فرانت‌اند (React) برعهدهٔ من بود و به‌صورت مستقل برای چند ماه تمام بخش‌های فنی را پیاده‌سازی کردم.
  • در مرحلهٔ بازنویسی به Next.js، حدود 40٪ از فرایند ری‌فکتور و توسعه را برعهده داشتم.
  • طراحی و پیاده‌سازی APIهای جدید بک‌اند برای یکپارچه‌سازی سیستم و توسعهٔ قابلیت‌های جدید.
  • پیاده‌سازی سیستم احراز هویت یکپارچه برای تمامی محصولات مرتبط با کمپس جهت ارتقای امنیت و سهولت استفاده.
  • مشارکت در استانداردسازی طراحی رابط کاربری و زیرساخت‌های فنی برای توسعه پایدار و قابل نگهداری.

مان

مان

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

مشاهده وبسایتمشاهده نمونه کدها

نقش من:

  • انجام حدود 75٪ از کل کار پروژه (از جمله رفع باگ‌ها و اعمال بازخوردها).
  • نوآوری 1: به‌کارگیری روشی جدید و خلاقانه برای مخفی‌سازی کلید API در سمت کلاینت (Next.js) که در اینترنت نمونه‌ای مشابه آن وجود نداشت.
  • توسعه سریع و ضرب‌الاجلی فرانت‌اند پروژه برای تحویل به‌موقع محصول.
  • نوآوری 2: افزودن قابلیت انتخاب فریم از ویدیو حین آپلود به‌کمک تکنیک‌های Canvas. این فیچر باوجود پیچیدگی و بار زیاد روی فرایند آپلود، با ایده‌پردازی و پیاده‌سازی من محقق شد؛ در حالی‌که ابتدا تیم قصد حذف این قابلیت را داشت.
  • همکاری نزدیک با تیم بک‌اند برای پیاده‌سازی قابلیت‌های پیچیده و رفع موانع فنی.
  • پیاده‌سازی پخش‌کننده ویدیو به‌صورت کاملاً اختصاصی از پایه برای اجرای دقیق نیازهای محصول.
  • توسعه سیستم بارگذاری ویدیوها برای سهولت و کارایی بیشتر فرآیند آپلود محتوا.
  • بهینه‌سازی محصول برای نمایش موبایل ویو با تاکید بر تجربه کاربری ساده و روان در دستگاه‌های همراه.

کنوس

کنوس

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

مشاهده وبسایتمشاهده نمونه کدها

نقش من:

  • حدود 30٪ از کل پروژه را انجام دادم؛ تمرکز اصلی بر توسعه برخی صفحات کلیدی و رفع باگ‌ها.
  • توسعه رابط کاربری فرانت‌اند با استفاده از Next.js و تمرکز بر طراحی تجربه کاربری روان و بهینه برای جستجوی فرصت‌های شغلی.
  • استانداردسازی ساختار کد برای کاهش پیچیدگی و تسهیل در نگهداری و توسعه‌های آتی.
  • ایجاد ماژول‌های جستجوی پیشرفته برای نمایش شغل‌های مشابه و مسیرهای مرتبط.
  • همکاری با تیم‌های محصول و طراحی برای تحلیل نیازها و پیاده‌سازی قابلیت‌های جدید.
  • هماهنگی و راهبری تیم فنی در بخش‌های کلیدی پروژه برای تحویل به‌موقع و موثر محصول.

اطلس

اطلس

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

نقش من:

  • با وجود کامل‌نشدن پروژه، تاکنون 100٪ توسعه بخش‌های فرانت‌اند توسط من صورت گرفته است.
  • طراحی و توسعه صفحات اولیه محصول به‌صورت پایلوت برای تست ایده‌های اصلی.
  • بهبود زیرساخت‌های فنی برای توسعه پایدار و مقیاس‌پذیر.
  • مستندسازی فرایندهای فنی برای انتقال دانش و سرعت‌بخشی به توسعه محصول.

توسعه ابزارهای اتوماسیون و صفحات فرعی

توسعه ابزارهای اتوماسیون و صفحات فرعی

طراحی و توسعه ابزارهای کاربردی برای بهینه‌سازی فرآیندها و ایجاد صفحات موردنیاز مارکتینگ و مدیریت محصولات

نقش من:

  • در بازه‌ای که نیروی دواپس (DevOps) اختصاصی در تیم وجود نداشت، تمامی فعالیت‌های CI/CD پروژه‌های فرانت را شخصاً برعهده گرفتم.
  • طراحی و پیاده‌سازی ابزارهای خودکارسازی برای حذف کارهای تکراری همچون دانلود، پردازش و آپلود فایل‌ها؛ که باعث افزایش سرعت عملیات و کاهش خطای انسانی شد.
  • طراحی و پیاده‌سازی لندینگ‌پیج‌های مختلف برای اهداف مارکتینگ، از جمله:
  • لندینگ‌پیج برای جذب و اعطای کمک‌هزینه‌های دانشجویی.
  • لندینگ‌پیج برای نمایش جزئیات دوره‌های آموزشی به‌منظور استفاده تیم مارکتینگ.
  • لندینگ‌پیج برای معرفی و نمایش محصولات به کاربران.
  • طراحی و توسعه پنل‌های ادمین برای مدیریت و کنترل محصولات، از جمله نظارت بر عملکرد کاربران و مدیریت محتوای سیستم.
  • استانداردسازی و هماهنگ‌سازی ساختار این صفحات و پنل‌ها با سایر محصولات جهت یکپارچگی بیشتر و افزایش بهره‌وری تیم‌های مختلف.

هدایت SEO و مانیتورینگ

نقش من:

  • مشارکت فعال در جلسات متعدد با کارشناسان آنالیتیکس و مارکتینگ برای شناسایی فرصت‌های بهبود SEO و راهکارهای عملی.
  • اجرای مستقیم حدود 70٪ از فرایندهای مرتبط با SEO، از جمله بهینه‌سازی ساختار صفحات، متادیتا و سرعت بارگذاری.
  • پیاده‌سازی و مدیریت ابزارهای تحلیل مانند Google Analytics برای بررسی رفتار کاربران و بهبود محصولات.
  • راه‌اندازی Firebase و Sentry جهت نظارت لحظه‌ای بر خطاها و بهبود پایدار عملکرد محصولات.
  • تحلیل داده‌های کاربری و ارائه راهکارهای مؤثر برای ارتقای تجربه کاربری و بهره‌وری محصول.

شایستگی‌‌ها

🧠

تصمیم‌گیری و حل مسأله

نوآوری در فیچر انتخاب فریم ویدیو

در پروژه‌ای که کاربران ویدیوهای خود را در سرویسی ثالث (Third Party) آپلود می‌کردند، هدف این بود که کاربران بتوانند از بین فریم‌های ویدیو، تصویر کاور انتخاب کنند. به دلیل آپلود ویدیو در پلتفرمی بیرون از سیستم، ابتدا تصور می‌شد امکان دسترسی مستقیم به فریم‌ها وجود نداشته و این فیچر باید حذف شود. من با آزمون و خطای مداوم و استفاده از راهکار خلاقانهٔ تبدیل ویدیو به فریم با Canvas، موفق شدم این قابلیت را پیاده‌سازی کنم. در حالی که بسیاری بر حذف فیچر تأکید داشتند، تصمیم گرفتم مسیر ابداعی را ادامه دهم تا عملکرد مدنظر محقق شود.

حل مشکل سئو و هیدریشن (Hydration Error) در پروژه‌های Next.js

در یکی از محصولات، محتوای وب‌سایت به‌خوبی در موتورهای جستجو ایندکس نمی‌شد و ظاهراً خطاهای هیدریشن در Next.js روی می‌داد. همچنین احتمال می‌رفت که ایراد از زیرساخت سرور یا DNS باشد. من احتمال‌ها را اولویت‌بندی کردم و با بررسی دقیق متوجه شدم مشکل اصلی در DNSهای سرور است. با همکاری تیم زیرساخت و اصلاح تنظیمات مربوطه، مشکل حل شد.

💡

خلاقیت و نوآوری

راهکار جدید برای پنهان‌سازی کلید API و فیچر انتخاب فریم ویدیو

در پروژهٔ «مان»، روش منحصربه‌فردی برای مخفی‌سازی کلید API در سمت کلاینت (Next.js) پیاده‌سازی کردم که پیش‌تر نمونه مشابهی در وب یافت نشده بود. در کنار آن، قابلیت انتخاب فریم‌های ویدیو (به کمک Canvas) نیز رویکرد بدیع دیگری بود که من برای افزایش قابلیت‌های پروژه اجرا کردم.

اتوماسیون فرایندهای ضبط، تبدیل و آپلود ویدیو

در محصول «فناپ کمپس»، لازم بود دوره‌های آفلاین روزانه ضبط، دانلود، تغییر فرمت و در نهایت روی سرورهای آروان آپلود شوند. در ابتدا این فرایند زمان‌بر و دستی بود. من برنامه‌ای نوشتم که به‌صورت خودکار فایل‌های ضبط‌شدهٔ هرروز را دانلود، تغییر فرمت و سپس آپلود می‌کند و در انتها با ارسال پیامک به تیم، اعلام تکمیل فرایند را انجام می‌دهد. این روش، ضمن صرفه‌جویی در وقت، خطاهای انسانی را هم کاهش داد.

🎯

نتیجه‌گرایی

پروژه «مان» و غلبه بر موانع زمانی

پروژه «مان» با فوریت بسیار فشرده در ابتدا غیرممکن به نظر می‌رسید. باوجوداین، با تقسیم کار اصولی و تلاش مضاعف، موفق شدیم در زمان تعیین‌شده، بخش عمده‌ای از محصول را آماده کنیم. من با ارائه و اجرای راهکارهای سریع برای رفع باگ‌ها و مشکلات پیش‌بینی‌نشده، سهم قابل توجهی در این موفقیت داشتم.

پروژه «اطلس» و تغییر تمرکز

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

👥

رهبری

راهبری و هم‌سوسازی اعضای تیم

در چند پروژه، نقش هماهنگ‌کننده و راهنمای غیررسمی برای اعضای تیم را برعهده داشتم. به‌ویژه هنگام ملحق‌شدن نیروهای جدید، جلساتی برای معرفی معماری کلان، هدف محصول و فرایندهای کاری برگزار می‌کردم تا آن‌ها سریع‌تر در جریان پروژه قرار بگیرند. از روش Pair Programming و بررسی کد استفاده می‌کردم تا همکاران جدید درک عمیقی از استانداردهای کدنویسی و ابزارهای ما پیدا کنند.

ایجاد انگیزه و بهبود ارتباط

در قالب جلسات دوره‌ای صمیمانه، به نظرات هم‌تیمی‌ها گوش می‌دادم و تلاش‌هایشان را تحسین می‌کردم. وقتی لازم بود کیفیت کد یا روش پیاده‌سازی‌ها را ارتقا دهیم، پس از بیان نقاط قوت افراد، با توضیحاتی شفاف و همدلانه نکات قابل بهبود را مطرح می‌کردم. این رویکرد باعث شد روحیه تیم در طول اجرای پروژه‌ها بالا بماند و عملکرد کلی بهبود یابد.

🚨

مدیریت بحران

برنامه‌ریزی دقیق و تقسیم وظایف

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

حضور On-call برای رفع مشکلات تولید

طی یک سال گذشته، در وضعیت آماده‌باش بودم تا مشکلات احتمالی در سرویس‌های در حال اجرا (Production) را حتی در ساعات غیرکاری برطرف کنم. این اقدام باعث می‌شد که مدت‌زمان اختلال در سرویس‌ها کاهش یابد و کاربران کمترین آسیب را ببینند.

🌱

توسعه افراد

انتقال مفاهیم سرور و دواپس به همکاران

به‌واسطه تجربه‌ام در DevOps و CI/CD، همکارانم در زمینه‌های مختلف سرور یا کانتینرسازی (Docker) با من مشورت می‌کردند. سعی می‌کردم در گفت‌وگوهای کوتاه حضوری یا آنلاین، مفاهیم زیرساختی را توضیح بدهم تا دانش اعضای تیم فرانت در این زمینه‌ها رشد کند. همچنین نکات کلیدی دربارهٔ SEO و آنالیتیکس را به اشتراک می‌گذاشتم که به تصمیم‌گیری بهتر تیم مارکتینگ و محصول کمک می‌کرد.

ارائه بازخورد سازنده

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

📚

توسعه فردی

مطالعه و یادگیری مستمر

در ماه‌های گذشته کتاب The Manager's Path را مطالعه کرده‌ام که بینش عمیق‌تری در مورد مدیریت و همکاری با تیم‌ها به من داده است. این کتاب دیدگاه تازه‌ای در خصوص هدایت افراد و ایجاد فرهنگ مشارکت ایجاد کرد.

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

همچنان در حال یادگیری مفاهیم پیشرفته‌تر بک‌اند هستم و به دلیل علاقه‌ام به هوش مصنوعی، روی مباحث Machine Learning نیز وقت می‌گذارم. این رویکرد چندرشته‌ای کمک می‌کند در آینده راهکارهای هوش مصنوعی را نیز در محصولات مختلف شرکت پیاده‌سازی کنم.

توضیحات و سوابق

حدود یک سال پیش، به‌عنوان اولین برنامه‌نویس تیم در شرکت فناپ مشغول به کار شدم. با وجود آنکه عنوان شغلی من برنامه‌نویس فرانت‌اند بود، علاقه و نیازهای فنی باعث شد وظایف حوزه دواپس و بک‌اند را نیز برعهده بگیرم.

در ابتدا روی محصول «فناپ کمپس» فعالیت داشتم و علاوه بر توسعهٔ فرانت‌اند با React، مسئولیت‌هایی در بخش بک‌اند (Laravel) و دیپلویمنت پروژه را نیز عهده‌دار بودم. به مرور زمان و با گسترش تیم، وظیفه آنبورد کردن نیروهای جدید، انتقال دانش و معرفی ساختار پروژه‌ها به من سپرده شد.

پس از آن، در پروژه‌های «مان» و «کنوس» هم نقش کلیدی در تسریع روند توسعه و تحویل موفقیت‌آمیز محصول داشتم. به‌ویژه در پروژه «مان»، به دلیل زمان‌بندی فشرده، به‌طور متوسط روزانه بیش از ۱۲ ساعت کار می‌کردم تا پروژه به موقع و با کیفیت مطلوب به مرحله اجرا برسد.

خلاصه افعالات

    فناپ کمپس (فرانت‌اند)

    توسعه نسخهٔ اولیه با React، افزودن فیچرهای جدید و بهینه‌سازی کلی محصول. مهاجرت کامل به Next.js با هدف افزایش سرعت، بهبود سئو و ایجاد ساختار استاندارد برای پروژه‌های آتی.

    فناپ کمپس (بک‌اند)

    بازنویسی ساختار بک‌اند، طراحی و پیاده‌سازی APIهای جدید و توسعه سیستم احراز هویت یکپارچه در راستای بهبود امنیت و کارایی سیستم.

    کنوس

    توسعه فرانت‌اند با Next.js، پیاده‌سازی ماژول جستجوی پیشرفته و استانداردسازی کد برای تسهیل توسعه و نگهداری پروژه.

    مان

    توسعه سریع فرانت‌اند با تأکید بر نسخهٔ موبایل. پیاده‌سازی پخش‌کننده ویدیوی اختصاصی، سیستم بارگذاری و پیش‌خوانی ویدیوها و بهبود فرایند آپلود و مدیریت

    اطلس

    پیاده‌سازی اولیه صفحات محصول به‌صورت پایلوت، ایجاد زیرساخت‌های پایدار و مستندسازی برای توسعه و نگهداری مؤثر در آینده.

    دواپس

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

    طراحی سیستم هماهنگ و ساختار پروژه‌ها

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

    ارتباط مستقیم با تیم محصول و مارکتینگ

    رسیدگی فوری به باگ‌های بحرانی و ارائه راهکارهای بهینه برای ارتقای تجربهٔ کاربری و کمک به تیم‌های غیرفنی در درک مسائل پیچیده.

    سیستم‌های اتوماسیون وظایف تکراری

    طراحی ابزارهای خودکار برای حذف کارهای تکراری (ازجمله دانلود و آپلود فایل‌ها) که به صرفه‌جویی در زمان و کاهش خطای انسانی انجامید.

    هدایت SEO، تحلیل داده و مانیتورینگ

    پیاده‌سازی ابزارهایی نظیر Google Analytics، Firebase و Sentry برای بهبود سئو، تحلیل رفتار کاربران و مانیتورینگ بلادرنگ خطاها.

سوابق تحصیلی

    کارشناسی برق

    دانشگاه خواجه نصیرالدین طوسی

    کارشناسی ارشد علوم کامپیوتر

    دانشگاه شهید بهشتی

کدهای پروژه‌ها

برای دیدن برخی از کدهای پروژه‌ها در گیت‌هاب لطفا روی دکمه زیر کلیک کنید.

درخواست

با توجه به فعالیت‌ها، تجارب و علاقه‌ام به حل مسائل پیچیده در حوزه‌های مختلف فنی، از فرانت‌اند و بک‌اند گرفته تا دواپس و حتی پیاده‌سازی سیستم‌های مرتبط با یادگیری ماشین و هوش مصنوعی، همواره مشتاق یادگیری و انجام وظایف در بخش‌های متنوع بوده‌ام. این علاقه به کار در تمامی سطوح توسعه نرم‌افزار، همراه با انگیزه‌ام برای مدیریت تیم‌ها و هدایت پروژه‌ها، باعث شده تا بتوانم با انرژی مضاعف در تحقق اهداف سازمانی مشارکت کنم. به همین دلیل، متقاضی ارتقا به موضع برنامه‌نویس فول‌استک (پوزیشن 4 فراتر از انتظار) هستم.