← home

Projects

Open-source tools, ML/AI experiments, and things I've built to learn or solve a problem.

Noetherkin screenshot

Noetherkin

Agent-agnostic apprenticeship protocol and CLI for learning engineering inside real codebases

Noetherkin is an open-source, agent-agnostic apprenticeship protocol and CLI for learning software engineering by working inside real codebases instead of tutorials. A trusted local CLI owns every canonical record, while 21 portable Agent Skills, onboarding, task assignment, teaching, peer and team-lead review, debugging, incident response, performance and promotion review, mentor the learner through Claude Code or Codex without ever silently writing state on their behalf. Learners work either against real open-source projects pulled from an 87-project, 34-track catalog, or against first-party "forge" specifications built from an empty directory for early E0–E2 work. Progress is evidence-based rather than point-based: an E0–E5 competency ladder advances only from attributed, verified records of what was actually demonstrated, with every assistance request and review tracked alongside the task it belongs to. Released under Apache 2.0 at wire protocol 3.0 (v0.2.0), with generic, Codex, and Claude Code capability adapters.

TypeScriptNode.jsCLIAgent SkillsClaude CodeCodex2026Creator
Stormlog screenshot

Stormlog

GPU memory profiling for PyTorch & TensorFlow

Stormlog is an open-source GPU memory profiler for PyTorch and TensorFlow. It hooks into framework-level memory allocators, samples at configurable intervals, and renders allocation traces in a Textual-based TUI with seven interactive tabs covering allocation timeline, peak usage, tensor-level breakdown, leak detection, and JSON export. Published on PyPI with eight automated releases via GitHub Actions and over 357 commits, co-maintained with Silas Asamoah and Derrick Dwamena.

PythonPyTorchTensorFlowTextualGitHub Actions2025Co-maintainer
RegexLens screenshot

RegexLens

Interactive regex debugger with real-time visualization

RegexLens is a web-based regex debugger that visualizes pattern matching in real time. You write a regex, paste in test strings, and see matches, captures, and groups highlighted as you type. Saved patterns are backed by PostgreSQL so you can build and revisit a library of tested expressions. Built with Next.js 16, TypeScript 5.7 in strict mode, and React 19, with Vitest for unit tests and Playwright for end-to-end coverage.

Next.jsTypeScriptReactPostgreSQLVitestPlaywright2025Creator
Veridex screenshot

Veridex

RAG evaluation framework using RAGAS and FAISS

Veridex is a CLI-driven RAG evaluation framework that provides a repeatable workflow for benchmarking retrieval pipelines. It ingests documents into chunks, builds FAISS or ChromaDB vector stores, runs retrieval queries against ground-truth datasets, and generates evaluation metrics using RAGAS including faithfulness, answer relevancy, and context precision. Built to make RAG quality measurement systematic rather than ad hoc.

PythonRAGASFAISSChromaDBClick2025Creator
Nkwapa screenshot

Nkwapa

Offline-first EMR for hypertension and diabetes programs

Nkwapa is a contemporary EMR built for clinics managing hypertension and diabetes in field conditions. It covers structured encounters, prescriptions, role-based access, and sync that keeps working when the network does not. Built for the Akomapa Health Foundation, the architecture favors clinic-scoped records and an immutable audit trail so clinicians stay focused on outcomes, not infrastructure.

ReactNode.jsPostgreSQL2024CTO & Co-founder
AccessLens screenshot

AccessLens

On-device scene narrator for blind and low-vision users

AccessLens is a privacy-first assistive tool that narrates what your MacBook camera sees in real time — entirely on Apple Silicon, with zero cloud calls and no data leaving the device. Built for the webAI YOLO26 MLX Build Challenge in Austin, it captures webcam frames at 10 FPS, runs YOLO26 object detection via MLX on the GPU, maps detections into spatial zones (left/center/right, near/mid/far), and speaks context-aware descriptions through a priority-scored narration state machine that announces new objects, count changes, and scene transitions without spamming. The pipeline delivers sub-130ms detection-to-speech latency, with voice search, blind mode, proximity chimes, and on-demand full-scene summaries — proving that accessibility and on-device privacy do not have to be a tradeoff.

PythonFastAPIMLXYOLO26Next.jsTypeScriptReact2026Creator
Akomapa Academy screenshot

Akomapa Academy

Global health education and leadership for student clinicians

Akomapa Academy is the learning home of GHELP, the Akomapa Global Health Education & Leadership Program. Students practice community-rooted care under expert mentors across a ten-course arc, from orientation and ethics through student-led clinics and reflection. The platform measures growth with pre- and post-tests, hosts course forums, and issues certificates with verifiable IDs. Built for Akomapa Health Foundation, a 501(c)(3) nonprofit serving student leaders across four countries.

Next.jsTypeScriptReact2026CTO & Co-founder
Stormlog Leaks Lab screenshot

Stormlog Leaks Lab

Hands-on catalog of four PyTorch memory leak patterns on Apple Silicon

A hands-on catalog of four common PyTorch memory leaks on Apple Silicon's MPS backend, each demonstrated on a real workload (CIFAR-10 with ResNet-18) and fixed with a minimal code change. Covers forward hook activations, missing zero_grad, device tensor retention, and autocast scope issues, all profiled using Stormlog. Built to stress-test the profiler on diverse leak patterns and document how the same code can leak on MPS while staying quiet on CUDA.

PythonPyTorchStormlogMPS2026Creator
Guidr screenshot

Guidr

AI-powered graduate school discovery and application platform

Guidr helps graduate and undergraduate applicants find schools, explore programs, and streamline their application process with AI-powered recommendations. The platform combines College Scorecard and IPEDS data with intelligent web scraping to cover 2,000+ US graduate schools, 30K+ programs, and 100K+ faculty profiles. Features include ML-driven program scoring with Dream/Reach/Target/Safety tiers, transcript and resume extraction, essay feedback, and professor outreach tools.

PythonFastAPINext.jsPostgreSQLTypeScript2026Creator
TailorTex screenshot

TailorTex

Local-first, evidence-based resume tailoring tool for LaTeX resumes

TailorTex helps technical job seekers convert verified career evidence and target job descriptions into truthful, ATS-readable LaTeX resumes without forcing cloud-first workflows. Every claim is constrained to approved source material through a truth validation pipeline that blocks unsupported or fabricated bullets. Supports OpenAI, Anthropic, Ollama, LM Studio, or no LLM at all, keeping data local by default.

PythonNode.jsLaTeXLLM2026Creator
Orbit screenshot

Orbit

Local-first workspace for ML practitioners to manage relationships and learning

Orbit is an open-source, local-first workspace for ML practitioners to build stronger relationships, consistent follow-through, and deeper technical learning. It combines relationship tracking with stage progression, interaction logging with structured insights, and a paper reading pipeline with reflection-first writing prompts. Designed for long-term career compounding instead of high-volume activity tracking.

Next.jsTypeScriptPrismaPostgreSQLTailwind CSS2026Creator
Gatewise screenshot

Gatewise

Intelligent airport navigation and trip timing for travelers

Gatewise is a mobile-first travel companion that helps travelers navigate airports with confidence. It combines real-time flight data, airport layout intelligence, and personalized timing recommendations to answer the question every traveler asks: when should I leave for the airport? The system accounts for TSA wait times, terminal walking distances, and individual travel preferences to generate smart departure recommendations with Dream, Reach, Target, and Safety tiers.

TypeScriptReact NativeExpoSupabaseFastAPI2026Creator