Compare commits

...

3 Commits

Author SHA1 Message Date
65811a0060 Remove unused files 2025-12-29 12:28:52 +03:30
408671a186 Minor fixes and improvements to locales 2025-12-29 12:14:05 +03:30
6cae31a8b5 Disable github activity 2025-12-29 12:00:40 +03:30
12 changed files with 69 additions and 406 deletions

View File

@@ -73,8 +73,8 @@ const items = computed(() => [
key: 'ttc',
iconType: 'icon' as const,
icon: 'i-twemoji-globe-with-meridians',
title: t('languageSection.items.huawei.title'),
description: t('languageSection.items.huawei.desc'),
title: t('languageSection.items.ttc.title'),
description: t('languageSection.items.ttc.desc'),
},
])

View File

@@ -1,5 +1,5 @@
<template>
<section ref="sectionEl" class="section-spacing">
<section ref="sectionEl" class="section-spacing" v-if="shouldRenderCarousel">
<UContainer>
<div class="section-header">
<!-- <div

View File

@@ -9,7 +9,7 @@
<AIStack />
<SoftSkills />
<LanguageSkills />
<GitHubActivity username="mmahdium" />
<!-- <GitHubActivity username="mmahdium" /> -->
<WorkExperience />
<EducationList />
<RecommendationsCarousel />

View File

