function buildPersonalWebsite() {
  const developer = new Developer('Enes Arıkan');
  const skills = ['React', 'TypeScript', 'Next.js', 'TailwindCSS'];
  
  developer.setExperience([
    { role: 'QA Engineer', company: 'Insider', years: 2 },
    { role: 'Software Tester', company: 'Various', years: 3 }
  ]);
  
  const projects = developer.createProjects([
    'E-commerce Platform',
    'Task Management App', 
    'Weather Dashboard',
    'Portfolio Website'
  ]);
  
  return {
    portfolio: developer.showcase(projects),
    blog: developer.shareKnowledge(),
    contact: developer.getContactInfo(),
    playground: developer.createInteractiveGames()
  };
}

class CareerJourney {
  constructor() {
    this.levels = [];
    this.currentLevel = 0;
    this.experience = 0;
  }
  
  addExperience(role, company, duration) {
    this.levels.push({
      title: role,
      company: company,
      duration: duration,
      skills: this.getSkillsForRole(role)
    });
    this.levelUp();
  }
  
  levelUp() {
    this.currentLevel++;
    this.experience += 100;
    console.log(`Level up! Now at level ${this.currentLevel}`);
  }
  
  getSkillsForRole(role) {
    const skillMap = {
      'QA Engineer': ['Testing', 'Automation', 'Bug Tracking'],
      'Frontend Developer': ['React', 'JavaScript', 'CSS'],
      'Full Stack Developer': ['Node.js', 'Databases', 'APIs']
    };
    return skillMap[role] || [];
  }
}

// Initialize the journey
const career = new CareerJourney();
career.addExperience('QA Engineer', 'Insider', '2 years');

// Bug hunting mini-game logic
function createBugHunt() {
  const bugs = [
    { type: 'NullPointerException', severity: 'high' },
    { type: 'RaceCondition', severity: 'critical' },
    { type: 'MemoryLeak', severity: 'medium' },
    { type: 'InfiniteLoop', severity: 'high' }
  ];
  
  return {
    findBugs: () => bugs.filter(bug => bug.severity === 'high'),
    fixBug: (bugId) => console.log(`Fixed bug: ${bugId}`),
    score: bugs.length * 10
  };
}

// Skill tree implementation
const skillTree = {
  frontend: {
    react: { level: 5, unlocked: true },
    typescript: { level: 4, unlocked: true },
    nextjs: { level: 4, unlocked: true }
  },
  testing: {
    automation: { level: 5, unlocked: true },
    manual: { level: 5, unlocked: true },
    performance: { level: 3, unlocked: true }
  },
  tools: {
    git: { level: 4, unlocked: true },
    docker: { level: 2, unlocked: false },
    kubernetes: { level: 1, unlocked: false }
  }
};

export default buildPersonalWebsite;
Game controller representing mobile game development
January 15, 2024·Game Development

My Journey in Game Development

Building mobile games taught me more than any textbook ever could. Here's what I learned shipping real products to real users.

UnityC#Mobile Games

Building mobile games taught me more about software development than any course ever could. Here's my honest story about going from complete beginner to shipping actual games that people downloaded and played.

How It All Started

I discovered Unity completely by accident while browsing YouTube. Seeing someone create a 3D world from scratch looked like magic. I downloaded Unity that same day and spent the next 6 hours just moving a cube around the screen. That cube changed everything.

My First Game (And First Disaster)

Like every beginner, I aimed way too high. I wanted to create the next big puzzle game with complex mechanics, beautiful 3D graphics, an original soundtrack, and multiplayer features.

What I actually built was a barely functional mess that crashed every 30 seconds. But those crashes taught me more than any tutorial ever could.

What I learned the hard way:

  • Start with Pong, not Cyberpunk
  • One working feature beats ten broken ones
  • Mobile devices are not gaming PCs
  • Players are ruthless bug finders

The Breakthrough: My First Working Game

After months of frustration, I scaled back dramatically. My second attempt was a simple endless runner — just a character jumping over obstacles. Nothing revolutionary, but it worked flawlessly.

More importantly, people actually played it. Seeing strangers download and enjoy something I built was incredible. That game taught me:

  • Player retention: The first 30 seconds determine everything
  • Performance optimization: 60 FPS isn't negotiable on mobile
  • User testing: Friends lie, strangers tell the truth
  • App Store reality: Getting featured is like winning the lottery

Technical Skills I Developed

Unity and C# became my playground for learning real engineering fundamentals: object-oriented programming, mobile performance optimization, touch input handling, audio system integration, and analytics implementation.

The best part? Every bug I fixed made me a sharper QA tester in my day job. Building games gave me a developer's empathy and a tester's instinct simultaneously.

Real Numbers and Results

Over 18 months, I shipped 3 mobile games that real users downloaded:

Not viral hits, but real people played them. That's what mattered.

How This Changed My Career

Game development completely transformed how I approach QA testing. Now I think like an end user rather than a checklist executor. I understand the performance implications behind every feature, appreciate the complexity hidden inside "simple" apps, and test edge cases that only real users would discover.

Every app I test now gets the "would a player actually keep this?" treatment. It's made me measurably better at what I do.


Want to see more? Check out my projects page for screenshots and technical details.