Founder, Microclaw LLC  ·  AI Engineering  ·  Data Science  ·  ML Engineering

Mike
Ichikawa

AI Engineer · ML Engineer · Data Scientist

I build AI agents, and the multi-agent systems that coordinate them. Microclaw is a production AI agent for Microsoft 365, live on the Microsoft Commercial Marketplace: one agent working across twelve services through 85 function-calling tools. The multi-agent workflow engine is its complement, modular AI specialists composed into dynamic, validated workflows, built from scratch with measured results. One is a dedicated agent I shipped; the other is the orchestration layer for many. Before this, three years of physical-design engineering at Intel and eight years teaching undergraduate mathematics. BS Mechanical Engineering · MS Mathematics.

View Projects Resume GitHub projects.ichikawa@gmail.com

Background

From Berkeley
to AI agents.

BS Mechanical Engineering at UC Berkeley, then three years at Intel in microprocessor physical design, building automated validation systems that processed millions of design verification points and flagged yield issues before tape-out.

MS Mathematics at City College of New York, then eight years teaching undergraduate mathematics at Santa Rosa Junior College: algebra through calculus III, linear algebra, differential equations, statistics. Curriculum, assessments, and tracking which teaching approaches actually moved student outcomes.

Most recently, eighteen months self-directed through the data and ML stack, moving fast across forecasting, Bayesian experimentation, streaming, cloud pipelines, and ML serving. A body of shipped projects, breadth on purpose. Then I went deep on two agent systems, the work I want to be judged on.

Microclaw is a production AI agent for Microsoft 365, live on the Microsoft Commercial Marketplace, one agent I designed, built, and shipped solo. The multi-agent workflow engine is its complement: modular specialists composed into dynamic, validated workflows, built from scratch with measured results. One dedicated agent, one orchestration layer for many. Both are below.

Intel · Physical Design

3

Years engineering

Microprocessor physical design · Python and Perl automation · statistical validation at manufacturing scale.

Santa Rosa JC · Mathematics

8

Years teaching

Algebra through calculus III · linear algebra · differential equations · statistics. MS Mathematics.

Microclaw LLC · 2026 – present

NOW

Founder & Engineer

Solo build, end-to-end. Product, engineering, legal entity, brand, Microsoft Marketplace onboarding, go-to-market.

Featured · Solo build · Live on Microsoft AppSource

Microclaw

Live on Microsoft AppSource

A retrieval-augmented agent that lives inside Microsoft Teams. Operates across Microsoft 365 (email, calendar, tasks, files, notes, channels) through a single conversation. The headline isn't the commerce; it's the agent. KNN tool retrieval over 1,020 training examples, RAG-pattern semantic memory with cosine similarity, smart model routing, in-house eval framework. Each piece below.

Tool selection

KNN retrieval over 1,020 examples

k=7, 0.80 confidence threshold, cosine-similarity fallback against tool descriptions (using text-embedding-3-small). Validated against an embedding-only baseline: 95.0% recall vs 92.7%, 6.4 tools selected per request vs 18, ~33% input-token reduction.

Semantic memory

Per-user persistent memory, RAG-style retrieval

Cosine similarity over user-scoped memory entries. selectMemoriesForMessage(message, entries, topN) returns top-N relevant memories per turn. Conversation-history compression preserves entity references through structured tool-call summaries.

Smart model router

GPT-4o-mini default, escalation to 4o

Defaults to mini for short factual lookups; escalates to 4o on complexity keywords or mid-conversation tool-call escalation. 17× cheaper for simple queries than always-on 4o. Cost and latency are explicit design variables.

Eval framework

107 tests with expected-facts scoring

In-house eval suite under src/eval/: expected-facts grading, accuracy and quality dimensions, A/B comparison against a baseline bot. Each rev measured before ship; iterated round over round to close the quality gap before submission.

Natural-language automations

Plain-English IFTTT, parsed to structured rules

Users describe rules in English; the agent parses intent into structured rules in Postgres. Rules fire in real time via Microsoft Graph change-notification webhooks. Pause, edit, or delete from a settings page.

Multi-tenant SaaS

Delegated Entra auth, per-tenant database isolation

Microsoft Entra delegated authentication, every row tagged with tenantId. Two-layer permission system (Microsoft org-level plus per-user app-level toggles). Standard plus Self-Hosted offerings on the Marketplace; Fulfillment API v2 and Metering Service drive bracket pricing.

Stack

TypeScript Node.js Azure OpenAI · GPT-4o · GPT-4o-mini text-embedding-3-small Microsoft Graph (85 tools / 12 services) Teams Bot Framework SDK MSAL Azure Postgres node-postgres Bicep IaC Docker GitHub Actions → GHCR KNN retrieval cosine similarity cron-parser Vitest · 374 tests

