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 10, 2024iOS Development

Building AI-Powered iOS Apps

Creating Animetous showed me how to blend machine learning with native iOS development. The technical challenges were worth it.

iOS Development

I've built several AI-powered iOS apps as personal projects and experiments. While I haven't published them publicly, the journey taught me everything about integrating machine learning with native iOS development.

The Learning Journey

My AI app experiments started with a simple question: Can I make AI work smoothly on mobile devices without internet connections? The answer required mastering several complex technologies.

What I Built

Over the past two years, I've developed multiple AI-powered iOS prototypes:

Photo Enhancement App:

  • Real-time image processing using Core ML
  • Custom trained models for different artistic styles
  • On-device processing for privacy

Text Analysis Tool:

  • Natural language processing for content analysis
  • Sentiment analysis and keyword extraction
  • Offline functionality for sensitive documents

Computer Vision Experiments:

  • Object detection and classification
  • Real-time camera processing
  • Custom model training and optimization

The Technical Reality

Building AI apps meant mastering several moving parts:

Core Technologies:

  • Core ML: Apple's machine learning framework
  • Vision Framework: Image processing and analysis
  • Swift/UIKit: Native iOS development
  • Create ML: Custom model training

The Real Challenges:

  • Making AI models small enough for mobile (reduced 180MB models to 45MB)
  • Processing high-res images without memory crashes
  • Keeping UI responsive during heavy computation
  • Handling different device capabilities gracefully

Performance Lessons Learned

Mobile AI is all about optimization:

Model Optimization:

  • Quantization techniques reduced model sizes by 60-75%
  • Maintained 90%+ accuracy while being 4x smaller
  • Created fallback models for older devices

Memory Management:

  • Processed images in chunks to avoid memory spikes
  • Implemented aggressive cleanup after each operation
  • Added memory warnings to prevent crashes

User Experience:

  • Real-time progress indicators during processing
  • Low-resolution previews for instant feedback
  • Smart caching to avoid reprocessing

Why I Didn't Publish

These were learning projects focused on understanding the technology:

  • Privacy Concerns: On-device AI was the main goal, not data collection
  • Polish Level: Prototypes worked well but needed more UI/UX refinement
  • Market Research: Wanted to understand the tech before considering commercial viability
  • Learning Focus: More interested in mastering the development process

Technical Achievements

What I accomplished through these experiments:

Performance Metrics:

  • Average processing time: 2-4 seconds per image
  • Memory usage: Under 150MB peak on iPhone 8+
  • Crash rate: Under 0.1% during testing
  • Supported devices: iPhone 7 and newer

Development Skills:

  • Custom Core ML model integration
  • Advanced memory management techniques
  • Real-time image processing pipelines
  • Cross-device compatibility optimization

Resources That Actually Helped

Learning iOS AI Development:

AI Model Training:

Development Tools:

How This Changed My QA Approach

Building AI apps transformed how I test mobile applications:

Performance Testing:

  • Understanding memory leak patterns in AI workloads
  • CPU usage profiling during intensive operations
  • Battery drain analysis for sustained processing

Edge Case Discovery:

  • AI apps fail in unique ways that require creative testing
  • Device-specific performance variations
  • Unpredictable user behavior with AI features

User Experience Focus:

  • Loading states and progress indicators are crucial
  • Error handling needs to be user-friendly, not technical
  • Performance expectations are higher for AI features

What I Learned About AI on Mobile

Technical Insights:

  • On-device AI is possible but requires significant optimization
  • Model size vs. accuracy is always a trade-off
  • Memory management becomes critical with large models
  • Battery usage needs constant monitoring

Development Process:

  • Prototype early and test on actual devices
  • Performance profiling should start from day one
  • User testing reveals unexpected usage patterns
  • Iterative model optimization is essential

Current AI Development Trends

The mobile AI space continues evolving:

  • Smaller Models: More efficient architectures
  • Edge Computing: Hybrid on-device/cloud processing
  • Privacy Focus: Local processing becoming standard
  • Developer Tools: Better frameworks and debugging tools

What's Next

These AI experiments laid the foundation for:

  • Better understanding of mobile performance optimization
  • Enhanced QA testing approaches for AI-powered apps
  • Consulting opportunities in AI app development
  • Contributing to open-source AI mobile projects

The combination of hands-on AI development experience and QA expertise creates unique insights into building reliable, performant mobile AI applications.


Interested in AI mobile development? Check out my projects page for technical details and lessons learned from these experiments.