HK Résumé

DevOps engineer in Toronto

Harsh Kapoor

By day I keep AWS and bare-metal infrastructure running. At home, my old gaming PC is a server with fourteen apps and a local AI, and I run it like production too.

CoolGPU running a model

One machine.

My old gaming PC, wiped and turned into a server with Proxmox. The graphics card that ran games now runs language models. You’re looking at it through a thermal camera.

16 logical cores31 GiB of memory1 GPU for local AI

Two halves, fourteen apps.

Proxmox splits the machine. A virtual machine runs every app in Docker; a container gets the GPU and runs Ollama for anything that needs a model.

  • Fuel
  • Forgejo
  • Grafana
  • InfluxDB
  • Uptime Kuma
  • n8n
  • Open WebUI
  • AdGuard Home
  • Jellyfin
  • Syncthing
  • ntfy
  • Caddy
  • Homepage
  • Dockge

Run like production.

Changes only through Git
Self-hosted Forgejo, protected main, pull requests, mirrored to GitHub.
HTTPS on every app
Caddy with a Let’s Encrypt wildcard via Cloudflare DNS.
Private by default
Nothing is exposed; I reach it over Tailscale.
Backups I’ve restored
Nightly encrypted restic to Backblaze B2, restore tested.
Watched
Grafana with GPU telemetry, Uptime Kuma, alerts to my phone.
Infrastructure as code
Terraform creates machines on Proxmox from a file.

Things I’ve built

Runs on the homelab

Fuel

A calorie tracker I built for myself, with the AI running on my own GPU.

  • Type “5 egg whites and 40 g oats” or snap a photo; a local model works out what and how much, and USDA data supplies the nutrition.
  • Live barcode scanning in iPhone Safari through a WebAssembly reader.
  • Targets that adapt: it estimates real energy burn from logged intake and the weight trend.

FastAPI, SQLite, JavaScript, Ollama, Docker. 31 automated tests.

Fuel's Today screen: 935 kcal left, macro bars, and logged breakfast and lunch

Observability

Watching the homelab

Dashboards for the Proxmox host, every VM and container, and the GPU, so I see problems before they become outages.

  • GPU temperature, power and memory collected with Telegraf into InfluxDB.
  • Proxmox metrics for each VM and container: CPU, memory, disk and network.
  • Uptime Kuma checks every app, and alerts reach my phone through ntfy.

Grafana, InfluxDB, Telegraf, Uptime Kuma, ntfy.

My Grafana dashboard: GPU temperature gauge at 25 °C and a chart of the docker VM's memory use between 84 and 92 percent

Network automation

NetDevOps Lab

A campus network defined entirely as code, built while studying for the CCNA.

  • Two redundant core switches with OSPF and VRRP, VLANs for users and servers, on Arista cEOS in Containerlab.
  • One inventory file is the source of truth: Jinja2 renders configs, NAPALM deploys them, pytest proves it works.
  • Drift detection, plus a local LLM that answers questions about the live network.

Python, Nornir, Jinja2, NAPALM, pytest, Containerlab, GitHub Actions.

See the code on GitHub

Two core switches linked by OSPF, each connected to two access switches core1 core2 acc1 acc2 OSPF VLAN 10 users, VLAN 20 servers

Local AI

AI Car Dealer

Reads a used-car listing and tells you whether it’s a deal, all offline.

  • Scores the listing, flags scam signs and missing details, and drafts the first message to the seller.
  • Typed output from a local model with Instructor and Pydantic, not loose text.
  • Checks the VIN’s checksum offline to catch typos and fakes.

Python, Ollama with Gemma 3, Instructor, Pydantic, Crawl4AI, PostgreSQL, Docker Compose.

See the code on GitHub

Terminal output scoring a car listing and flagging an as-is title and an invalid VIN

Research, 2023 to 2024

Observability for a 5G core

A cloud-native 5G core on Kubernetes, instrumented so you can see what it’s doing.

  • Free5GC deployed on Kubernetes as a testbed.
  • Prometheus and Grafana for metrics, with Python and shell automation for setup and data collection.
  • Published as “Performance Monitoring of Cloud-Native 5G Core Network” (IEEE conference proceedings, 2025), with G. H. S. de Carvalho.

Kubernetes, Free5GC, Prometheus, Grafana, Python, Bash.

Read the paper (PDF)See the code

Architecture of the Free5GC testbed on Kubernetes with Prometheus and Grafana

Also

About me

I’m a DevOps engineer at Concentrix in Toronto: AWS and bare-metal infrastructure, CI/CD, infrastructure as code, and being on call when something breaks at 3 a.m.

Before that I spent two and a half years at Ontario’s Ministry of Transportation doing the same kind of work for provincial systems. The homelab is where I try things on my own terms, from GPU monitoring to running language models locally. I studied Computer Science at Brock University, and I’m working toward Kubernetes (CKAD) and the CCNA.

Experience

  1. Oct 2024 to now

    DevOps Engineer, Concentrix (via Wintab Tech Solutions)

    • Keep highly available AWS environments and bare-metal servers running for a micro-service architecture, on a 24/7 on-call rotation.
    • Automate with Python against AWS APIs, and Bash for Linux maintenance and OpenStack deployments.
    • Run CI/CD with Jenkins and GitHub, with Terraform and Ansible for infrastructure as code.
    • Set up observability with OpenTelemetry, Grafana, Splunk and PagerDuty to speed up incident response.
  2. Mar 2022 to Sep 2024

    DevOps Analyst and Software Engineer, Ontario Ministry of Transportation

    • Orchestrated AWS micro-services and OpenStack deployments on bare metal for systems handling large provincial datasets.
    • Wrote Python automation and telemetry tracing, and Bash for Docker provisioning and log parsing.
    • Maintained CI/CD with Jenkins, Terraform and Ansible; triaged defects and validated releases against 24/7 health goals.
  3. 2020 to 2024

    Honours BSc, Computer Science, Brock University

    Research on a 5G core testbed, data structures, databases, machine learning and AI.

What I work with

Cloud and infrastructure
AWS, OpenStack, bare-metal Linux, Proxmox, Docker and Compose
Automation and IaC
Terraform, Ansible, Python, Bash
CI/CD
Jenkins, GitHub and GitHub Actions, Forgejo, SonarQube
Observability
OpenTelemetry, Grafana, Prometheus, Splunk, PagerDuty, InfluxDB
Networking
VLANs, OSPF, VRRP, Containerlab, NAPALM, Caddy, Tailscale
AI
Ollama, local LLMs, structured output with Pydantic
Certificates
DevOps Foundations, LinkedIn Learning (CompTIA-approved CEUs), 2026
Preparing for
Certified Kubernetes Application Developer (CKAD), CCNA

Let’s talk.

Want to talk DevOps, cloud or homelabs, or about a role? Send a message and I’ll get back to you.