Portfolios

Learning outcomes:

  • Explain why a portfolio helps you get and keep a job in IT, networking, or security
  • Choose what to include in a portfolio, and what to leave out
  • Write up a project so someone else can see what you did and why it matters
  • Set up a GitHub profile and a GitHub Pages site that look professional

How to Build a Tech Portfolio

  • What is a portfolio?
    • A collection of your work that shows what you can do, not just what you say you can do
    • A resume says "I know Linux." A portfolio shows the server you set up, the script you wrote, and the documentation you made for it.
    • It can be a website, a GitHub profile, a PDF, a blog, videos, or a mix
  • Why have one?
    • Hiring managers get hundreds of applications. A link to real work helps you stand out, especially for your first IT job.
    • It gives you stories for interviews. "Tell me about a time you solved a hard problem" is easy when it's written down.
    • It's useful after you're hired too, for reviews, raises, and promotions. Keep adding to it, along with your accomplishments log.
    • It shows how you communicate. In IT, being able to explain what you did is as important as doing it.
  • What to include for IT, networking, and security jobs
    • Server setups and how-to guides, such as your server setup documentation from this class
    • Scripts and automation, such as Bash scripts, Ansible playbooks, or configuration files
    • Network diagrams, with a short explanation of how the network works and why it's built that way
    • A home lab: what you built, what you run on it, and what you learned
    • Troubleshooting stories: what broke, how you figured it out, and how you fixed it
    • Security work, such as CTF writeups, hardening checklists, or a write-up of a practice lab
    • Certifications and courses, with what you actually did to earn them
    • Your resume, and a way to contact you
  • How to write up a project
    • The problem: what needed to be done, and why
    • The setup: the systems, tools, and versions you used
    • The steps: what you did, in order, with screenshots or diagrams
    • What went wrong: the errors you hit, and how you got past them. This is often the most impressive part.
    • The result: what works now
    • What you learned: and what you'd do differently next time
  • What NOT to include
    • Passwords, private keys, API keys, or tokens, even old ones. Check your files and your GitHub history before you share.
    • Real IP addresses, hostnames, or network details from a job or a school network
    • Anything from an employer or client that isn't yours to share
    • Other people's personal information, such as names in screenshots
    • Your own private details you don't want public, such as your home address or phone number
  • Choosing a format
    • GitHub profile: free, expected for many tech jobs, and great for scripts and configuration files
    • GitHub Pages website: free hosting for a simple website, built from a GitHub repository
    • Blog: good for write-ups, troubleshooting stories, and CTF solutions
    • PDF or document: easy to attach to an application, and easy to print for an interview
    • Videos: good for showing a lab or a demo, but always include a written summary too
    • Pick the format that fits the jobs you want. Many people use a GitHub profile plus a simple website that links everything together.
  • Tips that make a portfolio better
    • Quality over quantity. Three well-documented projects are better than twenty folders with no explanation.
    • Put your best work first
    • Keep it up to date, and remove projects that no longer show your best work
    • Make it accessible: add alt text to images, use headings, and keep text readable
    • Link to it from your resume, your LinkedIn, and your email signature
    • Ask someone to look at it. If they can't tell what a project does in 30 seconds, rewrite the summary.

Setting Up a GitHub Pages Site

GitHub Pages gives you a free website at username.github.io, built from a GitHub repository. These steps follow GitHub's own quickstart, linked under Suggested Resources.

  1. Sign in to GitHub. If you don't have an account, make one with a professional username, since it'll be part of your website address.
  2. In the upper-right corner, select the + menu, then New repository.
  3. Name the repository username.github.io, replacing username with your GitHub username.
  4. Make it Public, turn on Add README, and select Create repository.
  5. Open the repository's Settings, then Pages in the sidebar.
  6. Under "Build and deployment", set the Source to Deploy from a branch, and pick your main branch.
  7. Edit README.md to add your content. This becomes your home page.
  8. To change the title and theme, create or edit a file called _config.yml, and add lines such as:
    theme: jekyll-theme-minimal
    title: Your Name
    description: Linux administration, networking, and security projects
  9. Visit username.github.io. Changes can take up to 10 minutes to show up.

