امید فرهنگ

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

خلاصه

معمار فرانت‌اند و رهبر مهندسی با بیش از ۱۰ سال تجربه در توسعه پلتفرم‌های وب؛ با تمرکز بر نقطه تلاقی محصول، معماری و تجربه توسعه‌دهنده. حوزه تخصصی من Angular و TypeScript و زیرساخت مهندسی پیرامون آن‌هاست: سیستم طراحی، مونو‌ریپوی Nx، آزمون و CI/CD. در جیبیت کار را به‌عنوان تنها توسعه‌دهنده Angular آغاز کردم، تیمی شامل ۳ توسعه‌دهنده Angular و ۱ توسعه‌دهنده وب ساختم و اکنون مسئول پلتفرم کاری این تیم هستم: حدود ۱۰ اپلیکیشن Angular در یک مونو‌ریپوی Nx، یک سیستم طراحی مشترک و زیرساخت CI/CD آن. تجربه‌های پیشینم شامل مهاجرت AngularJS به Angular و APIهای Laravel به Spring Boot، راهبری زیرساخت ویندوز و مشاوره فنی لینوکس است.

سوابق کاری

مهندس ارشد فرانت‌اند و رهبر تیم اوت ۲۰۱۹ - اکنون
جیبیت

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

  • کار را به‌عنوان تنها توسعه‌دهنده Angular آغاز کردم و با استخدام و منتورینگ، تیمی شامل ۳ توسعه‌دهنده Angular و ۱ توسعه‌دهنده وب ساختم. اکنون شرکت‌های همکار نیز ارزیابی فنی استخدام‌های فرانت‌اند خود را به من می‌سپارند.
  • پنل‌های جدید را با Angular توسعه دادم و اپلیکیشن‌های قدیمی React را ابتدا در ریپازیتوری‌های مستقل جایگزین کردم؛ سپس با مشترک‌شدن قابلیت‌های پنل بک‌آفیس و کاربران، کد مشترک را از طریق Git Submodule به اشتراک گذاشتم.
  • اپلیکیشن‌ها، ماژول‌های مشترک و سیستم طراحی را با حفظ تاریخچه Git در یک مونو‌ریپوی Nx یکپارچه کردم؛ شامل حدود ۱۰ اپلیکیشن Angular، کتابخانه‌های مشترک و کتابخانه‌های قابلیت‌محور، با به‌روزرسانی مستمر در نسخه‌های اصلی Angular.
  • با همکاری تیم UI/UX یک سیستم طراحی یکپارچه در Figma شکل دادم، آن را به‌صورت کتابخانه Angular همراه با Storybook و Generatorهای اختصاصی پیاده‌سازی کردم و در اپلیکیشن‌های Angular به کار گرفتم.
  • معماری GitLab CI/CD مونو‌ریپو را به‌صورت مستقل طراحی کردم: ساخت مبتنی بر تغییرات، استقرار ترتیبی Docker و ابزارهای Shell. زمان CI حدود ۵۰٪ کاهش یافت، استقرار از ۱۵ دقیقه به کمتر از ۴ دقیقه رسید و انتشار روزانه در محیط عملیاتی ممکن شد.
  • آزمون‌های واحد را از Jest به Vitest منتقل کردم، پوشش E2E با Playwright را گسترش دادم و پایش کارایی اپلیکیشن‌های Angular را انجام دادم.
  • علاوه بر اپلیکیشن‌های Angular، تیم مسئول وب‌سایت عمومی و مستندات توسعه‌دهندگان نیز هست: WordPress روی Docker با کش، بهینه‌سازی MariaDB، سخت‌سازی PHP و کارایی فرانت‌اند در سطح A آزمون GTmetrix.

رهبری مهندسیمنتورینگ

  • Angular
  • TypeScript
  • Nx
  • RxJS
  • Vitest
  • Playwright
  • Storybook
  • Docker
  • CI/CD
  • WordPress
