Reposition from AI-only to engineering + apps + AI
deploy / deploy (push) Successful in 23s

Broaden the messaging so AI is one strong pillar, not the whole story
(matches the real portfolio: web/SaaS, mobile, a game, plus AI tools).

- Hero: "software, enterprise apps, and AI solutions"; role is now
  "Software & AI Engineer, Solution Architect"
- Services reframed: Web & enterprise apps, Mobile apps, Solution
  architecture & cloud, AI solutions, Automation & integrations, Strategy
  (replaces the six AI-centric ones; new "apps" icon)
- Expertise areas lead with architecture + web/enterprise apps, AI as one
- Contact service options, meta description, title, footer blurb updated

English and Persian both. No CSS/JS changes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-26 04:03:24 +03:30
parent 255e8d25e5
commit 93f7873dd1
2 changed files with 42 additions and 42 deletions
+37 -37
View File
@@ -17,10 +17,10 @@
</h1>
<p class="reveal mx-auto mt-6 max-w-2xl text-balance leading-snug text-zinc-800" style="font-size:clamp(1.2rem,2.4vw,1.6rem);transition-delay:.1s">
@(fa ? "هوش مصنوعی‌ای می‌سازم که " : "I build ")<span class="accent-text font-semibold">@(fa ? "فقط روی کاغذ نمی‌ماند" : "production-grade AI")</span>@(fa ? "؛ از طراحی تا اجرا، در مقیاس سازمانی." : " for the enterprise, from strategy to live deployment.")
@(fa ? "نرم‌افزار، اپلیکیشن‌های سازمانی و " : "I build software, enterprise apps, and ")<span class="accent-text font-semibold">@(fa ? "راهکارهای هوش مصنوعی" : "AI solutions")</span>@(fa ? " می‌سازم که در عمل و در مقیاس واقعی کار می‌کنند." : " that hold up in production, at real scale.")
</p>
<p class="lede reveal mx-auto mt-4 text-[.98rem]" style="transition-delay:.15s">@(fa ? "مهندس هوش مصنوعی و معمار نرم‌افزار." : "AI Engineer, Consultant, and Solution Architect.")</p>
<p class="lede reveal mx-auto mt-4 text-[.98rem]" style="transition-delay:.15s">@(fa ? "مهندس نرم‌افزار و هوش مصنوعی، معمار سیستم." : "Software and AI Engineer, Solution Architect.")</p>
<div class="reveal mt-9 flex flex-wrap items-center justify-center gap-3" style="transition-delay:.2s">
<a href="#contact" class="btn">
@@ -43,25 +43,25 @@
<div class="mx-auto max-w-6xl">
<div class="sec-head">
<h2>@(fa ? "شش کاری که انجام می‌دهم" : "Six areas of practice")</h2>
<p class="lede">@(fa ? "از همان جلسه‌ی اول تا وقتی محصول روی پای خودش می‌ایستد، کنارتان هستم؛ در تمام مسیر هوش مصنوعی." : "From the first strategy session to production rollout, one engineering partner for the full AI lifecycle.")</p>
<p class="lede">@(fa ? "از همان جلسه‌ی اول تا وقتی محصول روی پای خودش می‌ایستد، کنارتان هستم؛ در تمام مسیر مهندسی و محصول." : "From the first idea to production rollout, one engineering partner across the whole product.")</p>
</div>
<div class="grid grid-cols-1 gap-x-10 gap-y-10 sm:grid-cols-2 lg:grid-cols-3">
@{
var services = fa ? new[]{
("strategy","راهبرد و نقشه‌ی راه هوش مصنوعی","با هم می‌بینیم سازمان کجای کار است، کدام ایده‌ها بیشترین ارزش را دارند، و نقشه‌ی راه ۱۲ تا ۱۸ ماهه با هدف‌های روشن می‌چینیم.",new[]{"Discovery","ROI Mapping","Roadmap"}),
("automation","اتوماسیون هوش مصنوعی","عامل‌های خودکار و گردش‌کارهای n8n که کارهای دستی را به سامانه‌هایی قابل‌ردیابی و قابل‌اتکا تبدیل می‌کنند.",new[]{"n8n","Agents","Workflows"}),
("llm-rag","مهندسی LLM و RAG","ساخت پایپ‌لاین‌های RAG با پایگاه‌های برداری، چارچوب ارزیابی، و پاسخ‌دهی با تأخیر زیر ۵۰ میلی‌ثانیه.",new[]{"RAG","Vector DB","Eval"}),
("architecture","معماری نرم‌افزار و سیستم","طراحی سیستم‌های توزیع‌شده روی Kubernetes؛ میکروسرویس، استریم رویداد، و الگوهایی که زیر بار سنگین هم پایدار می‌مانند.",new[]{"K8s","Microservices","Event-Driven"}),
("mobile","اپلیکیشن‌های موبایل هوش مصنوعی","اپ‌های Flutter، Swift و Kotlin با پردازش روی خود دستگاه، استریم LLM و تجربه‌ای روان و بومی.",new[]{"Flutter","Swift","Kotlin"}),
("google-stack","تخصص روی استک گوگل","راه‌اندازی روی Vertex AI، GKE و Gemini با کنترل هزینه و امنیت در سطح سازمانی.",new[]{"Vertex AI","GKE","Gemini"}),
("apps","اپلیکیشن‌های وب و سازمانی","پلتفرم‌های وب و SaaS از صفر تا صد: داشبورد، چندمستاجری، صورت‌حساب و پنل مدیریت، ساخته‌شده برای رشد.",new[]{"Web","SaaS","Dashboards"}),
("mobile","اپلیکیشن‌های موبایل","اپ‌های بومی و چندسکویی با Flutter، Swift و Kotlin، با حسی روان و نزدیک به تجربه‌ی بومی.",new[]{"Flutter","Swift","Kotlin"}),
("architecture","معماری راهکار و زیرساخت ابری","سیستم‌های توزیع‌شده روی Kubernetes؛ میکروسرویس، استریم رویداد، و پایداری زیر بار سنگین.",new[]{"K8s","Microservices","Cloud"}),
("llm-rag","راهکارهای هوش مصنوعی","قابلیت‌های LLM و RAG، عامل‌ها و اتوماسیون که داخل محصول واقعی کار می‌کنند، نه فقط دمو.",new[]{"LLM","RAG","Agents"}),
("automation","اتوماسیون و یکپارچه‌سازی","ابزارهایتان را به هم وصل می‌کنم و کارهای دستی را حذف؛ با گردش‌کارهای n8n، API و وب‌هوک.",new[]{"n8n","APIs","Webhooks"}),
("strategy","راهبرد و نقشه‌ی راه","راهبرد فنی، بازبینی معماری، و نقشه‌ی راهی روشن از ایده تا عرضه.",new[]{"Discovery","Architecture","Roadmap"}),
} : new[]{
("strategy","AI Strategy and Roadmap","Maturity assessment, highest-ROI use-case discovery, and a 12 to 18 month roadmap with measurable KPIs.",new[]{"Discovery","ROI Mapping","Roadmap"}),
("automation","AI Automation","Autonomous agents and n8n workflows that turn manual processes into auditable, observable systems.",new[]{"n8n","Agents","Workflows"}),
("llm-rag","LLM and RAG Engineering","Production RAG pipelines with vector stores, evaluation frameworks, and sub-50ms serving.",new[]{"RAG","Vector DB","Eval"}),
("architecture","Solution Architecture","Distributed systems on Kubernetes: microservices, event streaming, and resilience patterns at scale.",new[]{"K8s","Microservices","Event-Driven"}),
("mobile","Mobile AI Apps","Flutter, Swift, and Kotlin apps with on-device inference, streaming LLM UX, and native polish.",new[]{"Flutter","Swift","Kotlin"}),
("google-stack","Google Stack Specialist","Vertex AI, GKE, and Gemini deployments with cost optimization and enterprise security patterns.",new[]{"Vertex AI","GKE","Gemini"}),
("apps","Web & enterprise apps","End-to-end web platforms and SaaS: dashboards, multi-tenant, billing, and admin, built to scale.",new[]{"Web","SaaS","Dashboards"}),
("mobile","Mobile apps","Native and cross-platform apps with Flutter, Swift, and Kotlin, with a smooth native feel.",new[]{"Flutter","Swift","Kotlin"}),
("architecture","Solution architecture & cloud","Distributed systems on Kubernetes: microservices, event streaming, and resilience at scale.",new[]{"K8s","Microservices","Cloud"}),
("llm-rag","AI solutions","LLM and RAG features, agents, and automation built into real products, not just demos.",new[]{"LLM","RAG","Agents"}),
("automation","Automation & integrations","Connect your tools and remove manual work with n8n workflows, APIs, and webhooks.",new[]{"n8n","APIs","Webhooks"}),
("strategy","Strategy & roadmap","Technical strategy, architecture review, and a clear roadmap from idea to launch.",new[]{"Discovery","Architecture","Roadmap"}),
};
}
@{ int si = 0; }
@@ -166,17 +166,17 @@
<dl>
@{
var areas = fa ? new[]{
("مهندسی LLM و RAG","ساخت پایپ‌لاین‌های بازیابی، ارزیابی و تولید پاسخ مستند برای محیط واقعی."),
("معماری ابری و Kubernetes","سرویس‌های توزیع‌شده، مقیاس‌پذیری خودکار و پایداری زیر بار سنگین."),
("سیستم‌های عامل‌محور و اتوماسیون","گردش‌کارهای خودکار و قابل‌ردیابی با n8n و LangGraph."),
("استک گوگل کلود (Vertex / GKE)","Vertex AI، GKE و Gemini، با حواس‌جمعی روی هزینه."),
("موبایل بومی و چندسکویی","Flutter، Swift و Kotlin با پردازش روی خود دستگاه."),
("معماری نرم‌افزار و سیستم‌های توزیع‌شده","میکروسرویس، استریم رویداد و الگوهای پایداری زیر بار سنگین."),
("اپلیکیشن‌های وب و سازمانی","پلتفرم‌های چندمستاجری، داشبورد و سیستم‌های پرترافیک."),
("راهکارهای هوش مصنوعی (LLM و RAG)","بازیابی، ارزیابی و تولید پاسخ مستند، داخل محصول واقعی."),
("زیرساخت ابری و Kubernetes","استقرار، مقیاس‌پذیری خودکار و حواس‌جمعی روی هزینه."),
("موبایل بومی و چندسکویی","Flutter، Swift و Kotlin برای اپ‌های روان و سریع."),
} : new[]{
("LLM and RAG engineering","Retrieval pipelines, evals, and grounded generation in production."),
("Cloud architecture and Kubernetes","Distributed services, autoscaling, and resilience at scale."),
("Agentic systems and automation","Auditable autonomous workflows with n8n and LangGraph."),
("Google Cloud stack (Vertex / GKE)","Vertex AI, GKE, and Gemini with real cost discipline."),
("Native and cross-platform mobile","Flutter, Swift, and Kotlin with on-device inference."),
("Software architecture & distributed systems","Microservices, event streaming, and resilience patterns at scale."),
("Web & enterprise applications","Multi-tenant platforms, dashboards, and high-traffic systems."),
("AI solutions (LLM & RAG)","Retrieval, evals, and grounded generation, inside real products."),
("Cloud infrastructure & Kubernetes","Deployment, autoscaling, and real cost discipline."),
("Native & cross-platform mobile","Flutter, Swift, and Kotlin for smooth, fast apps."),
};
}
@foreach (var (alabel, adesc) in areas)
@@ -315,21 +315,21 @@
<option value="" disabled selected>@(fa ? "انتخاب کنید" : "Select…")</option>
@if (fa)
{
<option value="apps">اپلیکیشن وب و سازمانی</option>
<option value="mobile">اپلیکیشن موبایل</option>
<option value="architecture">معماری و زیرساخت ابری</option>
<option value="ai">راهکار هوش مصنوعی</option>
<option value="automation">اتوماسیون و یکپارچه‌سازی</option>
<option value="strategy">راهبرد و نقشه‌ی راه</option>
<option value="automation">اتوماسیون هوش مصنوعی</option>
<option value="llm-rag">مهندسی LLM و RAG</option>
<option value="architecture">معماری نرم‌افزار</option>
<option value="mobile">موبایل</option>
<option value="google-stack">استک گوگل</option>
}
else
{
<option value="strategy">AI Strategy and Roadmap</option>
<option value="automation">AI Automation</option>
<option value="llm-rag">LLM and RAG Engineering</option>
<option value="architecture">Solution Architecture</option>
<option value="mobile">Mobile AI Apps</option>
<option value="google-stack">Google Stack</option>
<option value="apps">Web & enterprise apps</option>
<option value="mobile">Mobile apps</option>
<option value="architecture">Solution architecture & cloud</option>
<option value="ai">AI solutions</option>
<option value="automation">Automation & integrations</option>
<option value="strategy">Strategy & roadmap</option>
}
</select>
</div>
@@ -363,7 +363,7 @@
"llm-rag" => """<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>""",
"architecture" => """<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><rect x="2" y="3" width="6" height="6"/><rect x="16" y="3" width="6" height="6"/><rect x="9" y="15" width="6" height="6"/><path d="M5 9v3h14V9M12 12v3"/></svg>""",
"mobile" => """<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><rect x="5" y="2" width="14" height="20" rx="2"/><path d="M12 18h.01"/></svg>""",
"google-stack" => """<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M12 2L2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/></svg>""",
"apps" => """<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M3 9h18"/><path d="M7 6.5h.01"/></svg>""",
_ => """<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="10"/></svg>""",
};
}
+5 -5
View File
@@ -5,8 +5,8 @@
var dir = isRtl ? "rtl" : "ltr";
var lang = locale == "fa" ? "fa" : "en";
var title = (string?)ViewData["Title"] ?? (locale == "fa"
? "سروش اسعدی - مهندس هوش مصنوعی و معمار نرم‌افزار"
: "Soroush Asadi - AI Engineer, Consultant, Solution Architect");
? "سروش اسعدی - مهندس نرم‌افزار و هوش مصنوعی"
: "Soroush Asadi - Software & AI Engineer");
}
<!doctype html>
<html lang="@lang" dir="@dir">
@@ -15,8 +15,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>@title</title>
<meta name="description" content="@(locale == "fa"
? "سامانههای هوش مصنوعی می‌سازم که در مقیاس سازمانی واقعاً کار می‌کنند؛ از راهبرد و مهندسی LLM و RAG تا عامل‌های خودکار، زیرساخت ابری و استک گوگل."
: "Designing and deploying enterprise-grade AI systems. Strategy, LLM and RAG, agentic automation, cloud infrastructure, and the Google stack.")" />
? "نرم‌افزار، اپلیکیشن‌های سازمانی و راهکارهای هوش مصنوعی می‌سازم: پلتفرم‌های وب و موبایل، سیستم‌های توزیع‌شده، زیرساخت ابری و قابلیت‌های LLM و RAG که به تولید می‌رسند."
: "I design and build software, enterprise apps, and AI solutions: web and mobile platforms, distributed systems, cloud, and LLM/RAG features that ship to production.")" />
<meta name="theme-color" content="#fafafa" />
<!-- Fonts: Syne (display) + Vazirmatn (Persian). Body is system sans. -->
@@ -126,7 +126,7 @@
<img src="/logo-mark.svg" alt="" width="26" height="26" class="h-[26px] w-[26px]" />
<span class="font-display text-[15px] font-bold text-zinc-900 @(isRtl ? "font-fa" : "")">@(locale == "fa" ? "سروش اسعدی" : "Soroush Asadi")</span>
</a>
<p class="mt-4 max-w-xs text-sm leading-relaxed text-zinc-600">@(fa ? "هوش مصنوعی می‌سازم که در عمل کار می‌کند؛ از طراحی تا اجرا." : "AI systems engineering for the enterprise, from strategy to live deployment.")</p>
<p class="mt-4 max-w-xs text-sm leading-relaxed text-zinc-600">@(fa ? "نرم‌افزار، اپلیکیشن‌های سازمانی و راهکارهای هوش مصنوعی که در عمل کار می‌کنند." : "Software, enterprise apps, and AI solutions, engineered to last.")</p>
<div class="mt-5 flex gap-2.5">
<a class="social" href="https://www.linkedin.com/in/soroushdes/" target="_blank" rel="noopener" aria-label="LinkedIn"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5ZM3 9h4v12H3V9Zm6 0h3.8v1.64h.05c.53-1 1.83-2.06 3.76-2.06 4.02 0 4.76 2.65 4.76 6.1V21h-4v-5.4c0-1.29-.02-2.95-1.8-2.95-1.8 0-2.07 1.4-2.07 2.85V21H9V9Z"/></svg></a>
<a class="social" href="https://www.instagram.com/soroushasadicom/" target="_blank" rel="noopener" aria-label="Instagram"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.2" cy="6.8" r="1.1" fill="currentColor" stroke="none"/></svg></a>