mirror of
https://github.com/mmahdium/portfolio.git
synced 2026-08-12 11:12:49 +03:30
Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -62,13 +62,6 @@ onMounted(() => {
|
||||
})
|
||||
|
||||
const items = computed(() => [
|
||||
{
|
||||
key: 'ielts',
|
||||
iconType: 'image' as const,
|
||||
icon: '/img/icons8-ielts-48.png',
|
||||
title: t('languageSection.items.ielts.title'),
|
||||
description: t('languageSection.items.ielts.desc'),
|
||||
},
|
||||
{
|
||||
key: 'ttc',
|
||||
iconType: 'icon' as const,
|
||||
@@ -76,6 +69,13 @@ const items = computed(() => [
|
||||
title: t('languageSection.items.ttc.title'),
|
||||
description: t('languageSection.items.ttc.desc'),
|
||||
},
|
||||
{
|
||||
key: 'ielts',
|
||||
iconType: 'image' as const,
|
||||
icon: '/img/icons8-ielts-48.png',
|
||||
title: t('languageSection.items.ielts.title'),
|
||||
description: t('languageSection.items.ielts.desc'),
|
||||
},
|
||||
])
|
||||
|
||||
const accordionItems = computed(() => [{
|
||||
|
||||
@@ -7,7 +7,7 @@ const portfolioFa: PortfolioData = {
|
||||
// location: 'Tehran Province - Iran , Remote - Turkey',
|
||||
location: "استان کرمان، ایران",
|
||||
summary:
|
||||
"تمرکز اصلی من تا امروز بیشتر روی توسعهٔ بکاند و مدیریت سیستم بوده، چون همیشه از کار با زیرساخت، سرورها و منطق پشت برنامهها لذت بردهام. اخیراً یادگیری Nuxt و Vue رو هم شروع کردم تا مهارتهای فرانتاند خودم رو هم گسترش بدهم. همچنان تمرکز اصلیام بکاند و مدیریت سیستم هست، اما حالا با استفاده از Nuxt 4 و Vue 3 در زمینهٔ رابط کاربری هم فعالیت میکنم تا بتوانم راهحلهای کامل و یکپارچه ارائه کنم.",
|
||||
"من بیشتر کارم با بکاند و مدیریت سیستم بوده و همیشه از کار با زیرساخت و سرور لذت بردم. یک سالیست که بیشتر به سمت دواپس و اتوماسیون کشیده شدم و تازگیها با استک LGTM کار کردم که خیلی بهم کمک کرد تا با سیستمهای جدیتر و سازمانیتر آشنا بشم. هنوز هم عمدتاً با Go و داتنت بکاند مینویسم و حل مسائل طراحی سیستم رو خیلی دوست دارم. جلوتر که رفتم، فرانتاند برام کمرنگتر شد و تمرکزم بیشتر روی لایههای زیرین UI موند.",
|
||||
// avatar: "/img/AliProfile.webp",
|
||||
socials: {
|
||||
website: "https://mahdium.ir/",
|
||||
@@ -81,7 +81,7 @@ const portfolioFa: PortfolioData = {
|
||||
company: "گروه محرک انرژی هفت آسمان",
|
||||
link: "https://group7sky.ir/",
|
||||
// logo: "/img/NexaPortal1.png",
|
||||
// location: "İzmir, Türkiye · Remote",
|
||||
location: "Kerman, Iran",
|
||||
type: "Part-time",
|
||||
positions: [
|
||||
{
|
||||
@@ -91,12 +91,64 @@ const portfolioFa: PortfolioData = {
|
||||
description: [
|
||||
"پشتیبانی از عملیات OSS، انجام بررسیهای عملکرد و گزارشدهی؛ کمک به بهبود کارایی تیم و رضایت مشتری.",
|
||||
],
|
||||
icons: ["i-logos:github-octocat", "i-logos:git-icon"],
|
||||
icons: [
|
||||
"i-logos-docker-icon",
|
||||
"i-logos-grafana",
|
||||
"i-simple-icons-grafana", // Loki
|
||||
"i-logos-prometheus",
|
||||
"i-vscode-icons-file-type-alloy",
|
||||
"i-logos-git-icon",
|
||||
"i-devicon-gitea",
|
||||
"i-logos-linux-tux",
|
||||
"i-simple-icons-ansible",
|
||||
"i-logos-mariadb-icon",
|
||||
"i-simple-icons-umami",
|
||||
"i-logos-matomo-icon",
|
||||
"i-logos-go",
|
||||
"simple-icons:arduino",
|
||||
"i-logos-c",
|
||||
"i-logos-c-plusplus",
|
||||
],
|
||||
link: "https://group7sky.ir/",
|
||||
linkLabel: "Group7Sky Website",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
company: "گروه نرم افزاری فریماه",
|
||||
//link: "https://group7sky.ir/",
|
||||
// logo: "/img/NexaPortal1.png",
|
||||
location: "Kerman, Iran",
|
||||
type: "Part-time",
|
||||
positions: [
|
||||
{
|
||||
title: "مدیر بخش فنی (Technical Lead)",
|
||||
start: "Nov 2025",
|
||||
ongoing: true,
|
||||
description: [
|
||||
"مدیریت و هدایت تیم توسعه، شامل تخصیص وظایف، برنامهریزی و نظارت بر کیفیت کد و پیشرفت پروژهها.",
|
||||
"مسئولیت زیرساختهای سرور، شبکه و سرویسهای داخلی؛ پیادهسازی و نگهداری سرویسهای بکاند با رویکرد مقیاسپذیری و امنیت.",
|
||||
"طراحی معماری سیستمها و هماهنگی بین تیمهای مختلف برای بهبود جریان توسعه و استقرار پیوسته (CI/CD).",
|
||||
],
|
||||
icons: [
|
||||
"i-logos-docker-icon",
|
||||
"i-logos-grafana",
|
||||
"i-simple-icons-grafana", // Loki
|
||||
"i-logos-prometheus",
|
||||
"i-vscode-icons-file-type-alloy",
|
||||
"i-logos-git-icon",
|
||||
"i-devicon-gitea",
|
||||
"i-logos-linux-tux",
|
||||
"i-logos-postgresql",
|
||||
"i-logos-dotnet",
|
||||
"i-logos-elasticsearch",
|
||||
"i-logos-nginx",
|
||||
],
|
||||
// link: "https://group7sky.ir/",
|
||||
// linkLabel: "Group7Sky Website",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
education: [
|
||||
@@ -179,10 +231,12 @@ const portfolioFa: PortfolioData = {
|
||||
},
|
||||
],
|
||||
icons: [
|
||||
"i-logos-dotnet",
|
||||
"i-logos-bootstrap",
|
||||
"i-logos-docker-icon",
|
||||
"i-logos-prometheus",
|
||||
"i-logos-nuxt-icon",
|
||||
"i-logos-vue",
|
||||
"i-logos-typescript-icon",
|
||||
"i-logos-tailwindcss-icon",
|
||||
"i-logos-github-octocat",
|
||||
"i-logos-git-icon",
|
||||
],
|
||||
category: "freelance",
|
||||
},
|
||||
|
||||
+53
-2
@@ -6,7 +6,7 @@ export const portfolio: PortfolioData = {
|
||||
title: "A Developer?",
|
||||
location: "Kerman Province - Iran",
|
||||
summary:
|
||||
"My background is primarily in backend development and system administration, where I've always enjoyed working with infrastructure, servers, and the logic that powers applications. More recently, I've begun learning Nuxt and Vue, expanding into frontend development to round out my skill set. While my main focus remains backend and system administration, I now also build user interfaces with Nuxt 4 and Vue 3, enabling me to deliver complete, end‑to‑end solutions.",
|
||||
"My background is in backend development and system administration, with a strong emphasis on infrastructure, automation, and server side logic. Over the past year, I've shifted my focus toward DevOps and observability—recently working with the LGTM stack (Loki, Grafana, Tempo, Mimir + Prometheus, alloy, ...), which has been a major step toward more mature, enterprise grade systems. I continue to work extensively with Go and .NET for backend services, and I genuinely enjoy tackling system design problems that require thoughtful architecture, scalability, and reliability. While I still build interfaces when needed, my primary interest lies in the layers beneath the UI.",
|
||||
// avatar: "/img/AliProfile.webp",
|
||||
socials: {
|
||||
website: "https://mahdium.ir/",
|
||||
@@ -90,12 +90,63 @@ export const portfolio: PortfolioData = {
|
||||
description: [
|
||||
"Supported OSS operations, performance checks and reporting; contributed to team efficiency and customer satisfaction.",
|
||||
],
|
||||
icons: ["i-logos:github-octocat", "i-logos:git-icon"],
|
||||
icons: [
|
||||
"i-logos-docker-icon",
|
||||
"i-logos-grafana",
|
||||
"i-simple-icons-grafana", // Loki
|
||||
"i-logos-prometheus",
|
||||
"i-vscode-icons-file-type-alloy",
|
||||
"i-logos-git-icon",
|
||||
"i-devicon-gitea",
|
||||
"i-logos-linux-tux",
|
||||
"i-simple-icons-ansible",
|
||||
"i-logos-mariadb-icon",
|
||||
"i-simple-icons-umami",
|
||||
"i-logos-matomo-icon",
|
||||
"i-logos-go",
|
||||
"simple-icons:arduino",
|
||||
"i-logos-c",
|
||||
"i-logos-c-plusplus",
|
||||
],
|
||||
link: "https://group7sky.ir/",
|
||||
linkLabel: "Group7Sky Website",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
company: "Farimah Software Group",
|
||||
// link: "https://group7sky.ir/",
|
||||
location: "Kerman, Iran",
|
||||
type: "Part-time",
|
||||
positions: [
|
||||
{
|
||||
title: "Technical Lead",
|
||||
start: "Nov 2025",
|
||||
ongoing: true,
|
||||
description: [
|
||||
"Leading and guiding the development team, including task allocation, sprint planning, and overseeing code quality and project progress.",
|
||||
"Managing server infrastructure, networking, and internal services; designing, implementing, and maintaining scalable and secure backend services.",
|
||||
"Designing system architectures and coordinating across teams to improve development workflows and establish CI/CD pipelines.",
|
||||
],
|
||||
icons: [
|
||||
"i-logos-docker-icon",
|
||||
"i-logos-grafana",
|
||||
"i-simple-icons-grafana", // Loki
|
||||
"i-logos-prometheus",
|
||||
"i-vscode-icons-file-type-alloy",
|
||||
"i-logos-git-icon",
|
||||
"i-devicon-gitea",
|
||||
"i-logos-linux-tux",
|
||||
"i-logos-postgresql",
|
||||
"i-logos-dotnet",
|
||||
"i-logos-elasticsearch",
|
||||
"i-logos-nginx",
|
||||
],
|
||||
// link: "https://group7sky.ir/",
|
||||
// linkLabel: "Company Website",
|
||||
},
|
||||
],
|
||||
}
|
||||
],
|
||||
|
||||
education: [
|
||||
|
||||
+113
-117
@@ -1,8 +1,8 @@
|
||||
/**
|
||||
* Resume Data - Ali Arghyani
|
||||
* Resume Data - Mohammad Mahdi Mohammadi
|
||||
* Based on RESUME-STANDARDS.md (docs/RESUME-STANDARDS.md)
|
||||
* Optimized for ATS and 2025 best practices
|
||||
* Version: 2.0 - 2-Page Resume (International Remote Positions)
|
||||
* Version: 2.1 - DevOps & Backend Focus
|
||||
*
|
||||
* ⚠️ BEFORE EDITING: Give docs/RESUME-UPDATE-RULES.md to any AI agent
|
||||
*
|
||||
@@ -15,8 +15,7 @@ import type { Resume } from "~/types/resume";
|
||||
export const resumeData: Resume = {
|
||||
basics: {
|
||||
name: "Mohammad Mahdi Mohammadi",
|
||||
label: "Developer & System Administrator | Linux • Docker • Nginx • Kubernetes",
|
||||
// image: '/img/AliProfile.webp',
|
||||
label: "Developer & DevOps Engineer | Backend · Infrastructure · Observability (LGTM)",
|
||||
email: "me@mahdium.ir",
|
||||
phone: "+98 990 787 5312",
|
||||
url: "https://mahdium.ir",
|
||||
@@ -42,22 +41,34 @@ export const resumeData: Resume = {
|
||||
},
|
||||
],
|
||||
summary:
|
||||
"My background is primarily in backend development and system administration, where I've always enjoyed working with infrastructure, servers, and the logic that powers applications. More recently, I've begun learning Nuxt and Vue, expanding into frontend development to round out my skill set. While my main focus remains backend and system administration, I now also build user interfaces with Nuxt 4 and Vue 3, enabling me to deliver complete, end‑to‑end solutions.",
|
||||
"My background is in backend development and system administration, with a strong emphasis on infrastructure, automation, and server side logic. Over the past year, I've shifted my focus toward DevOps and observability—recently working with the LGTM stack (Loki, Grafana, Tempo, Mimir + Prometheus, alloy, ...), which has been a major step toward more mature, enterprise grade systems. I continue to work extensively with Go and .NET for backend services, and I genuinely enjoy tackling system design problems that require thoughtful architecture, scalability, and reliability. While I still build interfaces when needed, my primary interest lies in the layers beneath the UI.",
|
||||
},
|
||||
|
||||
work: [
|
||||
{
|
||||
company: "Group7Sky",
|
||||
position: "System Administrator & DevOps manager",
|
||||
position: "System Administrator & DevOps Lead",
|
||||
location: "Kerman, Iran",
|
||||
startDate: "2024-6",
|
||||
startDate: "2024-06",
|
||||
highlights: [
|
||||
"Managed and maintained Linux-based servers, ensuring stable deployment environments, uptime monitoring, and routine performance optimization for production systems",
|
||||
"Implemented CI/CD workflows and automated deployment pipelines using GitHub Actions and Docker, reducing manual deployment overhead and improving reliability",
|
||||
"Configured and secured web services, reverse proxies, and SSL certificates, improving system stability and user trust across multiple client-facing applications",
|
||||
"Developed internal tools and utilities in Go, .NET, and TypeScript to streamline workflows and automate repetitive operational tasks",
|
||||
"Collaborated with development teams to diagnose infrastructure issues, optimize resource usage, and improve overall system performance",
|
||||
"Provided technical support for OSS operations, including repository management, version control workflows, and issue triaging",
|
||||
"Managed and maintained Linux-based server infrastructure, ensuring high availability, uptime monitoring, and performance optimization across production systems",
|
||||
"Designed and implemented CI/CD pipelines using GitHub Actions and Docker, reducing deployment overhead and improving release reliability",
|
||||
"Configured and secured web services with reverse proxies (Nginx), SSL certificates, and firewall rules, improving security posture",
|
||||
"Developed internal automation tools in Go, .NET, and TypeScript to streamline operational workflows and reduce manual tasks",
|
||||
"Collaborated with development teams on system architecture, resource optimization, and infrastructure-related debugging",
|
||||
"Provided technical support for OSS operations, including repository management and version control workflows",
|
||||
],
|
||||
},
|
||||
{
|
||||
company: "Farimah Software Group",
|
||||
position: "Technical Lead",
|
||||
location: "Kerman, Iran",
|
||||
startDate: "2025-11",
|
||||
highlights: [
|
||||
"Leading a development team with task allocation, sprint planning, and code quality oversight",
|
||||
"Managing server infrastructure, networking, and internal services; designing and maintaining scalable and secure backend systems",
|
||||
"Architecting system designs and coordinating across teams to improve development workflows and establish CI/CD practices",
|
||||
"Building and maintaining backend services primarily using .NET and Go with a focus on reliability and performance",
|
||||
],
|
||||
},
|
||||
],
|
||||
@@ -66,7 +77,7 @@ export const resumeData: Resume = {
|
||||
{
|
||||
institution: "Farhangian University of Kerman",
|
||||
area: "English Language Teaching",
|
||||
studyType: "Bachelor’s Degree",
|
||||
studyType: "Bachelor's Degree",
|
||||
startDate: "2025",
|
||||
endDate: "ongoing",
|
||||
courses: [
|
||||
@@ -79,20 +90,6 @@ export const resumeData: Resume = {
|
||||
],
|
||||
|
||||
skills: [
|
||||
{
|
||||
name: "Frontend Core",
|
||||
keywords: [
|
||||
"Vue.js",
|
||||
"Nuxt.js",
|
||||
"TypeScript",
|
||||
"JavaScript (ES6+)",
|
||||
"Tailwind CSS",
|
||||
"Pinia",
|
||||
"DaisyUI",
|
||||
"Axios",
|
||||
"vue-i18n",
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Backend & Systems",
|
||||
keywords: [
|
||||
@@ -101,22 +98,59 @@ export const resumeData: Resume = {
|
||||
".NET",
|
||||
"PostgreSQL",
|
||||
"MariaDB",
|
||||
"Supabase",
|
||||
"ElasticSearch",
|
||||
"REST APIs",
|
||||
"WebSocket",
|
||||
"System Design",
|
||||
"Scalability",
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "DevOps & Infrastructure",
|
||||
keywords: [
|
||||
"Docker",
|
||||
"GitHub Actions (CI/CD)",
|
||||
"Linux",
|
||||
"Ubuntu",
|
||||
"Nginx",
|
||||
"GitHub Actions (CI/CD)",
|
||||
"Cloudflare",
|
||||
"Vercel",
|
||||
"Appwrite",
|
||||
"Ansible",
|
||||
"Kubernetes",
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Observability & Monitoring (LGTM Stack)",
|
||||
keywords: [
|
||||
"Grafana",
|
||||
"Loki",
|
||||
"Prometheus",
|
||||
"Alloy (OpenTelemetry Collector)",
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Frontend (Secondary)",
|
||||
keywords: [
|
||||
"Vue.js",
|
||||
"Nuxt.js",
|
||||
"TypeScript",
|
||||
"Tailwind CSS",
|
||||
"Pinia",
|
||||
"DaisyUI",
|
||||
"Axios",
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Development Tools & Workflow",
|
||||
keywords: [
|
||||
"Git",
|
||||
"GitHub",
|
||||
"GitLab",
|
||||
"Gitea",
|
||||
"pnpm",
|
||||
"Swagger",
|
||||
"Vite",
|
||||
"ESLint/Prettier",
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -128,40 +162,6 @@ export const resumeData: Resume = {
|
||||
"AI‑Powered Code Review",
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Architecture & Performance",
|
||||
keywords: [
|
||||
"SSR (Server‑Side Rendering)",
|
||||
"SSG (Static Site Generation)",
|
||||
"Code Splitting & Lazy Loading",
|
||||
"Caching Strategies",
|
||||
"Performance Optimization",
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Development Tools & Workflow",
|
||||
keywords: [
|
||||
"Git",
|
||||
"GitHub",
|
||||
"GitLab",
|
||||
"pnpm",
|
||||
"Swagger",
|
||||
"ESLint/Prettier",
|
||||
"Vite",
|
||||
"VueUse",
|
||||
"Agile/Scrum",
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Quality & UI/UX",
|
||||
keywords: [
|
||||
"Responsive Design",
|
||||
"Accessibility Awareness",
|
||||
"Lighthouse Optimization",
|
||||
"Code Review",
|
||||
"i18n Internationalization",
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Used Before",
|
||||
keywords: [
|
||||
@@ -173,7 +173,6 @@ export const resumeData: Resume = {
|
||||
"Flask",
|
||||
"Material UI",
|
||||
"Arduino",
|
||||
"Iconify",
|
||||
],
|
||||
},
|
||||
],
|
||||
@@ -200,57 +199,6 @@ export const resumeData: Resume = {
|
||||
// ],
|
||||
|
||||
projects: [
|
||||
{
|
||||
name: "TBW (To Be Watched)",
|
||||
description:
|
||||
"A clean and minimal media tracking app for managing movies and series, built with Vue 3 and Tailwind CSS.",
|
||||
highlights: [
|
||||
"Designed a lightweight and responsive UI using Tailwind CSS and DaisyUI",
|
||||
"Implemented local storage–based state management for fast, offline-friendly usage",
|
||||
"Integrated Axios for efficient API communication and modular data handling",
|
||||
],
|
||||
keywords: ["Vue.js", "TypeScript", "Tailwind CSS", "DaisyUI", "Axios"],
|
||||
startDate: "2024-01",
|
||||
endDate: "2024-03",
|
||||
url: "https://tbw.monasef.ir/",
|
||||
roles: ["Frontend Developer"],
|
||||
type: "application",
|
||||
},
|
||||
|
||||
{
|
||||
name: "TorrentMax",
|
||||
description:
|
||||
"A utility tool that enriches magnet links with additional trackers for improved torrent performance.",
|
||||
highlights: [
|
||||
"Built a fast Nuxt-based interface with instant magnet parsing",
|
||||
"Implemented tracker injection logic with clean, modular TypeScript",
|
||||
"Deployed globally on Vercel with optimized caching and edge performance",
|
||||
],
|
||||
keywords: ["Nuxt.js", "Vue.js", "TypeScript", "Tailwind CSS"],
|
||||
startDate: "2024-02",
|
||||
endDate: "2024-02",
|
||||
url: "https://torrentmax.monasef.ir/",
|
||||
roles: ["Full‑stack Developer"],
|
||||
type: "tool",
|
||||
},
|
||||
|
||||
{
|
||||
name: "HoolIt",
|
||||
description:
|
||||
"An open-source alternative to dweet.io, enabling users to publish small code snippets and micro‑experiments.",
|
||||
highlights: [
|
||||
"Developed backend using Go and Gin with clean routing and modular structure",
|
||||
"Containerized the application with Docker for consistent deployment",
|
||||
"Implemented secure API endpoints and efficient request handling",
|
||||
],
|
||||
keywords: ["Go", "Gin", "Docker", "REST API"],
|
||||
startDate: "2024-04",
|
||||
endDate: "2024-06",
|
||||
url: "https://github.com/mmahdium/HoolIt",
|
||||
roles: ["Backend Developer"],
|
||||
type: "application",
|
||||
},
|
||||
|
||||
{
|
||||
name: "PolyList",
|
||||
description:
|
||||
@@ -277,5 +225,53 @@ export const resumeData: Resume = {
|
||||
roles: ["Full‑stack Developer"],
|
||||
type: "application",
|
||||
},
|
||||
{
|
||||
name: "HoolIt",
|
||||
description:
|
||||
"An open-source alternative to dweet.io, enabling users to publish small code snippets and micro‑experiments.",
|
||||
highlights: [
|
||||
"Developed backend using Go and Gin with clean routing and modular structure",
|
||||
"Containerized the application with Docker for consistent deployment",
|
||||
"Implemented secure API endpoints and efficient request handling",
|
||||
],
|
||||
keywords: ["Go", "Gin", "Docker", "REST API"],
|
||||
startDate: "2024-04",
|
||||
endDate: "2024-06",
|
||||
url: "https://github.com/mmahdium/HoolIt",
|
||||
roles: ["Backend Developer"],
|
||||
type: "application",
|
||||
},
|
||||
{
|
||||
name: "TBW (To Be Watched)",
|
||||
description:
|
||||
"A clean and minimal media tracking app for managing movies and series, built with Vue 3 and Tailwind CSS.",
|
||||
highlights: [
|
||||
"Designed a lightweight and responsive UI using Tailwind CSS and DaisyUI",
|
||||
"Implemented local storage–based state management for fast, offline-friendly usage",
|
||||
"Integrated Axios for efficient API communication and modular data handling",
|
||||
],
|
||||
keywords: ["Vue.js", "TypeScript", "Tailwind CSS", "DaisyUI", "Axios"],
|
||||
startDate: "2024-01",
|
||||
endDate: "2024-03",
|
||||
url: "https://tbw.monasef.ir/",
|
||||
roles: ["Frontend Developer"],
|
||||
type: "application",
|
||||
},
|
||||
{
|
||||
name: "TorrentMax",
|
||||
description:
|
||||
"A utility tool that enriches magnet links with additional trackers for improved torrent performance.",
|
||||
highlights: [
|
||||
"Built a fast Nuxt-based interface with instant magnet parsing",
|
||||
"Implemented tracker injection logic with clean, modular TypeScript",
|
||||
"Deployed globally on Vercel with optimized caching and edge performance",
|
||||
],
|
||||
keywords: ["Nuxt.js", "Vue.js", "TypeScript", "Tailwind CSS"],
|
||||
startDate: "2024-02",
|
||||
endDate: "2024-02",
|
||||
url: "https://torrentmax.monasef.ir/",
|
||||
roles: ["Full‑stack Developer"],
|
||||
type: "tool",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
+161
-105
@@ -1,11 +1,36 @@
|
||||
import type { Tag } from "@/types/portfolio.types";
|
||||
|
||||
export const expert: Tag[] = [
|
||||
|
||||
{
|
||||
label: "Axios",
|
||||
icon: "simple-icons:axios",
|
||||
to: "https://axios-http.com",
|
||||
type: "Library",
|
||||
label: "Grafana",
|
||||
icon: "i-logos-grafana",
|
||||
to: "https://grafana.com/oss/grafana/",
|
||||
type: "Tool"
|
||||
},
|
||||
{
|
||||
label: "Loki",
|
||||
icon: "i-simple-icons-grafana",
|
||||
to: "https://grafana.com/oss/grafana/",
|
||||
type: "Service"
|
||||
},
|
||||
{
|
||||
label: "Prometheus",
|
||||
icon: "i-logos-prometheus",
|
||||
to: "https://grafana.com/oss/prometheus/",
|
||||
type: "Service"
|
||||
},
|
||||
{
|
||||
label: "Alloy",
|
||||
icon: "i-vscode-icons-file-type-alloy",
|
||||
to: "https://grafana.com/oss/alloy-opentelemetry-collector/",
|
||||
type: "Service"
|
||||
},
|
||||
{
|
||||
label: "OpenTelemetry",
|
||||
icon: "i-logos-opentelemetry-icon",
|
||||
to: "https://opentelemetry.io/",
|
||||
type: "Service"
|
||||
},
|
||||
{
|
||||
label: "Git",
|
||||
@@ -13,30 +38,6 @@ export const expert: Tag[] = [
|
||||
to: "https://git-scm.com",
|
||||
type: "Tool",
|
||||
},
|
||||
{
|
||||
label: "GitHub",
|
||||
icon: "i-logos-github-octocat",
|
||||
to: "https://github.com",
|
||||
type: "Service",
|
||||
},
|
||||
{
|
||||
label: "GitLab",
|
||||
icon: "i-logos-gitlab-icon",
|
||||
to: "https://gitlab.com",
|
||||
type: "Service",
|
||||
},
|
||||
{
|
||||
label: "vue-i18n",
|
||||
icon: "i-twemoji-globe-with-meridians",
|
||||
to: "https://vue-i18n.intlify.dev",
|
||||
type: "Library",
|
||||
},
|
||||
{
|
||||
label: "GitHub Actions",
|
||||
icon: "simple-icons:githubactions",
|
||||
to: "https://docs.github.com/actions",
|
||||
type: "DevOps",
|
||||
},
|
||||
{
|
||||
label: "Docker",
|
||||
icon: "i-logos-docker-icon",
|
||||
@@ -49,30 +50,66 @@ export const expert: Tag[] = [
|
||||
to: "https://www.kernel.org",
|
||||
type: "Tool", // refined from Language
|
||||
},
|
||||
{
|
||||
label: "GitHub",
|
||||
icon: "i-logos-github-octocat",
|
||||
to: "https://github.com",
|
||||
type: "Service",
|
||||
},
|
||||
{
|
||||
label: "GitLab",
|
||||
icon: "i-logos-gitlab-icon",
|
||||
to: "https://gitlab.com",
|
||||
type: "Service",
|
||||
},
|
||||
{
|
||||
label: "GitHub Actions",
|
||||
icon: "simple-icons:githubactions",
|
||||
to: "https://docs.github.com/actions",
|
||||
type: "DevOps",
|
||||
},
|
||||
{
|
||||
label: "Gitea",
|
||||
icon: "i-devicon-gitea",
|
||||
to: "https://about.gitea.com",
|
||||
type: "Service",
|
||||
},
|
||||
{
|
||||
label: "Ubuntu",
|
||||
icon: "i-logos-ubuntu",
|
||||
to: "https://www.ubuntu.com",
|
||||
type: "Tool",
|
||||
},
|
||||
{
|
||||
label: "MariaDB",
|
||||
icon: "i-logos-mariadb-icon",
|
||||
to: "https://mariadb.org",
|
||||
type: "Data",
|
||||
},
|
||||
{
|
||||
label: "PostgreSQL",
|
||||
icon: "i-logos-postgresql",
|
||||
to: "https://www.postgresql.org",
|
||||
type: "Data",
|
||||
},
|
||||
{
|
||||
label: "Matomo",
|
||||
icon: "i-logos-matomo-icon",
|
||||
to: "https://matomo.org",
|
||||
type: "Service",
|
||||
},
|
||||
{
|
||||
label: "Umami",
|
||||
icon: "i-simple-icons-umami",
|
||||
to: "https://umami.is/",
|
||||
type: "Service",
|
||||
},
|
||||
{
|
||||
label: "Cloudflare",
|
||||
icon: "i-logos-cloudflare-icon",
|
||||
to: "https://www.cloudflare.com",
|
||||
type: "Service",
|
||||
},
|
||||
{
|
||||
label: "DaisyUI",
|
||||
icon: "i-logos-daisyui-icon",
|
||||
to: "https://daisyui.com",
|
||||
type: "Library",
|
||||
},
|
||||
{
|
||||
label: "Nginx",
|
||||
icon: "i-logos-nginx",
|
||||
@@ -97,69 +134,9 @@ export const expert: Tag[] = [
|
||||
to: "https://appwrite.io/",
|
||||
type: "Service",
|
||||
},
|
||||
{
|
||||
label: "MariaDB",
|
||||
icon: "i-logos-mariadb-icon",
|
||||
to: "https://mariadb.org",
|
||||
type: "Data",
|
||||
},
|
||||
];
|
||||
|
||||
export const proficient: Tag[] = [
|
||||
{
|
||||
label: "Nuxt.js",
|
||||
icon: "i-logos-nuxt-icon",
|
||||
to: "https://nuxt.com",
|
||||
type: "Framework",
|
||||
},
|
||||
{
|
||||
label: "Swagger",
|
||||
icon: "logos:swagger",
|
||||
to: "https://swagger.io",
|
||||
type: "Tool",
|
||||
},
|
||||
{
|
||||
label: "WebSocket",
|
||||
icon: "i-twemoji-electric-plug",
|
||||
to: "https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API",
|
||||
type: "Library",
|
||||
},
|
||||
{
|
||||
label: "Vue.js",
|
||||
icon: "i-logos-vue",
|
||||
to: "https://vuejs.org",
|
||||
type: "Framework",
|
||||
},
|
||||
{
|
||||
label: "TypeScript",
|
||||
icon: "i-logos-typescript-icon",
|
||||
to: "https://www.typescriptlang.org",
|
||||
type: "Language",
|
||||
},
|
||||
{
|
||||
label: "Tailwind CSS",
|
||||
icon: "i-logos-tailwindcss-icon",
|
||||
to: "https://tailwindcss.com",
|
||||
type: "Library",
|
||||
},
|
||||
{
|
||||
label: "PostgreSQL",
|
||||
icon: "i-logos-postgresql",
|
||||
to: "https://www.postgresql.org",
|
||||
type: "Data",
|
||||
},
|
||||
{
|
||||
label: "pnpm",
|
||||
icon: "i-logos-pnpm",
|
||||
to: "https://pnpm.io/",
|
||||
type: "Tool",
|
||||
},
|
||||
{
|
||||
label: "Pinia",
|
||||
icon: "i-logos-pinia",
|
||||
to: "https://pinia.vuejs.org",
|
||||
type: "Library",
|
||||
},
|
||||
{
|
||||
label: ".NET",
|
||||
icon: "i-logos-dotnet",
|
||||
@@ -180,25 +157,98 @@ export const proficient: Tag[] = [
|
||||
},
|
||||
{
|
||||
label: "ElasticSearch",
|
||||
icon: "devicon:elasticsearch",
|
||||
icon: "i-logos-elasticsearch",
|
||||
to: "https://www.elastic.co/elasticsearch",
|
||||
type: "Data",
|
||||
},
|
||||
{
|
||||
label: "MongoDB",
|
||||
icon: "i-logos-mongodb-icon",
|
||||
to: "https://www.mongodb.com",
|
||||
type: "Data",
|
||||
},
|
||||
{
|
||||
label: "Redis",
|
||||
icon: "i-logos-elasticsearch",
|
||||
to: "https://redis.io/",
|
||||
type: "Data",
|
||||
},
|
||||
{
|
||||
label: "Axios",
|
||||
icon: "simple-icons:axios",
|
||||
to: "https://axios-http.com",
|
||||
type: "Library",
|
||||
},
|
||||
{
|
||||
label: "Nuxt.js",
|
||||
icon: "i-logos-nuxt-icon",
|
||||
to: "https://nuxt.com",
|
||||
type: "Framework",
|
||||
},
|
||||
{
|
||||
label: "Swagger",
|
||||
icon: "logos:swagger",
|
||||
to: "https://swagger.io",
|
||||
type: "Tool",
|
||||
},
|
||||
{
|
||||
label: "DaisyUI",
|
||||
icon: "i-logos-daisyui-icon",
|
||||
to: "https://daisyui.com",
|
||||
type: "Library",
|
||||
},
|
||||
{
|
||||
label: "WebSocket",
|
||||
icon: "i-twemoji-electric-plug",
|
||||
to: "https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API",
|
||||
type: "Library",
|
||||
},
|
||||
{
|
||||
label: "Vue.js",
|
||||
icon: "i-logos-vue",
|
||||
to: "https://vuejs.org",
|
||||
type: "Framework",
|
||||
},
|
||||
{
|
||||
label: "vue-i18n",
|
||||
icon: "i-twemoji-globe-with-meridians",
|
||||
to: "https://vue-i18n.intlify.dev",
|
||||
type: "Library",
|
||||
},
|
||||
{
|
||||
label: "TypeScript",
|
||||
icon: "i-logos-typescript-icon",
|
||||
to: "https://www.typescriptlang.org",
|
||||
type: "Language",
|
||||
},
|
||||
{
|
||||
label: "Tailwind CSS",
|
||||
icon: "i-logos-tailwindcss-icon",
|
||||
to: "https://tailwindcss.com",
|
||||
type: "Library",
|
||||
},
|
||||
|
||||
];
|
||||
|
||||
export const usedBefore: Tag[] = [
|
||||
{
|
||||
label: "Kubernetes",
|
||||
icon: "i-devicon-kubernetes",
|
||||
to: "https://kubernetes.io/",
|
||||
type: "DevOps",
|
||||
},
|
||||
{
|
||||
label: "Ansible",
|
||||
icon: "i-simple-icons-ansible",
|
||||
to: "https://ansible.com/",
|
||||
type: "DevOps",
|
||||
},
|
||||
{
|
||||
label: "Python",
|
||||
icon: "i-logos-python",
|
||||
to: "https://www.python.org",
|
||||
type: "Language",
|
||||
},
|
||||
{
|
||||
label: "Iconify",
|
||||
icon: "simple-icons:iconify",
|
||||
to: "https://iconify.design",
|
||||
type: "Library",
|
||||
},
|
||||
{
|
||||
label: "C",
|
||||
icon: "i-logos-c",
|
||||
@@ -211,6 +261,12 @@ export const usedBefore: Tag[] = [
|
||||
to: "https://en.wikipedia.org/wiki/C%2B%2B",
|
||||
type: "Language",
|
||||
},
|
||||
{
|
||||
label: "OAuth2",
|
||||
icon: "i-devicon-oauth",
|
||||
to: "https://oauth.net/",
|
||||
type: "Service",
|
||||
},
|
||||
{
|
||||
label: "Arduino",
|
||||
icon: "simple-icons:arduino",
|
||||
@@ -236,10 +292,10 @@ export const usedBefore: Tag[] = [
|
||||
type: "Library",
|
||||
},
|
||||
{
|
||||
label: "MongoDB",
|
||||
icon: "i-logos-mongodb-icon",
|
||||
to: "https://www.mongodb.com",
|
||||
type: "Data",
|
||||
label: "Pinia",
|
||||
icon: "i-logos-pinia",
|
||||
to: "https://pinia.vuejs.org",
|
||||
type: "Library",
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.8 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.4 MiB |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"sections": {
|
||||
"work": "Work Experience",
|
||||
"workAccordion": "7+ years building enterprise solutions and web applications.",
|
||||
"workAccordion": "Building enterprise solutions and managing infrastructure",
|
||||
"education": "Education",
|
||||
"recommendations": "Recommendations",
|
||||
"projects": " Projects",
|
||||
|
||||
Generated
+5452
-4383
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user