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;
January 15, 2024Game 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.

Game Development

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
  • Original soundtrack
  • 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:

  • Object-oriented programming principles
  • Mobile performance optimization
  • Touch input handling
  • Audio system integration
  • Analytics and user tracking

The best part? Every bug I fixed made me a better QA tester in my day job.

Real Numbers and Results

Over 18 months, I shipped 3 mobile games that you can actually see in action:

Game 1 - Endless Runner:

Game 2 - Puzzle Adventure:

Game 3 - Action Platformer:

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, not just a tester
  • Understand performance implications of every feature
  • Appreciate the complexity behind "simple" apps
  • Test edge cases that only real users would find

Resources That Actually Helped

Learning Unity:

Game Design:

Publishing:

What's Next

I still tinker with game ideas, but now I focus on QA full-time. Game development gave me superpowers as a tester - I can break apps in ways that would make developers cry.

Every app I test now gets the "would a player actually use this?" treatment. It's made me infinitely better at my job.


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

Game Videos

Here are the actual games I built and published: