Personal portfolio and academic website for Kamsi Ozorji
This is a personal portfolio website showcasing my academic work, projects, publications, talks, teaching experience, and blog. Built with Jekyll and hosted on GitHub Pages.
Website: https://anothergrind.github.io
About Me: CS Student at University of Texas at Dallas | Incoming SWE Intern @ Atlassian
- Blog: Thoughts and reflections on computer science and tech
- Projects: Showcase of personal and academic projects
- CV: Interactive CV and academic profile
- Contact: Ways to reach out and connect
Required:
- Ruby 3.0 or higher
- Bundler
- Node.js
- Git
Optional: Docker and Docker Compose (for containerized development)
On Linux (Ubuntu/Debian):
sudo apt update && sudo apt upgrade -y
sudo apt install build-essential gcc make ruby-dev ruby-bundler nodejsOn macOS:
brew install ruby node
gem install bundlerOn Windows:
- Install Ruby+Devkit (includes bundler)
- Install Node.js
- Install Git for Windows
- Clone the repository:
git clone https://github.com/anothergrind/anothergrind.github.io.git
cd anothergrind.github.io- Install Ruby dependencies:
bundle installIf you encounter permission errors, install gems locally:
bundle config set --local path 'vendor/bundle'
bundle install- Start the development server:
bundle exec jekyll serve -l -H localhostThe site will be available at http://localhost:4000 and will automatically rebuild on file changes.
Requires Docker and Docker Compose to be installed.
docker compose upThe site will be available at http://localhost:4000.
If using Visual Studio Code:
- Install the Dev Containers extension
- Press
F1and run Dev Containers: Reopen in Container - VS Code will restart in the container and automatically build the site
- Access it at
http://localhost:4000
├── _data/ # Site configuration data (authors, navigation)
├── _drafts/ # Unpublished blog posts
├── _includes/ # Reusable HTML components
├── _layouts/ # Page templates
├── _pages/ # Static pages (About, CV, Contact, etc.)
├── _portfolio/ # Portfolio project entries
├── _posts/ # Blog posts
├── _publications/ # Academic publications
├── _sass/ # Stylesheets
├── _talks/ # Talks and presentations
├── _teaching/ # Teaching experience entries
├── assets/ # Images, CSS, JS
├── files/ # Downloadable files (PDFs, etc.)
├── images/ # Site images
├── markdown_generator/ # Python tools for bulk content generation
├── _config.yml # Jekyll configuration
└── Gemfile # Ruby dependencies
Create a new markdown file in _posts/ with the filename format: YYYY-MM-DD-title.md
---
title: "My Post Title"
date: 2026-05-04
categories: [blog]
tags: [tag1, tag2]
---
Your content here...Create entries in _publications/ following the existing format, or use the Python script in markdown_generator/ to bulk-generate from a TSV file.
Add markdown or HTML files to _portfolio/ directory with front matter metadata.
Use the Jupyter notebooks in markdown_generator/ to generate publication and talk entries in bulk from TSV files.
- Jekyll - Static site generator
- Ruby - Jekyll runtime
- Minimal Mistakes Theme - Base theme (customized)
- GitHub Pages - Hosting
- Liquid - Templating language
- YAML - Data format
- Markdown - Content format
- SCSS - Styling
- Python - Content generation tools
- Docker - Containerization
This repository uses the MIT License. See LICENSE for details.
The website theme is based on Minimal Mistakes Jekyll Theme by Michael Rose.
This site is built using the Academic Pages template, which is based on the Minimal Mistakes Jekyll Theme by Michael Rose (© 2016, released under MIT License).
