Skip to content
TypeScriptNode.jsAI AgentsDeveloper ToolingAutomation

Building tools that make AI actually work for developers

Ming — Software developer building autonomous systems, developer tools, and AI-powered workflows.

See my work

The thesis

Everyone is about to own a software producer business. The infrastructure they will need is not another agent — it is a company.

Building software has stopped being the bottleneck. Agent harnesses like OpenClaw and Hermes solved how agents run and how they learn, and a person with a good idea can now produce working software faster than they can decide what to charge for it.

What nobody has solved is everything that turns that output into a business. Who is allowed to do what. What happened, and who authorised it. What each run cost and what it earned. Which work is queued, which is blocked, and what broke overnight. Run one agent and you can hold that in your head. Run a crew, and you need a company.

Foundry is that company operating system: identity and RBAC, an append-only audit trail, durable task dispatch, cost accounting and a BI event stream — with the general-purpose services on top (crawling, knowledge, matching, an agent runtime) that applications consume through typed contracts.

I am building it the only honest way to build it: by running my own one-person company on it. Every application below is a real product with real users' problems, and each one onboards onto the platform. If the platform cannot carry them, the thesis is wrong and I will know before anyone else does.

OpenClaw and Hermes gave agents a runtime. Foundry gives them a business to run.

Now

Building a knowledge management system to power business in the agentic era. Leading AI adoption at GBST — building protocols, tools, and workflows that make autonomous development reliable.

133k LoC

CompanyOS platform — 4 apps, 4 services, 11 packages, 28 architecture decisions

45 → 5 min

CVE triage per vulnerability, via LLM-powered scanning shipped at GBST

80%

Reduction in developer hours spent on vulnerability work

12 products

Applications and toolchain onboarding onto the platform

Skills

AI / ML

Claude CodeGPT-4oDeepSeekVercel AI SDKPaperQA2Semantic Scholar

Languages

TypeScriptPythonShellRust

Frameworks

Next.jsReactNode.jsSpring FrameworkFastAPI

Infrastructure

AWSKubernetesDockerCDPsystemd

Data

PostgreSQLSQLiteDrizzle ORMRedis

Testing

VitestPlaywrightaxe-core

The stack

Updated Jun 2026

The platform

The company operating system everything else runs on.

Foundry — CompanyOS

building

The company operating system for a one-person AI-native business

Situation

Running a crew of agents surfaced the real gap: the agents worked, the company around them did not. Nothing recorded who authorised what, what each run cost, or which work was blocked.

Decision

Built a platform, not a script. Two planes on shared services — a product plane customers touch, a company plane the founder and the agent crew touch — so every capability is built once and every crew action is dispatched, budgeted and audited.

Outcome

133k lines of TypeScript across 4 apps, 4 services and 11 packages, governed by 28 architecture decision records and a 16-check verification gate. When that gate turned out to be grading a stale build, the fix and the failure were both written down.

133k LoC · 28 ADRs · 117 tickets

TypeScriptNodeRBACAppend-only auditDurable dispatchTelemetryBI events

What runs on it

Products onboarding onto the platform, each solving a real problem first.

job-hunter

Job-hunting suite — sourcing, ranking, referral intelligence

Situation

Job boards return volume, not fit, and the highest-signal roles are hidden behind recruitment agencies.

Decision

13 sources feeding a staged funnel: eligibility filter, BM25 retrieval, LLM triage, then a judge that must quote the posting verbatim and is blocked from inventing tenure it was never given.

Outcome

Surfaces Sydney AI roles with referral routes mapped from a real LinkedIn session, and refuses to put a number on a resume that is not in the candidate's own documents.

13 sources · 12k listings · 249 tests

TypeScriptSQLiteBM25LLM-as-judgePlaywrightCDP
View on GitHub

generic-tutor

Career-driven learning engine

Situation

Skill gaps found during a job hunt are forgotten by the time there is time to study.

Decision

SM-2 spaced repetition over interview drills, wired directly to the skill gaps job-hunter and ai-feeds surface.

Outcome

Learning targets come from the market and the candidate's real gaps rather than a generic syllabus.

SM-2 · interview drills

TypeScriptSM-2LLM
View on GitHub

trader

Trading signal agent

Situation

