Project Context

Purpose

This is an interactive portfolio website showcasing the professional experience and technical expertise of Muchammad Fikri Izzuddin, a Lead Software Engineer with 7+ years of experience. The project serves multiple goals:

  1. Professional Branding: Present a unique, memorable portfolio that stands out to global recruiters and hiring managers
  2. Technical Showcase: Demonstrate full-stack development skills through an immersive, interactive web experience
  3. Career Advancement: Support job search efforts by providing multiple access points (Terminal OS, Graphical CV, PDF download)
  4. SEO Optimization: Maximize discoverability for remote software engineering opportunities

The site features:

Tech Stack

Core Technologies

Frontend

Jekyll Plugins (Custom Ruby)

Data Storage

External Services & APIs

Build & Deployment

Project Conventions

Code Style

JavaScript

CSS

Ruby (Jekyll Plugins)

YAML Data Files

HTML

Architecture Patterns

Static Site Generation (Jekyll)

Frontend Architecture

SEO Architecture

Testing Strategy

Manual Testing

Visual Testing

Integration Testing

SEO Testing

Git Workflow

Branching Strategy

Commit Conventions

Pull Request Process

  1. Create feature branch from develop
  2. Make changes and commit with conventional messages
  3. Test locally (bundle exec jekyll serve)
  4. Create PR to develop
  5. Review and merge
  6. Deploy developmain for production

Domain Context

Professional Background

Key Companies

  1. Bitwyre (2024-Present): Crypto exchange, on-chain trading
  2. AiTradePulse (2023-Present): Algorithmic trading platform (Founder)
  3. Linguise (2023-2024): SaaS company (France)
  4. Viapulsa (2023-2024): Digital transformation
  5. BerkahKarya (2022-2023): Talent management, 5B+ IDR monthly revenue
  6. Solomon Mining (2021-2022): Indonesia’s first legal crypto mining (CTO)
  7. GarudaMedia (2019-2021): Affiliate marketing, 3,000+ employees

Technical Expertise

Career Goals

Important Constraints

Technical Constraints

Design Constraints

Content Constraints

Deployment Constraints

External Dependencies

Required Services

Optional Services

Development Dependencies

Build Dependencies (Gemfile)

gem "jekyll", "~> 4.3"
gem "jekyll-paginate"
gem "jekyll-sitemap"
gem "jekyll-gist"
gem "jekyll-feed"
gem "jemoji"
gem "jekyll-include-cache"
gem "minimal-mistakes-jekyll" # Remote theme

API Rate Limits

Third-Party Assets

File Structure

oyi77.github.io/
├── _config.yml              # Jekyll configuration
├── _data/                   # YAML data files
│   ├── companies.yml
│   ├── led_projects.yml
│   ├── case_studies.yml
│   ├── approaches.yml
│   ├── terminal.yml
│   ├── navigation.yml
│   └── projects.json
├── _plugins/                # Custom Ruby plugins
│   ├── analytics_generator.rb
│   ├── asset_optimizer.rb
│   ├── github_data_fetcher.rb
│   └── ... (11 plugins total)
├── _pages/                  # Static pages
├── _posts/                  # Blog posts
├── _layouts/                # Page layouts
├── assets/
│   ├── css/
│   │   └── portal.css       # Main stylesheet
│   ├── js/
│   │   ├── portal.js        # Main JavaScript
│   │   └── contact-widget.js
│   └── images/              # Images and assets
├── docs/                    # Documentation
├── openspec/                # OpenSpec files
│   └── project.md           # This file
├── index.html               # Homepage
├── CV.pdf                   # Downloadable resume
├── Gemfile                  # Ruby dependencies
└── README.md                # Project README

Notes for AI Assistants

When Making Changes

  1. Preserve Aesthetics: Maintain premium, modern design - no generic colors or basic layouts
  2. Test Responsiveness: Always check mobile, tablet, and desktop views
  3. SEO First: Include proper meta tags, structured data, and semantic HTML
  4. Accessibility: Add ARIA labels, keyboard navigation, and screen reader support
  5. Performance: Optimize images, minimize JS/CSS, lazy load when possible
  6. Data-Driven: Update YAML files in _data/ rather than hardcoding content
  7. Consistency: Follow existing naming conventions and code style
  8. Documentation: Update this file when adding new features or dependencies

Common Tasks

Testing Locally

# Install dependencies
bundle install

# Run local server
bundle exec jekyll serve

# Open http://localhost:4000

Deployment