This is a personal portfolio and blog built with Jekyll, hosted on GitHub Pages. It serves as a professional landing page showcasing software engineering experience, personal projects, and technical writing.
The site is built using a static site generation (SSG) workflow:
- Framework: Jekyll (Ruby-based).
- Content: Written in Markdown (
.md) with Front Matter for metadata. - Templating: Uses the Liquid templating engine for layouts and partials.
- Styling: Modular SCSS located in
_sass/, compiled into a single CSS file. - Deployment: Automated via GitHub Actions (
.github/workflows/github-pages.yml).
_posts/: Blog entries._projects/: Showcases for individual projects._layouts/: HTML templates (Base, Home, Post, Project)._includes/: Reusable components like navigation and headers.assets/: Static files (images, custom JS, compiled CSS).
One of the "cool" highlights of this portfolio is a vanilla JavaScript remake of Flappy Bird, found in _projects/flappy-bird.md.
- Tech: HTML5 Canvas API + Vanilla JS.
- Logic: Custom implementation of gravity, collision detection (pipes and ground), and frame-based sprite animation.
- Performance: Optimized with a game loop using
setInterval(orrequestAnimationFrame). - Assets: Custom sprites and sound effects located in
assets/audio/andassets/images/.
This project uses mise for managing its Ruby development environment.
- Install Ruby 4.0.1:
mise install ruby@4.0.1
- Activate & Use:
mise use ruby@4.0.1
- Install Bundler:
gem install bundler
- Install Dependencies:
bundle install
- Run Jekyll:
The site will be available at
bundle exec jekyll serve --livereloadhttp://localhost:4000.
The site is automatically built and deployed to GitHub Pages on every push to the master branch.
- Workflow:
.github/workflows/github-pages.yml - Target:
https://www.noakim.io
To update dependencies to their latest compatible versions for Ruby 4.0.1:
bundle update --bundler
bundle update