Market opportunities need watching continuously; a person cannot.

Decision

An agent that monitors instruments and notifies on conditions worth a human decision.

Outcome

Notification on opportunity rather than continuous attention.

always-on

PythonMarket dataAgents
View on GitHub

digest-assistant

Personal automation hub

Situation

Personal signal is scattered across mail, feeds and repositories.

Decision

Six pipelines and a knowledge graph behind a single Telegram bot.

Outcome

One daily surface for everything that would otherwise need six check-ins.

6 pipelines · 1 bot

TypeScriptNexusKnowledge graphTelegram
View on GitHub

ai-feeds

AI industry intelligence

Situation

Keeping current with papers, repos and releases is a full-time job.

Decision

Aggregates signals and converts them into actionable learning artifacts and upgrade ideas for existing repos.

Outcome

Feeds the auto-research pipeline, which turns ideas into researched plans overnight.

papers · repos · releases

TypeScriptLLMRSS
View on GitHub

case-study

Case-based learning with an AI mentor

Situation

Decisions under incomplete information cannot be taught from a textbook.

Decision

Learners run a business scenario as the decision-maker while an AI mentor probes the reasoning.

Outcome

Also the platform behind university research into AI-assisted decision-making.

research platform

TypeScriptLLMNext.js
View on GitHub

What builds it

The agent toolchain the platform and its applications are built with.

dev-kit

AI-native development toolkit — methodology as code

Situation

Agent quality is bounded by the process it is given, and the process lived in one person's head.

Decision

23 skills, 6 hooks, spec-driven development and multi-agent orchestration, written entirely in markdown and bash so it is portable across harnesses.

Outcome

The same methodology drives every project in the stack.

23 skills · 6 hooks

MarkdownBashSDD

agent-workstation

Orchestration platform for AI coding agents

Situation

Multiple agents on multiple terminals need to cooperate without stepping on each other.

Decision

Session management and orchestration across concurrent agents.

Outcome

Agents on separate terminals coordinate through a shared channel.

multi-agent

TypeScriptZellij

kiro-sessiond

Session daemon for agent orchestration

Situation

Concurrent agents editing the same repository corrupt each other's work.

Decision

Agent registry, scoped message queue, file claims and an HTTP API.

Outcome

File claims make concurrent agent work safe.

registry · claims · queue

TypeScriptHTTP
View on GitHub

nexus

Knowledge engine SDK

Situation

Every application needed the same ingest-process-serve pipeline.

Decision

A library, deliberately not a platform — embedded by foundry and job-hunter, extended upstream.

Outcome

One knowledge engine behind several products.

embedded by 2 products

TypeScriptSQLiteLLM
View on GitHub

llm-router

Free-tier LLM gateway — 11 providers, one API

Situation

Provider limits, outages and quotas break anything built on a single model.

Decision

Availability-aware routing across 11 providers behind one OpenAI-compatible API, with quota management, circuit breakers and batching.

Outcome

Applications target one endpoint; the router handles provider reality.

11 providers

TypeScriptOpenAI-compatible

knowledge-hub

Knowledge graph engine with conflict detection

Situation

Issue trackers, repositories and specs disagree, and nothing notices.

Decision

Adapter-based graph that connects all three into a queryable context layer and flags contradictions.

Outcome

Conflicts surface before they reach an agent as context.

conflict detection

TypeScriptGraph
View on GitHub

More Projects

nexus

Knowledge engine SDK — ingest, process, serve with LLM pipelines

Pipeline SDK · Zod validation · Vector search · MCP server

TypeScriptZodSQLitep-queue
GitHub

ai-feeds

AI industry intelligence — 7 sources scored against your learning plan

7 sources · 332 tests · LLM scoring · Obsidian digests

TypeScriptSQLitePlaywrightClaude
GitHub

generic-tutor

AI tutor engine with SM-2 spaced repetition

SM-2 algorithm · Knowledge DAG · Agent-loadable

ShelljqMarkdown
GitHub

Education

Master of Science, Financial Engineering

The Chinese University of Hong Kong

2016

Master of Science, Computer Vision

University of Chinese Academy of Sciences

2015

Bachelor of Science, Automation

Tsinghua University

2011

Let's build something together

Open to Software Developer and AI Engineer roles. Let's talk.