Built solo end-to-end: product, engineering, Oregon LLC, EIN, USPTO trademark, Microsoft Partner Center onboarding (D&B DUNS), brand identity, three product videos, and go-to-market.

Featured · Built from scratch · Interactive writeup

Multi-agent workflow engine

Live interactive writeup

Small AI agents that each do one job, with fixed input and output contracts, composed into validated control-flow graphs and run on a concurrency-safe board with human approval gates and a learning loop that sharpens each agent from a handful of examples. The architecture the field is converging on, built from scratch, with measured, re-runnable results. Not a product, and not novel. A coherent working synthesis I can take apart and defend end to end.

content · board
liveopen the engine →

Modular specialists

One job, one fixed contract

Each specialist declares its exact inputs and outputs, so any part snaps into any recipe without glue code. The same shared parts (classify, rank, verify, act) get reused across very different workflows.

Composer

Plain English in, validated graph out

Given only a description, the composer wires the graph. Scored against real, human-labeled evals it matched specialists I had hand-built, and when it cannot cover a step it flags the gap and refuses to call the workflow runnable. It does not fake capability.

Static validator

Unsound graphs rejected up front

A small type-checker for the workflow: entry and exit, reachability, loop-termination guards, dangling outputs, contract compatibility. Invalid graphs are caught before a run, not discovered halfway through one.

The board

Concurrency-safe single-writer dispatch

Work streams through the graph concurrently, each item advancing on its own, specialists cloning per item under load. Deliberately dumb, single-writer, concurrency-safe by construction.

Human gates

Nothing ships without a person

Every recipe pauses at a gate before it acts. A verify step can loop a draft back to rewrite until it clears the bar, then the work waits for human approval before anything goes out.

Learning loop · measured

50% → 100% from six examples

A deliberately weak specialist scored 50% on a held-out eval, got six curated corrections, and climbed to 100%, then was promoted to trusted. Retrieval-injected few-shot, no fine-tuning. Reproducible: python examples/learning_loop_demo.py.

Stack

Python agent orchestration contracts + recipes static graph validation few-shot retrieval LLM-as-judge per-tenant isolation built from scratch

A complement to Microclaw, not an equal to it. For agent-orchestration and forward-deployed work, building the architecture the field is converging on from scratch with measured results, this is the piece.

Portfolio

The broader body of work

Microclaw and the workflow engine above are the flagships, the two I can take apart end to end. Beneath them, a body of self-directed projects across forecasting, Bayesian experimentation, streaming, cloud pipelines, and ML engineering. Each one shipped, each a step through the stack.

01

GitHub Trend Forecaster

Collects GitHub repository star history via the API and forecasts growth using Facebook Prophet with configurable changepoint sensitivity and named presets.

Star growth is bursty. A viral tweet creates a step function Prophet's default changepoints can miss. Tuning changepoint_prior_scale per repo type produces materially better forecasts.

ProphetGitHub APIpandastime series
Updated Apr 2026
02

Multi-Armed Bandit A/B Testing

Thompson Sampling, UCB1, and Epsilon-Greedy algorithms implemented from scratch. Each maintains its own selection and update logic, no library bandits. Streamlit simulator below tunes arm reward distributions and watches the algorithms converge.

Traditional A/B testing freezes traffic during the learning period. Multi-armed bandits explore and exploit simultaneously. Thompson's Beta-distribution updates make uncertainty reduction visible round by round.

Thompson SamplingUCB1Bayesian inferenceStreamlit
Updated Apr 2026
03

LLM Data Analysis Assistant

Two-path query routing: a rule-based fast path handles correlations, group-bys, and aggregations deterministically. Queries below a confidence threshold escalate to the Anthropic API with DataFrame context injection and multi-turn conversation history.

The fast path answers most common data questions with zero API cost and sub-second latency. The LLM path gets a ContextBuilder-assembled summary of the DataFrame so it can reason about data it never directly touches.

Anthropic APIhybrid routingmulti-turnpandas
Built Aug 2025
04

Bias Detection in LLMs

Statistical audit of demographic bias in LLM responses across two prompt datasets. Generates prompts across gender, age, and race dimensions, scores for agentic, communal, competence, and warmth lexicon patterns using ANOVA and Cohen's d. Cross-model comparison surfaces which biases are model-specific vs systemic.

The trap in bias research is confusing statistical significance with practical significance. With enough samples, any difference is "significant." Cohen's d separates the signal from the noise.

ANOVACohen's dscipy.statslexicon scoringcross-model comparison
Updated Apr 2026
05

Real-Time Anomaly Detection

Streaming ensemble: Isolation Forest, LSTM autoencoder, Z-score, and a LightGBM gradient-boosted classifier voting together. Dockerized FastAPI REST API with health checks plus a streaming pipeline for continuous monitoring.