@@ -1,174 +0,0 @@
---
title: "A Big Career Change: From 7 Years at Huawei to Frontend Development"
description: "A personal story of leaving telecom and team management at Huawei to pursue frontend development, covering the challenges, lessons, and mental shifts required for a successful career transition."
date: "2025-11-25"
tags: ["career-change", "frontend-development", "personal-growth", "huawei", "developer-journey"]
author: "Ali Arghyani"
image: "/img/blog/big-career-change.webp"
draft: false
---
When I left the world of telecom and team management—and the years I had spent at Huawei—to move into software development, I didn't have a clear picture of the future.
I only knew one thing: I wanted a life and a professional identity that actually felt aligned with who I am.
But that turning point didn't come out of nowhere. The years before that were their own kind of school.
## What Huawei Built in Me
Huawei was where I learned what it really means to work inside a large organization—not from the outside, but from the middle of the system.
For the first time, I truly understood:
- how departments and hierarchies work,
- how to communicate with different levels of management,
- and how serious "customer centricity" can be when your main customer is a company like MTN Irancell.
We had endless meetings about customer performance, SLAs, and relationship management.
Inter-organizational behavior wasn't something I was naturally good at. I made a lot of clumsy mistakes in the beginning.
But senior managers—people with decades of experience—would point out small things that later became principles I built my own work on.
I learned that:
- **Reporting isn't a formality; it's the backbone of trust.**
- **Presenting your work is a skill**—being clear, honest, and precise matters.
- As long as everything was working, nobody bothered you. But a single wrong number in a report could trigger calls, meetings, and investigations from multiple sides to understand exactly what went wrong.
That experience burned one lesson into my brain: **before I send anything upwards, I need to test it and check it myself.**
Later, this became crucial in my coding mindset: the code I write shouldn't just "work once". It should be something I can come back to months later and still trust.
On top of that, combining **soft skills** (communication with managers, teamwork, handling stress, taking ownership) with **hard skills** like data analysis, Python, and Excel gave my growth a structure.
It wasn't random anymore; it became intentional.
That's why, when I joined a professional team like NexaPortal, I didn't feel like "a nobody starting from zero".
I could present myself properly, bring the values I had developed at Huawei into the team, and clearly see how I could contribute to the product and the business.
## Starting Over—Where the Path Gets Scary
Even with all of that behind me, changing careers was still scary.
Those first days felt like walking in the fog.
I was leaving an environment where everything was defined: the org chart, the salary, the responsibilities… and stepping into a field with no guarantees.
My income became unstable. Managing my finances turned into a real headache at times.
At the same time, I had to start learning from scratch, take small projects, fail, rebuild, and slowly understand what "real growth" actually looks like.
There was one thing that helped me from the inside: **I kept going.**
Not with hype. Not with motivational quotes.
With quiet, sometimes tired, consistency.
At some point I realized: this is the real "secret"—**keep going even when you don't feel like it. Even when you're scared. Even when nothing is clear yet.**
::pull-quote{highlight}
Keep going even when you don't feel like it. Even when you're scared. Even when nothing is clear yet.
::
## Mental Freeze and the Turning Point
One of the hardest challenges I faced wasn't technical at all.
It was about having the courage to show up. To present. To let myself be seen.
Every time I wanted to present something, demo a feature, or explain something to a team, my mind would freeze.
It was strange. I had led teams before, but now, in this new role, I felt like a beginner who suddenly forgets how to speak.
Eventually I understood why: a big part of me was still attached to my old identity.
I was still mentally sitting in my previous safe zone, where my role was already defined and respected. Now I had to redefine myself from scratch.
The real turning point was when I allowed myself to be free—free from the perks, the comfort, and the sense of security that came with my previous path.
That decision unlocked something in my mind.
I stopped feeling like a piece of ice floating in a cold ocean… and started to feel like a swimmer who chooses to dive into warmer, but deeper, waters.
**That change wasn't just technical. It was about who I am.**
::callout{type="tip" title="Key Insight"}
Career change isn't just about learning new skills—it's about redefining your identity and finding alignment between who you are and what you do.
::
## The Tools I Collected Along the Way
I wasn't alone on this path.
We all carry some kind of "toolkit" with us. Mine looked like this:
- **People** who stayed close and didn't let me burn out under pressure.
- **A program called "Aknoon"** that helped me build mental and emotional structure in the middle of chaos.
- **Books** like *The Art of Thinking Clearly* and *The Compound Effect* that gave me a deeper understanding of decision-making and consistency.
- And most importantly: **the habit of slow refuelling.**
I made a commitment to myself not to burn out.
Whenever I felt my energy dropping to zero, I pulled over, refuelled, and came back.
No hero narrative. Just a smart system trying not to destroy itself.
Those small daily acts of consistency are what kept me from quitting—especially on days when, from the outside, it looked like "nothing special" was happening.
## Challenges That Made Me Go Deeper
Career change is not just about learning a new skill. **It's about changing the angle from which you look at life and work.**
This path forced me to:
- think more honestly and realistically,
- face hard realities, not just dreams,
- live with failures, delays, and financial pressure,
- take personal development more seriously,
- become stronger not only for myself, but also for the people around me,
- and, most importantly, **take full responsibility for my own growth.**
None of these were simple. Each one opened a new layer of my mind and personality.
I started to taste what "results" really feel like—and I realized that if I want bigger outcomes, I don't just need to move faster; **I need to go deeper.**
## Where I Stand Today
Today, when I work as a frontend developer—building products, collaborating with a team, and planning for the future—I feel something much clearer than before:
**I can create value.**
Not just write code. Not just close tickets.
But:
- influence the product,
- improve the user experience,
- show up honestly inside the team,
- and build a balance between quality, mental health, and long-term consistency.
Everything I learned at Huawei—the discipline of reporting, customer centricity, cross-team communication, data analysis with Python and Excel—is now woven into my work in frontend.
That integration helped me, when I joined NexaPortal, not to be "just another developer", but someone who can translate previous experience into today's context and create real value for the product, team, and business.
I'm hopeful about the future.
I know that when I come back to this article five years from now, I'll both smile and feel a deeper sense of maturity.
Because I know one thing: this path is still unfolding.
And most importantly: **I'm finally enjoying the path itself**—something I had been chasing for years: to enjoy the journey, keep going, and stay true to myself.
## A Final Note
For me, this is not just a story. It's a personal roadmap that shows where I started, what I went through, and how I think today.
If I keep going—with consistency, depth, and authenticity—I'm confident I'll be in a much better place a few years from now.
And if you're currently stuck between the fear of losing your old security and the desire to build your own path, maybe this text has just one simple message for you:
::pull-quote{highlight}
Go slower, go deeper—but keep going.
::

