Skip to content
EA Eric Agyemang

Open to DevSecOps / Platform roles

Eric Agyemang DevSecOps & Platform Engineer

I build AI agents, automation systems, and the infrastructure that ships and runs them.

deploy · cloudflare pages

About

I ship and operate what I build

I'm a cloud security engineer at a Fortune 500 insurer, securing Azure and AWS workloads through posture and vulnerability management in Prisma Cloud and Microsoft Defender for Cloud. Before that I owned its global golden-image program for Windows Server and RHEL, moving remediation into the Packer and Jenkins build pipeline and cutting OS-level image vulnerabilities by more than 90% across 30+ environments.

Outside work I build small, tested tools in TypeScript and Python, like the secret scanner and AI gateway below, and ship them through Git-driven pipelines. I care about reproducible builds, no-secrets-in-the-repo hygiene, and shipping small, verifiable changes.

Focus
DevSecOps · Platform · Automation
Based in
United States
Currently
Open-sourcing production patterns as public showcases

Toolbox

Skills & tools I work with

Cloud & Infrastructure

  • Prisma Cloud
  • Microsoft Defender for Cloud
  • Cloudflare (Pages, Workers)
  • AWS (S3, CloudFront, Lambda)
  • Netlify
  • Docker
  • Terraform
  • Linux

CI/CD & Automation

  • GitHub Actions
  • Wrangler
  • Scheduled / cron jobs
  • Webhooks
  • Playwright automation
  • Build & release pipelines

Languages & Runtimes

  • TypeScript
  • JavaScript
  • Node.js
  • Python
  • Bash
  • PowerShell

AI, Data & APIs

  • MCP (Model Context Protocol)
  • Multi-provider LLM routing
  • PostgreSQL
  • REST & streaming APIs
  • FFmpeg pipelines

Work

Projects

Each repo is a sanitized, from-scratch showcase of a production pattern: the transferable engineering, never proprietary logic. Status is honest: a link only appears when there's something real behind it.

This Portfolio

Live

The site you're reading, and a working demo of a real deploy pipeline.

Use case

A portfolio should prove the craft, not just list it. So this site ships itself the way a production frontend ships: no manual uploads, no click-ops.

Architecture

  • Static Astro build (zero client JS by default) + Tailwind v4 design tokens.
  • GitHub Actions pipeline: install → type-check → build → deploy on every push; a unique preview URL per pull request.
  • Served from Cloudflare Pages' global edge with automatic HTTPS and cache invalidation.
  • Motion (Framer Motion) islands for scroll-linked animation, reduced-motion and no-JS safe.
Astro Tailwind TypeScript GitHub Actions Cloudflare Pages

MCP Server Template

Live

A production-ready starting point for Model Context Protocol (MCP) servers.

Use case

MCP is becoming the standard way AI clients call external tools, and every new server rewrites the same scaffolding. This is the boring-but-critical 80% done right, so the next one starts at mile 10.

Architecture

  • High-level MCP SDK with zod-validated tool schemas: one definition drives validation, typing, and tool discovery.
  • Construction is separated from transport, so the same server is tested over an in-memory transport with no mocks.
  • Errors contained per call; stdout reserved for the protocol, logs to stderr.
  • Multi-stage, non-root Docker image + CI (lint, type-check, test, build).
TypeScript MCP zod Docker node:test GitHub Actions

leakguard

Live

A zero-dependency secret scanner that stops credentials before they go public.

Use case

A leaked key in git history is irreversible: public commits are scraped within minutes and the only fix is rotation. leakguard catches secrets at commit time, when they're still cheap to fix.

Architecture

  • Three detection layers: 90 provider rules + Shannon-entropy detection for unknown secrets + sensitive-filename rules.
  • Runs as a CLI, a git pre-commit/pre-push hook, and a GitHub Action, for defense at every stage.
  • Entropy false positives tamed with guards (hashes, integrity sums, PEM/public keys, base64-decode check).
  • Ruleset built via a generate → adversarial-corpus → gap-audit loop; verified by per-rule + corpus tests (43 real secrets flag, 39 decoys stay clean). Zero runtime dependencies.
TypeScript Security DevSecOps CLI GitHub Actions

Multi-Provider AI Router

Live

A resilient gateway that routes across multiple LLM providers.

Use case

Apps that depend on a single AI provider break when it has an outage, rate-limits, or a price spike. This routes across providers so the app stays up and costs stay visible.

Architecture

  • Redundancy: provider-agnostic adapters (OpenAI / Anthropic / OpenRouter over fetch) in an ordered fallback chain, so no single provider is a point of failure.
  • Resilience: retries (backoff + jitter), per-provider circuit breaking, and per-attempt + terminal overall deadlines.
  • Idempotency: an idempotency key coalesces concurrent identical calls into one upstream request, so a retry never double-charges.
  • Observability: lifecycle events, a pull-based metrics() snapshot, and a per-call audit trail. Adversarially audited; 24-test failure-mode matrix; zero runtime deps.
TypeScript Resilience Idempotency Observability Zero-deps

Video → Social Cuts Pipeline

Planned

Turns one long recording into platform-ready social cuts, automatically.

Use case

Manually editing a long video into vertical Reels/Shorts with captions is hours of repetitive work. This automates the reframe, format, and caption burn-in.

Architecture

  • Deterministic FFmpeg graph: reframe, overlay, and burn captions; H.264 / yuv420p outputs every platform accepts.
  • Containerized so it runs identically on a laptop or in CI.
  • Config-driven cut list and branded overlay templates.
FFmpeg Node.js Docker Media
Repo coming soon

Browser Automation Framework

Planned

A reusable Playwright harness for driving real web apps headlessly.

Use case

One-off scraping and automation scripts rot fast. This is the durable backbone: typed actions, retries on flake, structured output, and evidence for every run.

Architecture

  • Typed page-object actions with retry/backoff on flake.
  • Structured JSON results plus screenshot artifacts for every run.
  • Headless or headed, and CI-friendly.
Playwright TypeScript Automation
Repo coming soon

Infrastructure

How this site ships

The portfolio is also a working example. There's no click-ops. The entire deploy is defined in version control and runs automatically on every change.

  1. 01

    Source

    Push or PR to GitHub. main is the production branch; features land through pull requests.

  2. 02

    CI: build & check

    GitHub Actions runs npm ci, astro check (type-safety), and astro build on a pinned Node version.

  3. 03

    Deploy

    Wrangler ships the static build to Cloudflare Pages: production on main, a unique preview URL on every PR.

  4. 04

    Edge delivery

    Cloudflare serves the site globally over HTTPS with automatic cache invalidation on each deploy.

Engineering principles

  • No secrets in the repo: credentials live only in GitHub Actions secrets
  • Reproducible builds: committed lockfile + Node pinned via .nvmrc
  • Type-checked at build time; a broken type fails the deploy
  • Every PR gets an isolated preview environment before merge