Loading...
Loading...
const algorithms = { sort: (arr) => arr.sort((a, b) => a - b), search: (arr, target) => { return arr.findIndex(x => x === target); } };
interface Portfolio { projects: Project[]; skills: string[]; experience: number; } type Status = 'active' | 'archived';
async function deployProject(id: string) { const validated = await validate(id); if (validated) { return deploy(id); } throw new Error('Validation failed'); }
class CodeMaster { constructor(private skills: string[]) {} async learn(newSkill: string) { this.skills.push(newSkill); return this.practice(newSkill); } }
const developer = { name: 'Admin', skills: ['React', 'TypeScript', 'Next.js'], passion: 'Building amazing things', coffee: Infinity };
const algorithms = { sort: (arr) => arr.sort((a, b) => a - b), search: (arr, target) => { return arr.findIndex(x => x === target); } };
interface Portfolio { projects: Project[]; skills: string[]; experience: number; } type Status = 'active' | 'archived';
async function deployProject(id: string) { const validated = await validate(id); if (validated) { return deploy(id); } throw new Error('Validation failed'); }
class CodeMaster { constructor(private skills: string[]) {} async learn(newSkill: string) { this.skills.push(newSkill); return this.practice(newSkill); } }
const developer = { name: 'Admin', skills: ['React', 'TypeScript', 'Next.js'], passion: 'Building amazing things', coffee: Infinity };
export default function App() { const [state, setState] = useState({ loading: false, data: null, error: null }); return <Portfolio {...state} />; }
async function deployProject(id: string) { const validated = await validate(id); if (validated) { return deploy(id); } throw new Error('Validation failed'); }
function buildPortfolio() { const projects = await fetchProjects(); return projects.map(project => ({ ...project, status: 'deployed' })); }
interface Portfolio { projects: Project[]; skills: string[]; experience: number; } type Status = 'active' | 'archived';
import { useMemo, useCallback } from 'react'; const optimized = useMemo(() => { return expensiveOperation(data); }, [data]);
export default function App() { const [state, setState] = useState({ loading: false, data: null, error: null }); return <Portfolio {...state} />; }
async function deployProject(id: string) { const validated = await validate(id); if (validated) { return deploy(id); } throw new Error('Validation failed'); }
function buildPortfolio() { const projects = await fetchProjects(); return projects.map(project => ({ ...project, status: 'deployed' })); }
interface Portfolio { projects: Project[]; skills: string[]; experience: number; } type Status = 'active' | 'archived';
import { useMemo, useCallback } from 'react'; const optimized = useMemo(() => { return expensiveOperation(data); }, [data]);
Last updated: January 1, 2025
Welcome to Erfan Karimi's Portfolio website. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you visit our website. By using our website, you consent to the data practices described in this policy.
We may collect personal information that you voluntarily provide to us when you:
When you visit our website, we automatically collect certain information about your device, including:
We use the information we collect to:
We implement appropriate technical and organizational security measures to protect your personal information. However, no method of transmission over the Internet or electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your information, we cannot guarantee absolute security.
Our website uses cookies and similar tracking technologies to track activity on our website and store certain information. You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. For more information, please see our Cookie Policy.
We may use third-party services that collect, monitor, and analyze information to help us improve our website. These services may have their own privacy policies governing the collection and use of your information.
Depending on your location, you may have certain rights regarding your personal information, including:
Our website is not intended for children under the age of 13. We do not knowingly collect personal information from children under 13. If you believe we have collected information from a child under 13, please contact us immediately.
We may update this Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page and updating the "Last updated" date. You are advised to review this Privacy Policy periodically for any changes.
If you have any questions about this Privacy Policy, please contact us through our contact page.