chore: create initial project snapshot
Capture the portfolio source, design references, and production assets with repository-specific ignore rules.
This commit is contained in:
16
src/data/education.ts
Normal file
16
src/data/education.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
export interface EducationItem {
|
||||
degree: string;
|
||||
institution: string;
|
||||
date: string;
|
||||
description: string;
|
||||
logo: string;
|
||||
}
|
||||
|
||||
export const education: EducationItem = {
|
||||
degree: "Bachelor's Degree in Computer Engineering",
|
||||
institution: 'University of Guilan',
|
||||
date: 'JAN 2022 - JUN 2026',
|
||||
logo: '/images/logo-guilan-crest.png',
|
||||
description:
|
||||
"My bachelor's years at the University of Guilan were where I grew from a curious student into someone who could build, teach, lead, and take responsibility for real outcomes. Alongside studying Computer Engineering, I worked on software projects, served as Head of the Computer Engineering Scientific Association, coordinated teaching assistants across several courses, organized technical events, and supported other students in learning and problem-solving. More than any single subject, this period taught me how to think systematically, collaborate with people, communicate ideas clearly, and turn knowledge into something useful for others.",
|
||||
};
|
||||
120
src/data/experience.ts
Normal file
120
src/data/experience.ts
Normal file
@@ -0,0 +1,120 @@
|
||||
export interface ExperienceItem {
|
||||
id: string;
|
||||
role: string;
|
||||
company: string;
|
||||
date: string;
|
||||
location: string;
|
||||
logo: string;
|
||||
isCurrent?: boolean;
|
||||
summary: string;
|
||||
bullets: string[];
|
||||
}
|
||||
|
||||
export const experiences: ExperienceItem[] = [
|
||||
{
|
||||
id: 'quera',
|
||||
role: 'Software Engineer',
|
||||
company: 'Quera',
|
||||
date: 'NOV 2024 - PRESENT',
|
||||
location: 'Tehran (Remote)',
|
||||
logo: '/images/logo-quera.png',
|
||||
isCurrent: true,
|
||||
summary:
|
||||
'Contribute to internal engineering tools and educational products while also supporting developers and learners through mentoring and course development. My role combines software engineering, technical education, and problem design across backend development, databases, and algorithms.',
|
||||
bullets: [
|
||||
'Designed and implemented internal tools and services for staff',
|
||||
'Mentored learners and developers in programming and problem-solving',
|
||||
'Improved and designed educational programming courses in backend development, NoSQL, and SQL',
|
||||
'Designed algorithmic and implementation problems for the Python and Django contest at Technology Olympics 2025',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'fiotrix',
|
||||
role: 'Software Engineer',
|
||||
company: 'Fiotrix',
|
||||
date: 'NOV 2025 - MAR 2026',
|
||||
location: 'Karaj, Alborz',
|
||||
logo: '/images/logo-fiotrix.png',
|
||||
isCurrent: false,
|
||||
summary:
|
||||
'Worked across the backend, frontend, and infrastructure of production systems, with a strong focus on performance, maintainability, and reliable deployment. I contributed to both feature development and architectural improvements, including database migration, backend refactoring, and API optimization.',
|
||||
bullets: [
|
||||
'Developed backend services using Python, Django, and DRF',
|
||||
'Built frontend features with React and TypeScript',
|
||||
'Managed services with Docker, Nginx, PgBouncer, and MinIO',
|
||||
'Collaborated using Git and GitLab for version control and CI',
|
||||
'Refactored backend code and proposed a cleaner base architecture',
|
||||
'Designed a data migration pipeline from SQL Server to PostgreSQL',
|
||||
'Reduced API response times by approximately 80% through indexing and resolving N+1 queries',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'baduno',
|
||||
role: 'Backend Developer',
|
||||
company: 'Baduno',
|
||||
date: 'OCT 2025 - NOV 2025',
|
||||
location: 'Tehran, Tehran',
|
||||
logo: '/images/logo-baduno.png',
|
||||
isCurrent: false,
|
||||
summary:
|
||||
'Built and deployed web scraping services with an emphasis on reusable architecture, reliability, and production readiness. My work included reverse engineering external platforms, handling anti-blocking challenges, and publishing API-based scraping services for external users.',
|
||||
bullets: [
|
||||
'Built Python and FastAPI web scraping services published on RapidAPI',
|
||||
'Developed and reverse-engineered a Google Maps scraper',
|
||||
'Designed reusable scraper workflows using the Template Method pattern',
|
||||
'Managed deployment and routing of FastAPI services using Caddy',
|
||||
'Wrote unit tests with pytest and load tests with Locust',
|
||||
'Implemented proxy rotation to reduce IP-blocking issues',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'sharif-ta',
|
||||
role: 'Teaching Assistant',
|
||||
company: 'Sharif University of Technology',
|
||||
date: 'OCT 2025 - JAN 2026',
|
||||
location: 'Tehran, Tehran',
|
||||
logo: '/images/logo-sharif.png',
|
||||
isCurrent: false,
|
||||
summary:
|
||||
'Supported introductory programming courses by helping students build strong foundations in programming concepts, problem-solving, and practical implementation while working alongside course instructors.',
|
||||
bullets: [
|
||||
'Fundamentals of Programming, Dr. Mohammad Nazari (1404-1)',
|
||||
'Fundamentals of Programming, Dr. Zahra Mafi (1404-1)',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'guilan-assoc',
|
||||
role: 'Head of Scientific Association of Computer Engineering',
|
||||
company: 'University of Guilan',
|
||||
date: 'SEP 2024 - JUN 2026',
|
||||
location: 'Rasht, Guilan',
|
||||
logo: '/images/logo-guilan-assoc.png',
|
||||
isCurrent: false,
|
||||
summary:
|
||||
'Led the Computer Engineering Scientific Association and helped organize its academic and community activities. The role involved coordinating teams, planning events, and managing ongoing tasks across both online and in-person initiatives.',
|
||||
bullets: [
|
||||
'Managed online and on-site events',
|
||||
'Coordinated tasks and team workflows using Notion',
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'guilan-ta-head',
|
||||
role: 'Head of Teaching Assistants',
|
||||
company: 'University of Guilan',
|
||||
date: 'SEP 2024 - JAN 2026',
|
||||
location: 'Rasht, Guilan',
|
||||
logo: '/images/logo-guilan-ta.png',
|
||||
isCurrent: false,
|
||||
summary:
|
||||
'Coordinated teaching assistant activities across multiple Computer Engineering courses, combining academic support with team organization and course-level responsibilities across programming, databases, systems, and software engineering.',
|
||||
bullets: [
|
||||
'Fundamentals of Programming (1403-1)',
|
||||
'Computer Workshop (1403-1)',
|
||||
'Database Design (1403-1 & 1403-2)',
|
||||
'System Analysis and Design (1403-2)',
|
||||
'OS Fundamentals & Lab (1403-1)',
|
||||
'Software Engineering (1404-1)',
|
||||
'Data Structures & Algorithms (1404-1)',
|
||||
],
|
||||
},
|
||||
];
|
||||
62
src/data/milestones.ts
Normal file
62
src/data/milestones.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
export interface MilestoneItem {
|
||||
id: string;
|
||||
title: string;
|
||||
issuer: string;
|
||||
date: string;
|
||||
description: string;
|
||||
image: string;
|
||||
link?: string;
|
||||
}
|
||||
|
||||
export const milestones: MilestoneItem[] = [
|
||||
{
|
||||
id: 'hackathon',
|
||||
title: 'Agentic AI Development Hackathon',
|
||||
issuer: 'Startcoach.ir',
|
||||
date: 'AUGUST 2026',
|
||||
description:
|
||||
'This hackathon gave me the opportunity to explore the rapidly evolving field of agentic AI through hands-on problem-solving and experimentation. Working within a limited timeframe encouraged rapid learning, technical decision-making, and creative thinking while deepening my understanding of how AI-driven systems can be designed to solve practical problems.',
|
||||
image: '/images/cert-hackathon.png',
|
||||
link: '#',
|
||||
},
|
||||
{
|
||||
id: 'icpc-2025',
|
||||
title: 'ICPC 2025 Regional Finalist',
|
||||
issuer: 'International Collegiate Programming Contest (ICPC)',
|
||||
date: 'AUGUST 2025',
|
||||
description:
|
||||
'Competing as an ICPC Regional Finalist challenged me to solve complex algorithmic problems under strict time constraints while working closely with my teammates. The experience strengthened my problem-solving, algorithmic thinking, communication, and ability to stay focused when approaching unfamiliar technical challenges.',
|
||||
image: '/images/cert-icpc-2025.png',
|
||||
link: '#',
|
||||
},
|
||||
{
|
||||
id: 'pm-bootcamp',
|
||||
title: 'Product Management Bootcamp',
|
||||
issuer: 'Prodemy.ir',
|
||||
date: 'JANUARY 2026',
|
||||
description:
|
||||
'This bootcamp expanded my perspective beyond engineering and helped me better understand how successful products are shaped around real user needs and business goals. I explored product thinking, discovery, prioritization, planning, and cross-functional collaboration, strengthening my ability to connect technical decisions with the bigger picture of a product.',
|
||||
image: '/images/cert-bootcamp.png',
|
||||
link: '#',
|
||||
},
|
||||
{
|
||||
id: 'icpc-2024',
|
||||
title: 'ICPC 2024 - Online Participant',
|
||||
issuer: 'International Collegiate Programming Contest (ICPC)',
|
||||
date: 'SEPTEMBER 2024',
|
||||
description:
|
||||
'Participating in ICPC gave me valuable exposure to competitive programming and pushed me to approach problems with greater structure, speed, and precision. It helped strengthen my foundations in algorithms and data structures while motivating me to continue developing the skills needed for higher-level programming competitions.',
|
||||
image: '/images/cert-icpc-2024.png',
|
||||
link: '#',
|
||||
},
|
||||
{
|
||||
id: 'django-bootcamp',
|
||||
title: 'Backend development with Django Bootcamp',
|
||||
issuer: 'Quera.org',
|
||||
date: 'NOVEMBER 2024',
|
||||
description:
|
||||
'This bootcamp strengthened my foundations in backend development and helped turn my knowledge of Python into practical web engineering skills. Through Django, I developed a deeper understanding of backend architecture, databases, APIs, authentication, and building maintainable server-side applications—skills that later became a major part of my software engineering work.',
|
||||
image: '/images/cert-django.png',
|
||||
link: '#',
|
||||
},
|
||||
];
|
||||
92
src/data/projects.ts
Normal file
92
src/data/projects.ts
Normal file
@@ -0,0 +1,92 @@
|
||||
export interface Project {
|
||||
id: string;
|
||||
title: string;
|
||||
link?: string;
|
||||
date: string;
|
||||
description: string;
|
||||
tags: string[];
|
||||
image: string;
|
||||
}
|
||||
|
||||
export const projects: Project[] = [
|
||||
{
|
||||
id: 'qlockify',
|
||||
title: 'Qlockify',
|
||||
link: '#',
|
||||
date: 'FEB 2026 - PRESENT',
|
||||
description:
|
||||
'Built a production-ready time tracking platform for teams and freelancers to manage workspaces, projects, billable hours, and reports in one place. Users can track their work time, organize it by project, manage access inside each workspace, generate reports for admins and clients, and export insights.',
|
||||
tags: ['Django', 'React', 'Docker', 'UI/UX Design'],
|
||||
image: '/images/project-qlockify.png',
|
||||
},
|
||||
{
|
||||
id: 'guilan-ace',
|
||||
title: 'Guilan ACE',
|
||||
link: '#',
|
||||
date: 'JUL 2025 - PRESENT',
|
||||
description:
|
||||
'Developed the Scientific Association of Computer Engineering website for event management and article publishing, helping members organize activities and users register for events, read blog posts, and share ideas through comments.',
|
||||
tags: ['Django Ninja', 'Next.js', 'Docker'],
|
||||
image: '/images/project-guilan-ace.png',
|
||||
},
|
||||
{
|
||||
id: 'zarinpal',
|
||||
title: 'Zarinpal Analytic Dashboard',
|
||||
link: '#',
|
||||
date: 'AUG 2026',
|
||||
description:
|
||||
"AI-based dashboard for analytics insight on merchant's transactions in their different terminals and suggesting profitable campaigns to hold in special occasions based on their historical transactions and upcoming events in Persian calendar and international events that affect Iranian markets.",
|
||||
tags: ['Go', 'SvelteKit', 'Docker'],
|
||||
image: '/images/project-zarinpal.png',
|
||||
},
|
||||
{
|
||||
id: 'iran-implant',
|
||||
title: 'Iran Implant',
|
||||
link: '#',
|
||||
date: 'NOV 2025 - MAR 2026',
|
||||
description:
|
||||
'Developed the backend of a comprehensive dental clinic and implant center management system for appointment scheduling, inventory tracking, patient records, and billing, enabling clinic staff to manage daily clinic operations seamlessly from a centralized platform.',
|
||||
tags: ['Django', 'Nginx', 'PostgreSQL', 'Docker'],
|
||||
image: '/images/project-iran-implant.png',
|
||||
},
|
||||
{
|
||||
id: 'agentic-workflow-engine',
|
||||
title: 'Agentic Workflow Engine',
|
||||
link: '#',
|
||||
date: 'JAN 2026 - FEB 2026',
|
||||
description:
|
||||
'Engineered an autonomous multi-agent task execution system utilizing advanced LLM reasoning, background task scheduling, and structured tool calling for end-to-end automated code refactoring and project analysis.',
|
||||
tags: ['Python', 'FastAPI', 'Redis', 'Docker'],
|
||||
image: '/images/project-qlockify.png',
|
||||
},
|
||||
{
|
||||
id: 'rapidapi-scraper-suite',
|
||||
title: 'RapidAPI Scraping Suite',
|
||||
link: '#',
|
||||
date: 'OCT 2025 - NOV 2025',
|
||||
description:
|
||||
'Architected resilient web scraping and data extraction microservices deployed on RapidAPI with automated proxy rotation, anti-bot bypass techniques, and high-concurrency async pipelines.',
|
||||
tags: ['FastAPI', 'Caddy', 'Locust', 'PyTest'],
|
||||
image: '/images/project-guilan-ace.png',
|
||||
},
|
||||
{
|
||||
id: 'sharif-contest-platform',
|
||||
title: 'Tech Olympics Problem Engine',
|
||||
link: '#',
|
||||
date: 'DEC 2025 - JAN 2026',
|
||||
description:
|
||||
'Designed algorithmic and implementation problem suites and automated grading sandbox test runners for Python and Django challenges in national programming competitions.',
|
||||
tags: ['Python', 'Django', 'PostgreSQL', 'Docker'],
|
||||
image: '/images/project-zarinpal.png',
|
||||
},
|
||||
{
|
||||
id: 'home-lab-infra',
|
||||
title: 'Private Cloud & Home Lab',
|
||||
link: '#',
|
||||
date: '2024 - PRESENT',
|
||||
description:
|
||||
'Designed and deployed private on-premise infrastructure hosting containerized services, databases, CI/CD runners, reverse proxies, and self-hosted AI workloads with proactive Grafana/Prometheus monitoring.',
|
||||
tags: ['Linux', 'Docker', 'Nginx', 'Grafana'],
|
||||
image: '/images/project-iran-implant.png',
|
||||
},
|
||||
];
|
||||
81
src/data/skills.ts
Normal file
81
src/data/skills.ts
Normal file
@@ -0,0 +1,81 @@
|
||||
export interface SkillCategory {
|
||||
name: string;
|
||||
level: number; // 1 to 5
|
||||
}
|
||||
|
||||
export interface ToolItem {
|
||||
id: string;
|
||||
name: string;
|
||||
icon: string;
|
||||
category: ('software-engineering' | 'product-management' | 'design-ux')[];
|
||||
}
|
||||
|
||||
export const skillCategories: SkillCategory[] = [
|
||||
{ name: 'Backend', level: 5 },
|
||||
{ name: 'Databases', level: 4 },
|
||||
{ name: 'Testing & Quality', level: 3 },
|
||||
{ name: 'System Design', level: 3 },
|
||||
{ name: 'Frontend', level: 5 },
|
||||
{ name: 'DevOps', level: 2 },
|
||||
{ name: 'Web Scraping', level: 3 },
|
||||
{ name: 'Version Control', level: 4 },
|
||||
];
|
||||
|
||||
export const keywordBadges: string[] = [
|
||||
'Documentation',
|
||||
'Authentication',
|
||||
'Authorization',
|
||||
'OAuth2',
|
||||
'JWT',
|
||||
'Caching',
|
||||
'Rate Limiting',
|
||||
'Throttling',
|
||||
'WebSockets',
|
||||
'Background Job',
|
||||
'Web Scraping',
|
||||
'Bash Scripting',
|
||||
'Microservices',
|
||||
'Performance Optimization',
|
||||
'Third-Party Integration',
|
||||
];
|
||||
|
||||
export const toolsList: ToolItem[] = [
|
||||
// Row 1
|
||||
{ id: 'vscode', name: 'VS Code', icon: '/images/tools/vscode.png', category: ['software-engineering'] },
|
||||
{ id: 'codex', name: 'Codex', icon: '/images/tools/codex.png', category: ['software-engineering', 'product-management'] },
|
||||
{ id: 'antigravity', name: 'Antigravity', icon: '/images/tools/antigravity.png', category: ['software-engineering', 'product-management'] },
|
||||
{ id: 'git', name: 'Git', icon: '/images/tools/git.png', category: ['software-engineering'] },
|
||||
{ id: 'github', name: 'GitHub', icon: '/images/tools/github.png', category: ['software-engineering', 'product-management'] },
|
||||
{ id: 'python', name: 'Python', icon: '/images/tools/python.png', category: ['software-engineering'] },
|
||||
{ id: 'django', name: 'Django', icon: '/images/tools/django.png', category: ['software-engineering'] },
|
||||
{ id: 'fastapi', name: 'FastAPI', icon: '/images/tools/fastapi.png', category: ['software-engineering'] },
|
||||
// Row 2
|
||||
{ id: 'celery', name: 'Celery', icon: '/images/tools/celery.png', category: ['software-engineering'] },
|
||||
{ id: 'postgresql', name: 'PostgreSQL', icon: '/images/tools/postgresql.png', category: ['software-engineering'] },
|
||||
{ id: 'redis', name: 'Redis', icon: '/images/tools/redis.png', category: ['software-engineering'] },
|
||||
{ id: 'neo4j', name: 'Neo4j', icon: '/images/tools/neo4j.png', category: ['software-engineering'] },
|
||||
{ id: 'mongodb', name: 'MongoDB', icon: '/images/tools/mongodb.png', category: ['software-engineering'] },
|
||||
{ id: 'typescript', name: 'TypeScript', icon: '/images/tools/typescript.png', category: ['software-engineering'] },
|
||||
{ id: 'react', name: 'React', icon: '/images/tools/react.png', category: ['software-engineering', 'design-ux'] },
|
||||
{ id: 'nextjs', name: 'Next.js', icon: '/images/tools/nextjs.png', category: ['software-engineering', 'design-ux'] },
|
||||
// Row 3
|
||||
{ id: 'linux', name: 'Linux', icon: '/images/tools/linux.png', category: ['software-engineering'] },
|
||||
{ id: 'docker', name: 'Docker', icon: '/images/tools/docker.png', category: ['software-engineering'] },
|
||||
{ id: 'nginx', name: 'Nginx', icon: '/images/tools/nginx.png', category: ['software-engineering'] },
|
||||
{ id: 'caddy', name: 'Caddy', icon: '/images/tools/caddy.png', category: ['software-engineering'] },
|
||||
{ id: 'minio', name: 'MinIO', icon: '/images/tools/minio.png', category: ['software-engineering'] },
|
||||
{ id: 'prometheus', name: 'Prometheus', icon: '/images/tools/prometheus.png', category: ['software-engineering'] },
|
||||
{ id: 'grafana', name: 'Grafana', icon: '/images/tools/grafana.png', category: ['software-engineering', 'product-management'] },
|
||||
{ id: 'kubernetes', name: 'Kubernetes', icon: '/images/tools/kubernetes.png', category: ['software-engineering'] },
|
||||
];
|
||||
|
||||
export interface FilterTab {
|
||||
id: 'software-engineering' | 'product-management' | 'design-ux';
|
||||
label: string;
|
||||
}
|
||||
|
||||
export const filterTabs: FilterTab[] = [
|
||||
{ id: 'software-engineering', label: 'Software Engineering' },
|
||||
{ id: 'product-management', label: 'Product Management' },
|
||||
{ id: 'design-ux', label: 'Design & UX' },
|
||||
];
|
||||
Reference in New Issue
Block a user