مشاور فنی / رهبر فنی ژوئن ۲۰۲۰ - مارس ۲۰۲۲
رایمندان تالی پارسه

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

  • نخستین VPS را به‌طور کامل برای سرویس ایمیل، MariaDB و وب‌سایت عمومی با طراحی اختصاصی راه‌اندازی کردم.
  • دوربین RTSP کارگاه را به لندینگ‌پیج عمومی متصل کردم: دریافت و تبدیل ویدئو به MP4 با FFmpeg روی ارتباط کم‌پهنای‌باند و پخش نهایی از طریق CDN.
  • پس از قطعی‌های اولیه، راهکار پشتیبان‌گیری و Failover را برای سرویس ایمیل و وب‌سایت پیاده‌سازی کردم.

مشاوره فنیRTSPCDN

  • Linux
  • Nginx
  • MariaDB
  • FFmpeg
  • Ubuntu
توسعه‌دهنده ارشد فرانت‌اند نوامبر ۲۰۱۸ - اوت ۲۰۱۹
پولیتو

استارتاپ فین‌تک ارائه‌دهنده محصولات پرداخت برای کاربران و تیم‌های عملیاتی.

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

رهبری تیم

  • Angular
  • gRPC
  • TypeScript
  • CSS
  • RxJS
توسعه‌دهنده ارشد فرانت‌اند اکتبر ۲۰۱۵ - نوامبر ۲۰۱۸
مدرن‌پل

ارتقا از توسعه‌دهنده جونیور به لید. توسعه محصولات حوزه سلامت و مالی، از جمله پلتفرم تبادل ارز. ابتدا AngularJS و سپس Angular را وارد تیم کردم.

  • اپلیکیشن‌های عملیاتی AngularJS را توسعه دادم و سپس با توجه به مناسب‌نبودن ngUpgrade، آن‌ها را به‌صورت تدریجی با Angular 2+ بازنویسی کردم.
  • APIهای REST مبتنی بر Laravel را برای کلاینت‌های Angular توسعه دادم و سپس با حفظ قراردادهای API، آن‌ها را به Spring Boot منتقل کردم.
  • در کنار اپلیکیشن‌های محصول، وب‌سایت‌های WordPress را نیز توسعه و تحویل دادم.
  • مسیر فنی فرانت‌اند را تعیین کردم، توسعه‌دهندگان را منتور کردم و در تصمیم‌های فنی و محصولی با CTO همکاری داشتم.

هدایت فنی

  • Angular
  • AngularJS
  • Laravel
  • PHP
  • Java
  • Spring Boot
  • WordPress
  • Gradle
مدیر سیستم و توسعه‌دهنده وب سپتامبر ۲۰۱۴ - نوامبر ۲۰۱۵
شرکت مشاوره حاسب سیستم

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

  • ارتباط WAN دفتر را پایدار کردم و Active Directory، DNS و TFS بیش از ۳۰ ایستگاه کاری را بازسازی و اصلاح کردم؛ سخت‌افزارها را به‌تدریج ارتقا دادم و به‌روزرسانی Windows، آنتی‌ویروس و نرم‌افزارها را متمرکز کردم.
  • دستگاه حضور و غیاب را تعویض و با نرم‌افزارهای داخلی یکپارچه کردم.
  • یک پرتال داخلی PHP/MariaDB برای ثبت کارکرد، تنخواه، حقوق‌ودستمزد و هزینه‌های مشترک توسعه دادم.
  • فهرست خدمات سلامت و انجمن گفت‌وگوی مبتنی بر PHP و phpBB را برای کارکنان و مشتریان راه‌اندازی کردم.

مدیریت سیستمActive DirectoryDNSphpBB

  • Windows Server
  • TFS
  • PHP
  • MariaDB
پشتیبان فناوری اطلاعات سپتامبر ۲۰۰۷ - ژوئن ۲۰۰۸
صدا و سیما (IRIB)

سازمان صدا و سیمای جمهوری اسلامی ایران (IRIB).

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