Each detector covers a different failure mode. The new LightGBM detector adds a supervised signal trained on engineered rolling-window features. Mixing supervised and unsupervised in one ensemble keeps recall high without inflating false positives.

IsolationForestLSTMLightGBMDockerFastAPIREST API
Updated Apr 2026
06

Financial NLP Parser

Parses SEC EDGAR filings to extract financial metrics (revenue, net income, EPS) and sentiment. Regex-based extraction with lexicon scoring on MD&A sections across multiple companies.

EDGAR filings are semi-structured text. The parsing challenge is extracting consistent metrics across companies that use different table formats and labeling conventions.

SEC EDGARregexsentiment lexiconNLP
Built Nov 2025
07

SQL Analytics Pipeline

Three-layer data pipeline (staging, clean, marts) with dbt-style SQL transformations, window functions, and CTEs. SQLAlchemy ORM with swappable SQLite/PostgreSQL backend.

The three-layer pattern enforces a discipline. When a mart query returns wrong results, you can trace the data backwards through each layer to find where it broke.

SQLAlchemySQLitedbt-stylewindow functions
Built Dec 2025
08

Dockerized ML API

Production ML serving: FastAPI REST endpoint, Redis caching with TTL, Pydantic v2 validation, vectorized batch inference, async job queue, Docker deployment with health checks.

Redis intercepts repeated predictions, Pydantic v2 rejects bad inputs, async endpoints use asyncio.to_thread() to keep the event loop free during CPU-bound inference, and Docker Compose wires it into a single deployable unit.

DockerFastAPIRedisPydantic v2asyncio
Updated Mar 2026
09

Cloud ETL Pipeline

AWS-native ETL: S3 data lake with Parquet/Snappy storage, Lambda validation, DynamoDB run logging, tenacity retry logic, Hive-style partitioning. In-pipeline data quality layer quarantines invalid rows and flags runs that exceed budget.

Hive-style partitioning means queries scan only the date range they need. The DQ layer runs schema, range, and null-rate checks before load, writes a quarantine sidecar, and the Lambda fails the run loud if invalid-record rate exceeds threshold.

AWS S3LambdaDynamoDBParquetdata quality
Updated Apr 2026
10

ML Experiments: C++ Extensions

C++ rolling statistics (mean, std, z-score) via Welford's single-pass algorithm, exposed to Python through pybind11 with zero-copy NumPy buffer protocol. Benchmarked against NumPy and pandas rolling on n=1M.

Welford's algorithm computes variance in a single pass without storing all values, which is critical for streaming. The pybind11 binding eliminates Python overhead per call and avoids copying NumPy arrays into a C++ container.

C++pybind11NumPyWelford's algorithm
Built Apr 2026
11

Databricks Lakehouse

Medallion lakehouse (bronze, silver, gold) on 10M NYC taxi rows with Delta Lake and row-level data quality gates between layers. Runs locally via the deltalake Python library; deployable to Databricks Community Edition.

The medallion pattern enforces data quality incrementally: bronze appends raw ingest with provenance, silver types/dedupes/validates and quarantines invalid rows, gold aggregates for specific analytical questions. Quality checks between layers are first-class.

Delta Lakemedallionpandasdata quality
Built Apr 2026
12

GCP RAG Pipeline

Production-shape RAG on Google Cloud. SEC EDGAR filings as the corpus, Vertex AI Gemini for generation, BigQuery's native VECTOR_SEARCH() for retrieval. FAISS and pgvector as comparison backends. LangChain and LlamaIndex pipelines side-by-side over the same retriever interface.

Three retrievers and two pipelines, six combinations benchmarked on the same 30-question ground-truth eval set against Apple's 10-K. Smart Flash/Pro routing on the Gemini layer keeps cost low on simple queries (12.5x cost ratio).

BigQuery Vector SearchVertex AIGeminiRAGLangChainLlamaIndexFAISSpgvectorCloud Run
Built May 2026
13

Streaming Analytics Pipeline

A real-time crypto pipeline on Redpanda and Spark Structured Streaming. One job aggregates ticks into 5-minute tumbling-window OHLCV bars with a 30-second watermark, a second runs a per-symbol rolling z-score anomaly detector, and both write to Delta Lake. A Streamlit dashboard reads the Delta tables live.

Stream-batch unified aggregation, checkpointed exactly-once recovery proven by a kill-and-restart test, and host-side Delta reads with a synthetic fallback so the dashboard runs on a bare checkout. Runs locally via docker-compose, no cloud, no paid services.

RedpandaSpark Structured StreamingDelta LakeStreamlitwatermarkingexactly-oncedeltalake
Built Jun 2026

Stack

Tools across these projects

