Skip to content
View HarnageaGabriel's full-sized avatar

Block or report HarnageaGabriel

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
HarnageaGabriel/README.md
Gabriel Harnagea, DevOps and Platform Engineer Typing SVG

LinkedIn Email Turin, Italy Profile views


About

I'm a DevOps & Platform Engineer on enterprise projects: CI/CD, Kubernetes, Terraform, cloud cost.

I wrote application code before I ran the infrastructure that hosts it, which pays off mostly when a build breaks and someone has to know where to look.

The open-source work here comes from the same place. Something misbehaves in a real deployment, I go read the source, and the fix goes upstream rather than into a patch I keep to myself.

role:      DevOps & Platform Engineer
platform:  [Azure, Kubernetes, GitOps, Terraform, Azure DevOps, GitHub Actions]
also:      [FinOps, Agentic DevOps, .NET backend]
languages: [C#, TypeScript, Go, Rust, Python, Bash, PowerShell]
into:      [correctness bugs, observability gaps, release plumbing, cloud cost]
based_in:  Turin, Italy

Stack

Tech stack

Platform & CI/CD Azure DevOps YAML pipelines and reusable templates · GitHub Actions · Helm charts and Helmfile releases · OCI push to ACR/GHCR · ApiOps policy automation on Azure API Management · Jinja2 templating · branch policies, PR review, code review as a gate

Cloud & infrastructure Kubernetes on AKS and k3d on-prem · NGINX Ingress Controller · Terraform (azurerm, azuredevops) · VM Scale Sets as self-hosted agent pools · golden images for faster scale-out · Container Registry, Storage Accounts, Functions, Entra · reservation and cost governance

Backend & architecture REST/HTTP APIs in .NET 8/9 · Worker Services · CQRS with MediatR · Domain-Driven Design · hexagonal and N-tier architectures · API gateway with Ocelot · EF Core and Dapper · PostgreSQL, MongoDB · NUnit + Moq, self-hosted integration tests

Identity, storage & AI Keycloak with OAuth 2.0 · JWT bearer flows · SeaweedFS through the S3-compatible client · self-hosted LLM inference with Ollama · RAG pipelines with ChromaDB and embedding models · Copilot governance and AI spend controls


Upstream contributions

Pull requests to projects I run or depend on.

Project Change PR
kubernetes/kube-openapi Fix duplicate map keys when a type embeds two structs sharing a field #631
kubernetes-sigs/apiserver-network-proxy Add connection_duration_seconds histogram for post-dial connection lifespan #899
kubernetes/perf-tests Unit tests for clusterloader2/pkg/errors #4261
kubernetes/minikube VirtualBox: strip surrounding quotes before parsing hostOnlyCIDR #23480
docker/cli Normalize registry server address to lowercase for credential lookup #7184
containerd/runwasi Gate ctr image import --local by detected ctr version #1177
argoproj/argo-workflows Scope RemoveFromQueue to the calling controller #16739
dotnet/runtime CompareInfo.IsPrefix/IsSuffix with IgnoreSymbols not ignoring leading/trailing symbols #132397
dotnet/runtime Return empty string instead of throwing when getpwuid_r fails unexpectedly #132396
dtolnay/cxx Strip r# prefix from raw identifiers in generated C++ names #1749
rust-embedded/heapless Add shift_remove family to IndexMap/IndexSet #685
ansible/terraform-provider-aap Remove aap_host from state on 404 during Read #194
Azure/azure-powershell Fix Get-AzSubscription silently ignoring mismatched -TenantId under MSI auth #29994
traefik/traefik-helm-chart Restore secretResourceNames for namespaced Role #1972
nunit/nunit-console Fix --list-extensions showing the wrong target framework #1861
dotnet-outdated/dotnet-outdated Report packages whose source repo is archived or deleted #781

All pull requests


Projects

github-actions-recipes  YAML

The workflows behind my CI/CD and FinOps posts, including the caching benchmark I ran 10 times on one runner.

token-optimization  PowerShell

Cuts token usage when you work with LLM coding agents. Setup is idempotent, so re-running it is safe.


Writing

I write on LinkedIn about platform details that usually pass unchecked: how Azure DevOps resolves its three expression syntaxes, the compliance rules for self-hosted runners, what Copilot code review does and does not decide, and whether an Azure reservation discount is still applying to anything.

Read on LinkedIn


Contribution graph

Contribution snake animation

Pinned Loading

  1. github-actions-recipes github-actions-recipes Public

    Runnable GitHub Actions workflows behind my CI/CD and FinOps write-ups — one variable isolated per recipe

  2. kubectl-safe-rollout kubectl-safe-rollout Public

    kubectl plugin that explains why a rollout failed or stalled: deterministic cause classification, no LLM, never modifies the cluster

    Go 2

  3. token-optimization token-optimization Public

    Idempotent PowerShell bootstrap for AI coding-agent configuration — one command per machine or repo

    PowerShell 1