Your Portfolio Site

I built my first portfolio site before I had anything real to put in it. That turned out to be the right call — having the URL meant I had a reason to finish things, and finishing things is what separates engineers with a portfolio from engineers with a list of half-built projects.

Every capstone in this curriculum produces a GitHub repository. This lesson gets the site live so those projects have somewhere to land. It is a static HTML page — no framework, no build step, no deployment pipeline. One JSON config block is the only thing you edit. The goal is a real, public URL in under ten minutes.

Fork the Starter Repo

Go to github.com/adutchengineer/portfolio-starter and click Fork in the top right. This creates a copy under your GitHub account — you own it, you can push to it, and it will be the repo you link from your portfolio for the rest of this curriculum.

Clone your fork locally:

git clone https://github.com/<your-username>/portfolio-starter.git
cd portfolio-starter

Replace <your-username> with your GitHub username.

Customize Your Site

Open index.html. Near the top there is a <script id="config"> block — this is the only part you touch:

{
  "name": "Your Name",
  "title": "Software Engineer",
  "bio": "One or two sentences about what you are building and where you are headed.",
  "github": "https://github.com/your-username",
  "linkedin": "https://linkedin.com/in/your-profile",
  "projects": []
}

Edit name, title, bio, and your social links. Leave projects empty — every capstone you complete will earn an entry here, and by the end of this curriculum that array will be the evidence that you can build real things.

Run It Locally

Plain HTML previews with any static file server. Python ships one:

python3 -m http.server 3000

Open http://localhost:3000. You should see your name, bio, and an empty projects section. Ctrl+C stops the server.

Deploy to GitHub Pages

Commit and push:

git add index.html
git commit -m "add my info"
git push origin main

Then turn on GitHub Pages: repository → SettingsPages → Source → Deploy from a branchmain / / (root)Save.

Give it about 60 seconds. Your site will be live at:

https://<your-username>.github.io/portfolio-starter/

Every push to main redeploys automatically. You do not need to touch the settings again.

Add Projects as You Go

After each capstone, add an entry to the projects array in index.html:

{
  "projects": [
    {
      "title": "Plugin Export System",
      "description": "Type-safe Python export tool with a registry-based format selector.",
      "repo": "https://github.com/your-username/capstone-plugin-export-system",
      "tags": ["python", "design-patterns", "refactoring"]
    }
  ]
}

Commit and push. The site updates within a minute. Do this after every capstone — a portfolio that grows as you build is more convincing than anything you could write in a cover letter.

The next module starts with a bug that trips engineers at every experience level, including ones who have been writing Python for years. You will not just fix it — you will understand exactly why it happens and what it tells you about how Python actually works.