Front-End Developer · Founder of GeekTestتوسعه‌دهنده فرانت‌اند · بنیان‌گذار GeekTest

Erfan Khoshtabkh — Front-End Developerعرفان خوش‌طبخ — توسعه‌دهنده فرانت‌اند

I design and build interfaces for data-driven organizational and educational systems with React and TypeScript, and contribute to the back-end when a product needs it.با React و TypeScript، رابط‌های کاربری سامانه‌های داده‌محور سازمانی و آموزشی را طراحی و توسعه می‌دهم و در صورت نیاز محصول، در بک‌اند هم مشارکت می‌کنم.

// Custom hook + TanStack Query
export function useRole() {
  const { data } = useQuery({
    queryKey: ["me"],
    queryFn: fetchCurrentUser,
  });
  return data?.role ?? "guest";
}
  • 5Systems deliveredسامانه‌ی تحویل‌شده
  • ReactAdvanced levelسطح پیشرفته
  • TypeScriptPrimary languageزبان اصلی
  • 0 → 1Product ownershipمالکیت محصول از ایده
About meدرباره من

Practical experience, product mindsetتجربه عملی، با نگاه محصولی

I’m a front-end developer with hands-on experience designing and implementing user interfaces and managing data in organizational and educational systems, including a smart school platform, a smart counseling platform and a data-monitoring system.توسعه‌دهنده فرانت‌اند هستم و در طراحی و پیاده‌سازی رابط‌های کاربری و مدیریت داده در سامانه‌های سازمانی و آموزشی تجربه عملی دارم؛ از جمله سامانه مدرسه هوشمند، پلتفرم مشاوره هوشمند و سامانه پایش مسیر داده.

As the founder of GeekTest, I led the product from idea to development: defining the vision, choosing features, prioritizing the roadmap, building the front-end with React and TypeScript, and contributing to key back-end features.به‌عنوان بنیان‌گذار GeekTest، محصول را از ایده تا توسعه هدایت کرده‌ام: تعریف چشم‌انداز، انتخاب قابلیت‌ها، اولویت‌بندی توسعه، پیاده‌سازی فرانت‌اند با React و TypeScript و مشارکت در قابلیت‌های کلیدی بک‌اند.

I care about maintainable code, clear architecture (SOLID, reusable hooks and components) and products shaped by real user needs.به کد قابل نگهداری، معماری شفاف (اصول SOLID، هوک‌ها و کامپوننت‌های قابل‌استفاده‌مجدد) و محصولاتی که بر پایه نیاز واقعی کاربران ساخته می‌شوند اهمیت می‌دهم.

Focus areasحوزه‌های تخصص

What I bring to a teamچه چیزی به تیم اضافه می‌کنم

Front-end engineeringمهندسی فرانت‌اند

Component-driven interfaces built with React, TypeScript and Tailwind CSS, with structured routing, state management and form validation.رابط‌های کامپوننت‌محور با React، TypeScript و Tailwind CSS، همراه با مسیریابی ساختارمند، مدیریت وضعیت و اعتبارسنجی فرم.

Data-driven systemsسامانه‌های داده‌محور

Reporting modules, dashboards, digital report cards and role-based access for organizational and educational platforms.ماژول‌های گزارش‌گیری، داشبورد، کارنامه دیجیتال و کنترل دسترسی نقش‌محور برای پلتفرم‌های سازمانی و آموزشی.

Product ownershipمالکیت محصول

Defining product vision, scoping features and prioritizing development, from idea to delivery, as founder of GeekTest.تعریف چشم‌انداز محصول، تعیین قابلیت‌ها و اولویت‌بندی توسعه از ایده تا تحویل، به‌عنوان بنیان‌گذار GeekTest.

Tech stackفناوری‌ها

Languages, frameworks and toolsزبان‌ها، فریم‌ورک‌ها و ابزارها

Languagesزبان‌ها

  • JavaScript (ES6+)
  • TypeScript
  • HTML5
  • CSS3
  • Python
  • C#

Front-endفرانت‌اند

  • React.js · Advanced
  • Tailwind CSS · Advanced
  • Next.js
  • Bootstrap

State & dataمدیریت وضعیت و داده

  • Redux Toolkit
  • Zustand
  • Context API
  • TanStack Query
  • Custom Hooks

Routing & formsمسیریابی و فرم

  • React Router · Advanced
  • Next.js Routing
  • Protected Routes
  • Dynamic Routing
  • RBAC
  • React Hook Form
  • Custom Validation

Back-endبک‌اند

  • FastAPI
  • ASP.NET Core
  • Python
  • C#

Workflowروش کار

  • Git & GitHub / GitLab
  • SOLID Principles
  • Code Review
  • Collaboration
Live demoنمونه زنده

State and role-based UI, running right hereمدیریت وضعیت و رابط نقش‌محور، همین‌جا در حال اجرا

A small interactive sample of patterns I use in real systems: local state and role-based rendering.نمونه‌ای کوچک از الگوهایی که در سامانه‌های واقعی استفاده می‌کنم: مدیریت وضعیت و نمایش بر اساس نقش.

0
useradmin
const [count, setCount] = useState(0);
const [admin, setAdmin] = useState(false);

return (
  <>
    <Counter value={count} />
    {admin && <AdminPanel />}
  </>
);

Open to front-end roles and product collaborationsآماده همکاری در نقش‌های فرانت‌اند و پروژه‌های محصولی

Get in touchارتباط با من