available for work
allocsys@allocsys: ~

$whoami

allocsys

$cat role.txt

Backend Developer — APIs, infra & AI-agent tooling

$ls --contact

--email --github --resume

$

// About

Backend-focused developer who builds the infrastructure layer AI agents actually run on — auth, rate limiting, multi-service integrations — rather than just wiring prompts together. Comfortable owning a project end-to-end: designing the API surface, hardening it (timing-safe auth, IP allowlisting, proxy-aware rate limiting), and documenting the reasoning so someone else can maintain it. Recent focus: Model Context Protocol (MCP) servers and agentic workflow automation (n8n + LangChain), plus root-causing bugs in real-world open-source infrastructure.

// Projects

madmcp

2026
MCP server — GitHub, Cloudflare, Notion, Mem0, Exa & Gemini-powered delegation for AI agents
  • Built and deployed a single MCP server (Node/Express) exposing tools across 8 connectors — GitHub, Cloudflare (D1/KV/R2/Workers), Notion, Mem0, generic fetch, Exa research, and Gemini — to any MCP-compatible client.
  • Built a delegation-first architecture on top: a `delegate_gemini` tool hands an entire open-ended, multi-step investigation to a second model, which runs its own tool-use loop server-side across GitHub/Cloudflare/Notion and returns one synthesized answer — instead of the primary agent chaining every tool call itself.
  • Added Redis-backed checkpointing after every step of a delegated run, so a failed or rate-limited investigation resumes from its last completed step instead of restarting (and re-paying for) the whole task.
  • Isolated the delegation boundary by design: tools that touch live external content (web research, generic fetch) are kept separate from tools that touch internal systems (GitHub, Cloudflare, Notion), so untrusted external data can't reach internal credentials.
  • Reflexive by construction, not by accident: the GitHub connector's write/PR tools default to this project's own repo, so a connected agent can read its own source, diagnose a gap, and commit the fix — the same tools it'd use on any other repo, no special-cased admin path. This README and this portfolio page were both edited this way.
  • Designed the auth layer myself: timing-safe shared-key comparison, IP allowlisting scoped to Claude's published connector range, and per-route rate limiting — applied in the correct order so a leaked key alone can't reach the server from an untrusted network.
  • Handled real deployment-platform edge cases: correct `X-Forwarded-For` trust depth per reverse-proxy hop, request body limits raised for large file pushes, and graceful per-connector token failure (one missing credential doesn't take down the whole server).
Node.js Express MCP Gemini API Delegation / orchestration Redis Auth & rate limiting

Agentic Email Triage & Ops Automation

2026
n8n workflow — LLM agent with per-sender memory, RAG, and CRM/Sheets/LINE routing
  • Designed an n8n workflow where an AI agent classifies inbound support email (category + priority), grounds factual answers in a RAG-searched knowledge base, and drafts replies only for non-urgent cases.
  • Built a deliberate safety boundary directly into the system prompt: escalation-worthy emails (angry customers, payment failures, security reports) are flagged for a human and never get an auto-generated reply — the boundary lives before generation, not as a filter after.
  • Forced structured JSON output from the agent so downstream nodes (Sheets logging, CRM ticket creation, LINE alerts) route deterministically instead of parsing free text.
  • Documented and tested against 6 representative scenarios, weighting test coverage toward the costliest failure mode (an urgent email misclassified as routine).
n8n LangChain RAG / Qdrant Prompt design Workflow automation

cf-manager

2026
Bash + Cloudflare API v4 — mobile-first admin panel for Workers, KV, D1, R2 & Hyperdrive, entirely inside Termux
  • Built a single self-contained bash script that gives Cloudflare a full menu-driven admin panel — Workers deploy/rollback, KV/D1/R2/Hyperdrive management — usable entirely from a phone terminal, no dashboard tab or laptop required.
  • Implemented OAuth2 + PKCE login (the same flow wrangler login uses) with multi-account storage and switching, so no API tokens need to be manually pasted or rotated by hand.
  • Added one-tap rollback by backing up every deploy locally before it goes out, plus a GitHub sync step that pushes a worker's source straight to a linked repo branch on deploy — deploy and version control in one action.
  • Worked around workerd having no native Android build by driving wrangler tail inside an auto-installed proot-distro Ubuntu container, so real-time log tailing still works from Termux.
Bash Cloudflare API v4 OAuth2 + PKCE Termux CLI / TUI design

domap

2026
Node.js + Playwright — headless-Chromium DOM mapper and action-replay tool for Termux
  • Built a tool that walks a live page's DOM after JS execution into a structured tree (bounding boxes, ARIA roles, stable-ish CSS selectors) and flags interactive elements for later reuse.
  • Captured full network traffic (requests, responses, failures, timing) alongside each DOM snapshot and rendered everything into a single tabbed HTML report (tree / interactive elements / network / actions).
  • Solved a real platform blocker: playwright-core refuses to load at all on Android by checking process.platform — added a narrowly-scoped platform spoof around just the require() call, safe because the tool never launches Android-specific binaries and instead always attaches to a remote Browserless.io session.
  • Supports replaying recorded actions (clicks, uploads, text input) against a page in a fresh session, including correct file-chooser interception for upload buttons that only open a native OS dialog on click.
Node.js Playwright Browserless.io DOM analysis

// Open Source Contributions

cloudflare/workers-sdk

4 PRs · 1 merged, 2 closed, 1 open
Windows path-encoding crash, deploy-time validation bug, and local Images binding parity
  • Root-caused a Windows-only startup crash on non-ASCII workspace paths to an HTTP header encoding violation (headers are Latin-1-only), then fixed 5 coordinated call sites across module-fallback and worker-socket handling. Verified with a Windows CI run against a real 開発-path repro. (PR #14713 · merged)
  • Fixed a false "infinite redirect loop" deploy warning in Wrangler that ignored the assets.html_handling config, without weakening real infinite-loop detection. (PR #14709 · closed, not merged)
  • Fixed the local Miniflare Images binding to respect fit/gravity/background transform options, matching production behavior. Original PR closed after an accidental fork deletion mid-review; restored and continued in PR #14810 (open, in review). (PR #14714 · closed)
TypeScript Cloudflare Workers Root-cause debugging Cross-platform CI

transact-rs/sqlx

PR #4351 · open
Rewrite ? placeholders to Postgres-native $N syntax in the Any driver
  • Found that SQLx's database-agnostic Any driver always emitted ?-style bound-parameter placeholders — invalid syntax against a real Postgres connection, breaking any parameterized query (especially LIMIT/OFFSET) run through Any against Postgres.
  • Implemented a SQL-aware placeholder rewriter that renumbers placeholders to $1, $2, … immediately before dispatch, while correctly skipping string literals, quoted identifiers, dollar-quoted blocks, and comments so it doesn't rewrite text that only looks like a placeholder.
Rust SQL Database drivers

anthropics/skills

4 PRs · open
Parser correctness, a safety-check gap, and dependency/compatibility fixes across the pdf, xlsx, docx & skill-creator skills
  • Fixed a PDF form-field parser that assumed every choice-field /Opt entry was an [export_value, display_text] pair per spec — a bare single-character string (e.g. "Red") got silently split into value="R", text="e", or crashed outright. (PR #1474)
  • Fixed a case-sensitivity gap in the xlsx skill's external-link safety check: the regex meant to catch cached external links before recalculation missed case-mismatched formula references entirely, since it wasn't compiled with IGNORECASE. (PR #1471)
  • Fixed a Python 3.9 import crash in the docx skill (an eager PEP 604 union annotation evaluated at import time) and documented the actual Python 3.10+ / defusedxml requirement instead of leaving it undeclared. (PR #1473)
  • Declared a missing PyYAML dependency for the skill-creator validator script, which failed with ModuleNotFoundError on a clean environment. (PR #1472)
Python Spec-compliant parsing Dependency management Regression tests

grafana/alloy

PR #6750 · open
Stop a legacy Promtail positions file read-error from silently re-ingesting an entire log stream
  • Root-caused a silent-failure bug in loki.source.file / loki.source.journal: when a legacy Promtail positions file existed but couldn't be read (e.g. a permissions error), the reader returned nil — indistinguishable from "file doesn't exist" — so the component silently re-tailed and re-ingested every log from the beginning instead of failing loudly.
  • Changed the reader to return (*LegacyFile, error) so a genuine I/O error now propagates up as a loud failure at component construction, while still correctly treating a missing file as non-fatal and malformed YAML as non-fatal.
Go Observability pipelines Error handling

release-plz/release-plz

PR #2954 · open
Skip a slower, occasionally-failing cargo metadata call when a faster path is already safe
  • Found that the package-file comparison logic only took the fast, direct disk-listing path when two separate conditions both held, so registry-extracted packages unnecessarily fell back to a slower cargo package --list call.
  • Relaxed the condition to trigger the fast path whenever a Cargo.toml.orig / .orig.orig marker is present, while still correctly excluding .git, .cargo-ok, and Cargo.lock from the comparison.
Rust Cargo internals Release tooling

modelcontextprotocol/typescript-sdk

PR #2504 · open
Fix falsy-zero requestId bugs in debounce guard and cancellation handling
  • Root-caused two separate falsy-zero bugs where request id 0 was treated as absent because JS treats 0 as falsy.
  • Fixed the notification debounce guard so a notification tied to request 0 is never wrongly coalesced with unrelated notifications.
  • Fixed notifications/cancelled handling so a cancellation for request 0 no longer gets silently dropped, ensuring the correct abort controller fires.
  • Added regression tests covering both cases and referenced both upstream issues (#2117, #2283) in a single PR.
TypeScript MCP Vitest

drizzle-team/drizzle-orm

3 PRs · closed, not merged
Connection-pool leak, type-inference bug, and multi-package schema validation gap

Three closed-not-merged PRs: a node-postgres connection-pool leak on rejected transactions (#6032, equivalent fix later landed from another contributor), a refine() type-inference bug traced to a missing generic default (#6031), and missing schema validation for 6 Gel-only column types across four schema-integration packages (#6033).

TypeScript Type-level debugging PostgreSQL

urllib3/urllib3

PR #5121 · closed (superseded)
Replace deprecated pyOpenSSL X.509 API in the TLS backend

Replaced a deprecated OpenSSL.crypto.X509.get_subject() call in the pyOpenSSL TLS backend with cryptography's X.509 API, ahead of its removal; closed in favor of a maintainer's concurrent fix reaching the same solution independently. (PR #5121)

Python TLS / OpenSSL

// Skills

Languages

JavaScript / TypeScript Node.js Python SQL

Backend & APIs

Express REST API design OAuth2 Rate limiting IP allowlisting Webhooks

AI / Agent Tooling

Model Context Protocol (MCP) LangChain RAG / Vector DBs (Qdrant) n8n Prompt design

Infrastructure & Tools

Git Cloudflare (D1, KV, R2, Workers) Render / Vercel CI (GitHub Actions)

// Overall Activity

GitHub activity metrics

Aggregate stats across public and private repositories.