Making Your GitHub Profile Look Professional

  • Fill in your profile
    • Add a clear photo, or a simple avatar if you'd rather not show your face
    • Use your real name, or the name you use professionally
    • Write a one-line bio, such as "Linux administration student interested in networking and security"
    • Add links to your website and LinkedIn. Location and pronouns are optional.
  • Add a profile README
    • Make a public repository with the same name as your username, with a README.md file. GitHub shows it at the top of your profile.
    • Keep it short: who you are, what you're working on, your skills, and how to contact you
    • Use headings and short lists so it's easy to skim
    • Badges from shields.io can show your skills or certifications, but don't overdo it
  • Pin your best repositories
    • You can pin up to 6 repositories to the top of your profile. Pin your best, most complete work.
  • Make each repository easy to understand
    • Give every repository a description and a README that explains what it is, how to use it, and what you learned
    • Use clear names, such as server-hardening-scripts, not lab3final2
    • Add topics, such as linux, ansible, or networking, so people can find your work
  • Keep it active
    • Your contribution graph shows when you've been working. Small, regular updates look better than one big upload.

Sample Portfolios

These are real portfolios from people in tech. Look at how each one shows the work, not just job titles. Notice the different formats, and think about which would fit the jobs you want.

Networking

IT, Systems, and Linux Administration

  • Jeff Geerling's blog and GitHub: home lab, Raspberry Pi, and Ansible automation. The GitHub has many Ansible roles with clear READMEs, a good model for this class.
  • Techno Tim: home lab and self-hosting. Every video has a written guide, so the site works as documentation.
  • Brendan Gregg's homepage: Linux performance tools, talks, books, and diagrams, all linked from one page. A good model for a portfolio hub.
  • Jan Schaumann's netmeister.org and GitHub: infrastructure security and system administration. A simple, plain site that links to a resume, a blog, and free course videos on system administration.
  • Alice Goldfuss' blog: site reliability and operations, with talks, publications, and yearly reviews. The "Hire Alice Goldfuss" post is a great template for presenting yourself to employers.
  • Kelsey Hightower's GitHub: infrastructure and Kubernetes, including Kubernetes The Hard Way, a well-known step-by-step guide. Shows how a detailed how-to can become a portfolio piece.
  • Charity Majors' charity.wtf: writing on operations, observability, and running systems in production, from a co-author of O'Reilly books on database reliability and observability.

Security

  • Graham Helton: red teaming. The site lists a job history from grocery store bagger and IT intern to red team engineer, plus open source tools and talks. A great example of showing a career path.
  • 0xdf hacks stuff: detailed CTF and Hack The Box writeups, hosted for free on GitLab Pages, which works like GitHub Pages. Shows how writeups can be a portfolio.
  • IppSec: a searchable index of security walkthrough videos. Shows how to make a lot of video content easy to find.
  • John Hammond's GitHub: security tools, scripts, and CTF material.
  • Troy Hunt: data breaches and web security, from the creator of Have I Been Pwned. A blog plus a well-known project.
  • Lesley Carhart's blog: incident response for industrial control systems, with career advice for people starting out in security.
  • Tanya Janca's SheHacksPurple: application security books, training, a podcast, and talks, all from one site.
  • Alethe Denis: social engineering and physical security testing. The site covers career, talks, writing, and resources.
  • Mishaal Khan: open source intelligence (OSINT), privacy, and security leadership, with speaking and writing.
  • Chloé Messdaghi: cybersecurity and AI governance advising, with work experience, talks, and press in one place.
  • Keatron Evans: two decades of cybersecurity and AI work, with areas of expertise, publications, and speaking.
  • Maddie Stone: security research, with speaking engagements, workshops, and tutorials.
  • Shannon Morse's YouTube channel: security and privacy explained in videos for everyday people. Another example of a video-first portfolio.

Programming

  • Julia Evans and Wizard Zines: Linux, networking, and debugging explained with comics and blog posts. Shows that a portfolio doesn't have to look like everyone else's.
  • Jessie Frazelle's blog and GitHub: systems, containers, and kernels, with published articles and open source projects.

Suggested Resources:

Would you like to see some more classes? Click here