Click any chip to filter the project grid above by that tool. Categories below reflect what actually appears in the eleven cards, not a marketing list.

Languages · Native

C++ pybind11 NumPy

ML · Detectors

IsolationForest LSTM LightGBM Prophet Welford

Statistics · Bayesian

Thompson Sampling UCB1 Bayesian inference ANOVA Cohen's d scipy.stats

LLMs · NLP

Anthropic API hybrid routing multi-turn lexicon scoring cross-model SEC EDGAR sentiment lexicon NLP

Data Engineering

pandas Parquet Delta Lake SQLAlchemy SQLite dbt-style window functions medallion data quality

Cloud · Infra

AWS S3 Lambda DynamoDB Docker FastAPI Redis Pydantic v2 REST API asyncio

Front-end · Demos

Streamlit

Misc

GitHub API regex time series

Interactive

Live demos

Project 02 · Multi-armed bandit

Bandit algorithm simulator

Run a bandit simulation and watch the algorithm allocate pulls. Thompson Sampling uses Bayesian Beta distributions. Uncertainty about each arm's true win rate drives exploration.

Total reward

0

Regret

0

Best arm

·

Project 05 · Anomaly detection

Live anomaly detector

Streaming time series with simulated anomalies. The detector uses a rolling statistical model. Points more than 3σ from the local mean are flagged. Watch it adapt as the signal changes.

Normal Flagged σ band

Points

0

Flagged

0

Rate

0%

Stream starting…

Complete · All five repos shipped · Mar 2026

Trading system arc

Five interconnected repositories building an end-to-end paper trading system, fully shipped. Real Kraken market data flows through chart generation, dual-path signal analysis (technical indicators plus FinBERT sentiment), backtesting, and a human-oversight dashboard, with losing trades feeding back to optimize signal parameters.

T1

crypto-data-pipeline

ccxt · Kraken
PostgreSQL · pandas
multi-pair OHLCV

Shipped Mar 6

T2

trading-chart-generator

mplfinance · PIL
PNG + JSON sidecars
43/43 tests

Shipped Mar 10

T3

trading-signal-engine

EMA · RSI · MACD · BB
FinBERT sentiment
51/51 tests

Shipped Mar 16

T4

trading-backtester

pandas · NumPy
Sharpe · drawdown
72/72 tests

Shipped Mar 26

T5

trading-dashboard

Streamlit · Plotly
live signals · P&L
parameter review UI

Shipped Mar 31

The feedback loop: T4 records whether each signal configuration led to a winning or losing paper trade. T3's parameters (indicator thresholds, sentiment weights, fusion ratio) tune from those outcomes. T5's dashboard reviews signal performance and approves parameter changes. The system improves its own signal generation while a human stays in the loop as decision-maker. Entirely free to run: no paid APIs, local FinBERT, public market data.

Roadmap

Scheduled work

Upcoming

Jul 13

walk-forward-validation-framework deflated Sharpe + walk-forward validation over time-series strategies

Jul 27

recommendation-system collaborative + content-based hybrid, NDCG / MAP evaluation

Future builds

Aug 10

mlops-pipeline MLflow + DVC + model registry with retraining

Aug 24

graph-analytics NetworkX / Neo4j, community detection, PageRank, centrality

Sep 7

anomaly-detection CNN-autoencoder detector, new image modality

Technical skills

Stack at a glance

Languages

  • Python
  • SQL
  • R
  • TypeScript · Node.js
  • C++ · pybind11 · CMake

ML · Statistics

  • scikit-learn · IsolationForest
  • Prophet · XGBoost · LightGBM
  • scipy · statsmodels · ANOVA
  • Bayesian inference · Thompson Sampling
  • Cohen's d · effect size

Data Engineering

  • PostgreSQL · SQLAlchemy
  • dbt-style transforms
  • Apache Parquet · Delta Lake
  • Databricks · pandas · NumPy
  • ccxt · OHLCV pipelines

Cloud · Infrastructure

  • AWS S3 · Lambda · DynamoDB
  • Azure OpenAI · Microsoft Graph
  • MSAL · Bot Framework SDK
  • Docker · FastAPI · Redis
  • Pydantic v2 · boto3

LLM · NLP

  • Anthropic API · Claude Code
  • HuggingFace · FinBERT
  • multi-turn conversation
  • prompt engineering · hybrid routing
  • SEC EDGAR · sentiment lexicons

Visualization · Tools

  • Streamlit · Plotly
  • Matplotlib · mplfinance
  • Jupyter · nbconvert
  • Git · GitHub Actions CI
  • Docker Compose · Vitest

Contact

Let's talk.

Founder & Engineer at Microclaw LLC. Interested in conversations about AI Engineering, ML Engineering, and Data Science roles. Portland, OR. Open to remote.