Skip to content
View Sohwhat6420's full-sized avatar
💭
LOCKED IN 😤
💭
LOCKED IN 😤

Block or report Sohwhat6420

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Sohwhat6420/README.md

ETHAN in my TV's clock type, filmed from my TV's own home screen: its 14 oil paintings rotate with the TV's real transitions, each painting's subject standing in front of the name, under changing weather (sun rays, moonlight and stars, drifting cloud, rain, snow, mist, and lightning with heavy rain). Widget cards on both sides show my GitHub month and contributions, the countdown to my 44-week internship from April 2027, credentials (Claude Certified Architect, ISC2 CC, five Anthropic Academy courses, BB Senior Cadet Lieutenant, the Founder's Award), competitions (Hack The Box 30th of 6,744, Cyber Conquest top 20, BrainHack CDDC finalist), my live Claude usage limits, my Claude Code activity heatmap and token total, and my projects.

Now focused on: multi-agent orchestration, applied AI, AI security, MCP agents that drive Android, Claude Code harness engineering.

My last twenty weeks of GitHub contributions filling in week by week, with 10.4 thousand contributions in the past year underneath. Odometer: 117 billion tokens on Claude Code as shown by its /stats screen, to 11 Nov 2026, over 99 active days since May 2026. /stats counts each part of a reply separately; counted once per reply across Claude, Gemini and Codex it is 67.5 billion. 8 projects shipped: my public repositories on GitHub, one small repo glyph for each.

Token tile: /stats counts each part of a reply separately; counted once per reply across Claude, Gemini and Codex it is 67.5 B.

Applied AI and agent engineering, with a security edge. Year 2, Cybersecurity and Digital Forensics, Singapore Polytechnic. Seeking a 44-week internship in applied AI and AI security, from 12 April 2027.

Download CV (PDF). Ethan Soh's full CV, 2 pages, for ATS or a closer read.

Short on time? The one-page version. Or find me on LinkedIn.

01 Now building. An agent's cursor taps a phone; an R4 delete is held at the gate. Agentroid: an MCP client calls a TypeScript MCP server, a Rust core labels each action by risk, a deny-by-default adb gate with a device allowlist passes reads and holds destructive actions for approval, then Android emulators act. Unburden Root: Claude Code sessions run as named roles through hooks, persistent memory and written rulings, then a PII guard that fails closed, then a router that sends work to model pools by cost and urgency. 02 Projects. An F1 car on a glowing racing line through an S-bend.

Agentroid: any MCP client drives Android emulators with no model API key of its own. Open-source release coming soon. Unburden Root: the multi-agent harness I build in. Private; write-up coming soon. BB Master Portal: awards, attendance and training-programme records for the Boys' Brigade 5th Singapore Company. In development. Show Me Your Agents, NUS-ISS hackathon 2026: an agentic AI answer to a real business problem. Write-up coming soon. My TV, as a banner: the banner above, my TV's home screen rebuilt as one animated SVG. Opens this repository. ST2612 EST System: an open-book exam harness with a knowledge base, adversarial audit agents and an answer pipeline. Private repo.

headless-kit: a terminal runs reddit-pull and prints one JSON line; detached-run's launcher window closes and its process keeps running with no window. Two dependency-free Node tools for agents, no browser or API key needed. MIT licence. Public repo. Opens the repository.

headless-kit is two small Node tools that an AI agent can run with no browser, no API key and no window: reddit-pull returns public Reddit posts and comments as one JSON line, and detached-run starts a Windows process that carries on after its launcher has gone. Tested, with CI on Windows and Ubuntu. Whatever they fetch is treated as untrusted data, never as instructions to the agent.

designyourtv: a painted depth-clock lock screen for Google TV, the clock behind the painting's subject, with glass widgets. Public repo. Opens the repository. designyourwindows: the depth-clock look on a Windows desktop, with glass widgets and a dock. Public repo. Opens the repository. Sidemic: your Android phone becomes your PC's wireless microphone, with noise removed on the phone. Public repo. Opens the repository. Film simulations: Fujifilm-style looks measured on a stock Android camera. Public repo. Opens the repository.

Human LLM Council: small local models that learn how one person decides. Preview. Public repo. Opens the repository.

Claude for HMOS Lite: answer your coding agent from a Huawei watch. Building now, no link yet. Prompt Rambler: talk your way into a good prompt. Building now, no link yet.

Earlier work: I wrote and checked the 6093 Biology papers a tuition centre now uses (Alchemy Education Studio, Feb 2025 to Oct 2026), and built a harness that drafts them from a reference library and checks the format.

03 Track record. SYN, SYN-ACK and ACK packets cross between two nodes, then a flag is captured. HTB Cyber Apocalypse CTF 2026: 30th of 6,744 teams. Singapore Cyber Conquest 2026: student finalist. BrainHack CDDC 2026: finalist, Explorer. My TV's live weather layer: rain and drifting cloud, a lightning flash, then a golden-hour glow.

LinkedIn CCA-F on Credly ISC2 CC on Credly

The banner is my TV's home screen itself: tools/capture_tv.mjs opens the TV's page in a hidden headless browser with its current settings (the paintings I approved, each with its own clock face, size and depth cut-out) and films the whole rotation with the TV's own transitions. Only two things change: the clock reads ETHAN, and the widget cards carry my numbers. The extra weather (sun rays, moonlight, cloud, lightning) is tools/wx-extra.js, sitting where the TV's rain does, behind the cut-out. Claude usage and Claude Code tokens are read on my laptop and published to the live branch by tools/refresh.py. The paintings are oil-paint renderings made from reference images I collected; the skiing and snowboarding scenes are inspired by Werner Bronkhorst. Type: Antonio, Big Shoulders Display, Instrument Serif, Abril Fatface and Hanken Grotesk (SIL OFL 1.1). Click the banner to open it full size.

Concorde rolls along a wet runway, rotates and climbs away.

Pinned Loading

  1. android-film-simulations android-film-simulations Public

    A hobby project I built to learn ADB: driving an Android phone's camera over adb to try Fujifilm film looks. Rough, tested on one phone.

    Python

  2. designyourtv designyourtv Public

    Your Google TV's idle screen becomes a painted lock screen, with the clock standing behind the painting.

    JavaScript

  3. detached-run detached-run Public

    The nohup Windows never had: a background process that outlives its parent and never flashes a window.

    JavaScript 2

  4. headless-kit headless-kit Public

    Cheap, agent-first tools that run without a browser, a sign-in or a window: model routing, machine guards (memory, app closing, detached runs) and research (Reddit, Instagram, token totals).

    JavaScript

  5. reddit-pull reddit-pull Public

    Reddit as JSON files for AI agents: no browser, no sign-in, no API key.

    JavaScript 1

  6. sidemic sidemic Public

    Your Android phone becomes your PC's wireless microphone, with nothing installed on the phone.

    Rust