View File

@@ -3,7 +3,7 @@ title: "This is a Draft Post"
description: "This post is in draft mode and should not appear in production."
date: "2024-11-10"
tags: ["draft", "test"]
author: "Ali Arghyani"
author: "Mohammad Mahdi Mohammadi"
draft: true
---

View File

@@ -3,7 +3,7 @@ title: "Getting Started with Nuxt Content"
description: "Learn how to build a powerful blog with Nuxt Content v3, featuring markdown support, syntax highlighting, and Vue component integration."
date: "2024-11-09"
tags: ["nuxt", "vue", "typescript", "tutorial"]
author: "Ali Arghyani"
author: "Mohammad Mahdi Mohammadi"
draft: false
---
@@ -33,8 +33,8 @@ Then add it to your `nuxt.config.ts`:
```typescript
export default defineNuxtConfig({
modules: ['@nuxt/content']
})
modules: ["@nuxt/content"],
});
```
## Creating Content
@@ -59,11 +59,9 @@ Use the `queryContent()` composable to fetch your content:
```vue
<script setup>
const { data: posts } = await useAsyncData('posts', () =>
queryContent('blog')
.sort({ date: -1 })
.find()
)
const { data: posts } = await useAsyncData("posts", () =>
queryContent("blog").sort({ date: -1 }).find()
);
</script>
```
@@ -86,8 +84,8 @@ Nuxt Content uses Shiki for beautiful syntax highlighting:
```javascript
// This code will be highlighted automatically
const greeting = (name) => {
console.log(`Hello, ${name}!`)
}
console.log(`Hello, ${name}!`);
};
```
### MDC Components

View File

@@ -3,7 +3,7 @@ title: "Building Beautiful UIs with Nuxt UI"
description: "Explore Nuxt UI components and learn how to create stunning, accessible user interfaces with minimal effort."
date: "2024-11-08"
tags: ["nuxt", "ui", "design", "components"]
author: "Ali Arghyani"
author: "Mohammad Mahdi Mohammadi"
draft: false
---
@@ -37,8 +37,8 @@ Add it to your `nuxt.config.ts`:
```typescript
export default defineNuxtConfig({
modules: ['@nuxt/ui']
})
modules: ["@nuxt/ui"],
});
```
## Essential Components
@@ -68,9 +68,9 @@ Cards are perfect for displaying content:
<template #header>
<h3>Card Title</h3>
</template>
<p>Card content goes here</p>
<template #footer>
<UButton>Action</UButton>
</template>
@@ -85,14 +85,14 @@ Build forms quickly with validation:
```vue
<script setup>
const state = reactive({
email: '',
password: ''
})
email: "",
password: "",
});
const schema = z.object({
email: z.string().email(),
password: z.string().min(8)
})
password: z.string().min(8),
});
</script>
<template>
@@ -100,11 +100,11 @@ const schema = z.object({
<UFormGroup label="Email" name="email">
<UInput v-model="state.email" />
</UFormGroup>
<UFormGroup label="Password" name="password">
<UInput v-model="state.password" type="password" />
</UFormGroup>
<UButton type="submit">Submit</UButton>
</UForm>
</template>
@@ -117,13 +117,13 @@ Customize your app's appearance with the `app.config.ts`:
```typescript
export default defineAppConfig({
ui: {
primary: 'indigo',
gray: 'slate',
primary: "indigo",
gray: "slate",
button: {
rounded: 'rounded-full'
}
}
})
rounded: "rounded-full",
},
},
});
```
::alert{type="success"}
@@ -136,17 +136,15 @@ Dark mode is built-in and works out of the box:
```vue
<template>
<UButton @click="toggleDarkMode">
Toggle Dark Mode
</UButton>
<UButton @click="toggleDarkMode"> Toggle Dark Mode </UButton>
</template>
<script setup>
const colorMode = useColorMode()
const colorMode = useColorMode();
const toggleDarkMode = () => {
colorMode.preference = colorMode.value === 'dark' ? 'light' : 'dark'
}
colorMode.preference = colorMode.value === "dark" ? "light" : "dark";
};
</script>
```

View File

@@ -3,7 +3,7 @@ title: "TypeScript Best Practices for Vue 3"
description: "Discover essential TypeScript patterns and best practices for building type-safe Vue 3 applications with Composition API."
date: "2024-11-08"
tags: ["typescript", "vue", "best-practices", "composition-api"]
author: "Ali Arghyani"
author: "Mohammad Mahdi Mohammadi"
draft: false
---
@@ -18,12 +18,12 @@ Define props with proper TypeScript interfaces:
```vue
<script setup lang="ts">
interface Props {
title: string
count?: number
items: string[]
title: string;
count?: number;
items: string[];
}
const props = defineProps<Props>()
const props = defineProps<Props>();
</script>
```
@@ -33,21 +33,21 @@ Create reusable composables with full type safety:
```typescript
export function useCounter(initialValue = 0) {
const count = ref<number>(initialValue)
const count = ref<number>(initialValue);
const increment = (): void => {
count.value++
}
count.value++;
};
const decrement = (): void => {
count.value--
}
count.value--;
};
return {
count: readonly(count),
increment,
decrement
}
decrement,
};
}
```
@@ -58,11 +58,11 @@ Build flexible components with generics:
```vue
<script setup lang="ts" generic="T extends { id: string }">
interface Props {
items: T[]
onSelect: (item: T) => void
items: T[];
onSelect: (item: T) => void;
}
const props = defineProps<Props>()
const props = defineProps<Props>();
</script>
```
@@ -73,11 +73,11 @@ Define emits with proper typing:
```vue
<script setup lang="ts">
interface Emits {
(e: 'update', value: string): void
(e: 'delete', id: number): void
(e: "update", value: string): void;
(e: "delete", id: number): void;
}
const emit = defineEmits<Emits>()
const emit = defineEmits<Emits>();
</script>
```
@@ -87,16 +87,16 @@ Leverage TypeScript utility types:
```typescript
// Pick specific properties
type UserPreview = Pick<User, 'id' | 'name' | 'email'>
type UserPreview = Pick<User, "id" | "name" | "email">;
// Make all properties optional
type PartialUser = Partial<User>
type PartialUser = Partial<User>;
// Make all properties required
type RequiredUser = Required<User>
type RequiredUser = Required<User>;
// Exclude properties
type UserWithoutPassword = Omit<User, 'password'>
type UserWithoutPassword = Omit<User, "password">;
```
## Type Guards
@@ -106,11 +106,11 @@ Implement type guards for runtime type checking:
```typescript
function isUser(value: unknown): value is User {
return (
typeof value === 'object' &&
typeof value === "object" &&
value !== null &&
'id' in value &&
'name' in value
)
"id" in value &&
"name" in value
);
}
```
@@ -119,10 +119,9 @@ function isUser(value: unknown): value is User {
Type your async data properly:
```typescript
const { data, pending, error } = await useAsyncData<User[]>(
'users',
() => $fetch('/api/users')
)
const { data, pending, error } = await useAsyncData<User[]>("users", () =>
$fetch("/api/users")
);
```
## Conclusion

View File

@@ -1,160 +0,0 @@
---
title: "داستان کریرچنج من از تیم لید هواوی به برنامه‌نویسی بعد از ۷ سال سابقه"
description: "داستان شخصی من از ترک دنیای تلکام و مدیریت تیم در هواوی و ورود به دنیای برنامه‌نویسی فرانت‌اند، چالش‌ها، درس‌ها و تغییرات ذهنی لازم برای یک تغییر شغلی موفق."
date: "2025-11-25"
tags: ["تغییر-شغلی", "برنامه-نویسی-فرانت-اند", "رشد-شخصی", "هواوی", "مسیر-توسعه-دهنده"]
author: "علی ارغیانی"
image: "/img/blog/big-career-change.webp"
draft: false
---
وقتی مسیرم رو عوض کردم و از دنیای تلکام و مدیریت تیم توی هواوی اومدم بیرون و وارد دنیای برنامه‌نویسی شدم، تصویر واضحی از آینده نداشتم.
فقط یه چیز رو می‌دونستم: باید به جایی برسم که زندگی و هویت حرفه‌ایم با خودِ واقعیم هماهنگ باشه.
اما این نقطه چرخش، از یه خلأ شروع نشد؛ سال‌های قبل خودش یه مدرسه بود.
## هواوی چی توی من ساخت؟
من توی هواوی با «کار کردن توی یه سازمان واقعی» آشنا شدم؛ نه از دور، از نزدیک و وسط ماجرا.
اونجا برای اولین بار، سلسله‌مراتب دپارتمان‌ها، مدیرهای لایه‌لایه، و حساسیت ارتباط حرفه‌ای با مدیران بالادستی رو با پوست و استخوان فهمیدم. مشتری ما ایرانسل بود و تقریباً همه چیز حول یه کلمه می‌چرخید: اهمیت مشتری.
جلسات بی‌پایان درباره مدیریت ارتباط با مشتری، هماهنگی بین تیم ما، مشتری و بقیه استیک‌هولدرها.
رفتار بین‌سازمانی چیزی نبود که از روز اول بلد باشم؛ بارها خام و ناپخته عمل کردم.
ولی مدیران خیلی ارشد نکته‌هایی بهم می‌گفتن که کم‌کم تبدیل شدن به «اصول شخصی کار» من.
اونجا یاد گرفتم:
- **گزارش و ریپورت‌دادن فقط یه کار اداری نیست؛ قلب اعتمادِ.**
- **ارائه دادن یعنی بتونی کار انجام‌شده رو شفاف، دقیق و بدون حاشیه منتقل کنی.**
- تا وقتی همه چیز درست بود، کسی کاری باهات نداشت؛ اما اگه فقط یه عدد توی یه گزارش اشتباه می‌شد، از چند جهت تماس، جلسه و بررسی شروع می‌شد تا معلوم بشه چرا این خطا اتفاق افتاده.
این تجربه‌ها یه چیز رو توی من حک کرد: **قبل از اینکه چیزی رو «بفرستم بالا»، خودم باید اونو جدی تست و چک کنم.**
بعدتر، همین ذهنیت توی کدنویسی برام حیاتی شد. اینکه کیفیت کدی که می‌نویسم باید جوری باشه که خودم هم چند ماه بعد بتونم با خیال راحت برگردم سراغش و دوباره ازش استفاده کنم.
از اون طرف، ترکیب سافت‌اسکیل‌ها (ارتباط با مدیران، کار تیمی، مدیریت استرس، مسئولیت‌پذیری) با هارد اسکیل‌هایی مثل تحلیل دیتا، کار با پایتون و اکسل، باعث شد رشد من توی مسیر جدید بی‌نظم و تصادفی نباشه؛ بلکه سازمان‌یافته جلو بره.
برای همین وقتی وارد یه تیم حرفه‌ای مثل NexaPortal شدم، احساس نکردم «هیچ‌کس نیستم». می‌تونستم خودم رو درست معرفی کنم، ارزش‌هایی که از هواوی و سال‌های قبلی با خودم آورده بودم رو به تیم منتقل کنم و بفهمم دقیقاً کجا می‌تونم برای محصول و تیم مفید باشم.
## شروع دوباره؛ جایی که مسیر ترسناک میشه
با وجود همه این تجربه‌ها، کریرچنج واقعاً ترسناک بود.
روزهای اول شبیه راه‌رفتن توی مه بود. از محیطی می‌اومدم که ساختارش مشخص بود، حقوق هر ماه می‌اومد، نقش‌ها تعریف شده بود.
وارد حوزه‌ای می‌شدم که هیچ تضمینی نداشت. درآمدم ثبات نداشت، دوره‌هایی مدیریت مالی تبدیل به یه کابوس واقعی شده بود. هم‌زمان باید از صفر یاد می‌گرفتم، پروژه‌های کوچک می‌گرفتم، شکست می‌خوردم، دوباره می‌ساختم و تازه می‌فهمیدم «رشد واقعی» یعنی چی.
یه چیز اما از درون کمکم کرد: **ادامه دادن.**
نه با هیجان‌های لحظه‌ای. نه با موج انگیزه شبکه‌های اجتماعی.
با یه استمرار آروم و گاهی خسته، اما ادامه‌دار.
جایی وسط همین مسیر فهمیدم راز کار همینه: **ادامه بده، حتی وقتی حسش نیست. حتی وقتی هنوز می‌ترسی. حتی وقتی هیچ چیز مشخص نیست.**
::pull-quote{highlight}
ادامه بده، حتی وقتی حسش نیست. حتی وقتی هنوز می‌ترسی. حتی وقتی هیچ چیز مشخص نیست.
::
## یخ‌زدگی ذهنی و نقطه چرخش
یکی از سخت‌ترین چالش‌های من اصلاً فنی نبود.
موضوع «شجاعت ارائه دادن» بود. شجاعت اینکه دیده بشم.
هر بار می‌خواستم چیزی ارائه کنم، دمو بدم یا به تیمی توضیح بدم، انگار ذهنم یخ می‌زد.
عجیب بود؛ سال‌ها تیم هدایت کرده بودم، اما اینجا، توی نقش جدید، دوباره مثل تازه‌کارها قفل می‌کردم.
کم‌کم فهمیدم چرا: هنوز درگیر هویت قدیمی بودم.
هنوز توی فضای امن قبلی گیر کرده بودم؛ فضایی که توش «تعریف‌شده» بودم و حالا باید از نو خودم رو تعریف می‌کردم.
نقطه واقعی چرخش زمانی بود که به خودم اجازه آزادی دادم؛ آزادی جدا شدن از تمام مزایا، امکانات و امنیت‌هایی که مسیر قبلیم داشت.
این تصمیم، چیزهایی رو توی ذهنم آزاد کرد.
حس می‌کردم از یه قطعه یخ شناور توی اقیانوسی سرد… تبدیل شدم به یه شناگری که خودش انتخاب می‌کنه توی آبی گرم‌تر، اما عمیق‌تر شنا کنه.
**این تغییر فقط فنی نبود؛ هویتی بود.**
::callout{type="tip" title="نکته کلیدی"}
کریرچنج فقط یادگیری مهارت جدید نیست—بلکه بازتعریف هویت و پیدا کردن هماهنگی بین خودِ واقعی و کاری که انجام می‌دهی است.
::
## توشه مسیر: آدم‌ها، برنامه‌ها و کتاب‌هایی که من رو ساختن
توی این سال‌ها، تنها نبودم.
هر کسی برای مسیرش یه توشه داره؛ توشه من این‌ها بودن:
- **آدم‌هایی** که کنارم بودن و کمک کردن زیر فشار، فرسوده نشم.
- **برنامه «اکنون»** که نظم ذهنی و احساسیم رو تقویت کرد و کمک کرد وسط شلوغی، خودم رو گم نکنم.
- **کتاب‌هایی** مثل *تفکر شفاف* و *اثر مرکب* که نگاهم به تصمیم‌گیری، صبر و استمرار رو عمیق‌تر کردن.
- و مهم‌تر از همه: **عادت سوخت‌گیری آروم.**
من سعی کردم قهرمان‌بازی درنیارم. هر وقت می‌دیدم باتریم خالی شده، کنار می‌کشیدم، سوخت‌گیری می‌کردم و برمی‌گشتم.
نه با شعار؛ مثل یه سیستم هوشمند که می‌دونه اگه نسوزه، می‌تونه مسیر طولانی‌تری رو بره.
همین استمرار کوچک روزانه باعث شد جا نزنم؛ حتی توی روزهایی که از بیرون «هیچ اتفاق خاصی» دیده نمی‌شد.
## چالش‌هایی که من رو عمیق‌تر کردن
کریرچنج فقط یاد گرفتن یه مهارت جدید نیست؛ **تغییر زاویه دیده.**
این مسیر من رو مجبور کرد که:
- واقعی‌تر و شفاف‌تر فکر کنم؛
- واقعیت‌های سخت رو ببینم، نه فقط رویاها رو؛
- با شکست، تأخیر و فشار مالی کنار بیام؛
- روی توسعه فردی جدی‌تر کار کنم؛
- کنار آدم‌های اطرافم قوی‌تر باشم، نه فقط مشغول خودم؛
- و مهم‌تر از همه: **مسئولیت رشد خودم رو کامل بپذیرم.**
این‌ها اتفاقات ساده‌ای نبودن؛ هر کدوم، لایه‌ای از شخصیت و ذهنم رو باز کردن.
طعم نتیجه گرفتن برام واقعی‌تر شد و فهمیدم برای نتایج بزرگ‌تر، باید عمیق‌تر بشم؛ نه فقط سریع‌تر.
## امروز کجا ایستادم؟
امروز، وقتی به‌عنوان یه فرانت‌اند دولوپر روی پروژه‌ها کار می‌کنم، محصول می‌سازم، با تیم هماهنگ می‌شم و برای آینده برنامه‌ریزی می‌کنم، یه چیز رو واضح‌تر از همیشه حس می‌کنم:
**می‌تونم ارزش خلق کنم.**
نه فقط کد بنویسم. نه فقط یه تسک رو تحویل بدم.
بلکه:
- روی محصول اثر بذارم،
- تجربه کاربر رو بهتر کنم،
- توی تیم، حضور واقعی و صادقانه داشته باشم،
- و بین کیفیت کار، سلامت روان و استمرار، تعادل بسازم.
همه اون چیزی که از هواوی، از کار تیمی، از گزارش‌دادن دقیق، از اهمیت مشتری، و از سال‌های تحلیل دیتا و کار با پایتون و اکسل یاد گرفته بودم، امروز با مسیر جدیدم توی فرانت‌اند گره خورده.
این یکپارچگی کمکم کرد وقتی وارد NexaPortal شدم، فقط «یه برنامه‌نویس جدید» نباشم؛ بلکه کسی باشم که می‌تونه تجربه قبلی رو به زبان امروز ترجمه کنه و برای محصول، تیم و بیزنس، ارزش واقعی بسازه.
به آینده امیدوارم.
می‌دونم پنج سال دیگه که برگردم و این نوشته رو دوباره بخونم، هم لبخند می‌زنم، هم حس پختگی عمیق‌تری خواهم داشت.
چون می‌دونم این مسیر هنوز ادامه داره.
و مهم‌تر از همه: **الان دارم از مسیر لذت می‌برم؛ چیزی که سال‌ها دنبالش بودم همین بود: لذت بردن از مسیر، ادامه دادن و اصالت داشتن.**
## حرف آخر
این نوشته برام فقط یه روایت نیست؛ یه نقشه راه شخصیه که نشون میده از کجا شروع کردم، چه چیزهایی رو پشت سر گذاشتم و امروز چطور فکر می‌کنم.
اگه این مسیر رو ادامه بدم — با استمرار، اصالت و عمیق شدن — مطمئنم چند سال بعد توی جای بسیار بهتری می‌ایستم.
و اگه تو هم جایی بین ترس «از دست دادن امنیت» و میل «ساختن مسیر خودت» گیر کردی، شاید این متن فقط یه پیام ساده برات داشته باشه:
::pull-quote{highlight}
آروم‌تر، عمیق‌تر، اما ادامه بده.
::

View File

@@ -57,6 +57,7 @@
},
"languageSection": {
"tagline": "Advanced English communication for global collaboration.",
"accordionLabel": "Advanced English communication for global collaboration.",
"items": {
"ielts": {
"title": "IELTS readiness",

View File

@@ -136,6 +136,7 @@
},
"languageSection": {
"tagline": "انگلیسی پیشرفته برای همکاری با تیم‌های بین‌المللی.",
"accordionLabel": "انگلیسی پیشرفته برای همکاری با تیم‌های بین‌المللی.",
"items": {
"ielts": {
"title": "آمادگی آزمون آیلتس",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB