A platform for measured climate and earth-science data. It holds readings from public instruments, never models, forecasts or estimates. AI assistants can query the same records through a public, read-only connection. I am its architect.
Custom data tools for small and mid-size political campaigns. One shared platform replaces a tangle of vendors: voter files, outreach, analytics and workflows in one place, with quick custom dashboards on top. I architected it and build it.
PythonFastAPIDuckDBMCPcampaignbrain.dev (another site, opens in a new tab)
Small AI models on measured public data, running entirely in your browser. It reads the data straight from files on the server, and an experimental hurricane model runs on your own graphics card. I engineered it.
DuckDB-WASMWebGPUtinygradPWAtinychase.com (another site, opens in a new tab)
The political web, searchable. Websites, broadcast transcripts, county filings and scanned documents, gathered into one collection you can ask questions of. Every answer comes with its source document. Built on the SysForge platform and served from this machine.
PythonFastAPIOCRVector searchMCPnominate.ai (another site, opens in a new tab)
A digital estate-planning platform, shipped through SysForge. I rebuilt it from an earlier prototype into a single application. Each person's identity data and stored files are encrypted with their own key. Live at mywishes.com as My Wishes.
Four GitHub organisations, January 2025 to now: 283 repositories and 43,491 commits. Each is counted from my first commit in it (how). Work before 2025 is on the resume.
One line per organisation, each filling its own height: the shapes compare, the commit column carries the size.
Nominate-AI
A platform that finds and gathers information with AI: data pipelines, search and agents. This section names none of its repositories. Its list of services is on /mcp.
Activitysince 14 Apr 2025
Commits
35,514since 14 Apr 202520252,298202633,216
Last 52 weeks
34,077on 364 of 364 days
Repositories
177
Latest commit
26 Oct 2026
Commits by day and month, and languages
Commits per day, last 52 weeks
One cell is one UTC day, 2025-10-28 to 2026-10-2601 to 2425 to 5253 to 8586 to 143144 to 793commits
Commits per day, last 52 weeks, by month
Month
commits
Active days
Days in window
2025-10
30
4
4
2025-11
167
30
30
2025-12
664
31
31
2026-01
1,319
31
31
2026-02
1,846
28
28
2026-03
1,794
31
31
2026-04
2,459
30
30
2026-05
3,128
31
31
2026-06
3,693
30
30
2026-07
3,584
31
31
2026-08
6,387
31
31
2026-09
5,782
30
30
2026-10
3,224
26
26
The calendar opens at the newest week; scroll it sideways for the earlier ones.
Commits per month, Apr 2025 to Oct 2026tallest 6,387 commits
2025-042025-102026-04this month so far
Commits per month, Apr 2025 to Oct 2026
Bucket
commits
2025-04
205
2025-05
128
2025-06
107
2025-07
96
2025-08
320
2025-09
167
2025-10
444
2025-11
167
2025-12
664
2026-01
1,319
2026-02
1,846
2026-03
1,794
2026-04
2,459
2026-05
3,128
2026-06
3,693
2026-07
3,584
2026-08
6,387
2026-09
5,782
2026-10 (this month so far)
3,224
Languages
10one per repository, as GitHub records it; 6 of 177 have none
Repositories by primary language
Python116 repos
TypeScript30 repos
Shell7 repos
HTML6 repos
Rust3 repos
Other (5)9 repos
nominate-ai-timeline.json, generated 2026-10-26 09:10 UTC. Commits by UTC day, 2025-04-14 to 2026-10-26.
tinymachines
The garage lab, where hardware meets AI: wireless sensor networks, software radio, true random numbers from radioactive decay, and aircraft-tracking receivers. Since August 2026 the chip work lives here too: transistor-by-transistor simulations of the MOS 6502 and the chips of the NES, published at tinymachines.ai. The instruments on this site (Hotbits, Dragonfli) are built from code in this organisation.
Activitysince 11 Mar 2025
Commits
6,128since 11 Mar 202520251,85020264,278
Last 52 weeks
4,663on 286 of 364 days
Repositories
88
Latest commit
26 Oct 2026
Commits by day and month, and languages
Commits per day, last 52 weeks
One cell is one UTC day, 2025-10-28 to 2026-10-2601 to 23 to 56 to 1112 to 2526 to 149commits
Commits per day, last 52 weeks, by month
Month
commits
Active days
Days in window
2025-10
11
4
4
2025-11
310
28
30
2025-12
64
18
31
2026-01
48
10
31
2026-02
65
13
28
2026-03
85
19
31
2026-04
42
16
30
2026-05
541
31
31
2026-06
272
29
30
2026-07
66
31
31
2026-08
657
31
31
2026-09
977
30
30
2026-10
1,525
26
26
The calendar opens at the newest week; scroll it sideways for the earlier ones.
Commits per month, Mar 2025 to Oct 2026tallest 1,525 commits
2025-032025-092026-03this month so far
Commits per month, Mar 2025 to Oct 2026
Bucket
commits
2025-03
42
2025-04
162
2025-05
32
2025-06
104
2025-07
351
2025-08
342
2025-09
188
2025-10
255
2025-11
310
2025-12
64
2026-01
48
2026-02
65
2026-03
85
2026-04
42
2026-05
541
2026-06
272
2026-07
66
2026-08
657
2026-09
977
2026-10 (this month so far)
1,525
Languages
9one per repository, as GitHub records it; 9 of 88 have none
Each bar runs from a repository's first commit to its last, on a line from 11 Mar 2025 to 26 Oct 2026. Not shown: 18 older public repositories, all on github.com/tinymachines, and 58 that are counted and not named: private repositories, a fork of ripgrep and one imported project. Descriptions are each repository's own, from GitHub.
tinymachines-timeline.json, generated 2026-10-26 09:13 UTC. Commits by UTC day, 2025-03-11 to 2026-10-26.
isenbek
The solo namespace. This site lives here (its source, the pipelines that write its data and the script that ships it), and so does House Calls.
Activitysince 15 Jan 2025
Commits
1,550since 15 Jan 202520252020261,530
Last 52 weeks
1,533on 102 of 364 days
Repositories
16
Latest commit
10 Oct 2026
Commits by day and month, and languages
Commits per day, last 52 weeks
One cell is one UTC day, 2025-10-14 to 2026-10-1201 to 23 to 45 to 1112 to 2728 to 125commits
Commits per day, last 52 weeks, by month
Month
commits
Active days
Days in window
2025-10
3
2
18
2025-11
0
0
30
2025-12
0
0
31
2026-01
0
0
31
2026-02
39
7
28
2026-03
52
12
31
2026-04
34
8
30
2026-05
43
7
31
2026-06
322
16
30
2026-07
249
19
31
2026-08
392
15
31
2026-09
232
8
30
2026-10
167
8
12
The calendar opens at the newest week; scroll it sideways for the earlier ones.
Commits per month, Jan 2025 to Oct 2026tallest 392 commits
2025-012025-072026-012026-07
Commits per month, Jan 2025 to Oct 2026
Bucket
commits
2025-01
1
2025-02
0
2025-03
0
2025-04
0
2025-05
0
2025-06
0
2025-07
0
2025-08
11
2025-09
5
2025-10
3
2025-11
0
2025-12
0
2026-01
0
2026-02
39
2026-03
52
2026-04
34
2026-05
43
2026-06
322
2026-07
249
2026-08
392
2026-09
232
2026-10
167
Languages
5one per repository, as GitHub records it; 8 of 16 have none
The House Calls local backend: one Rust engine (DuckDB store, seed-phrase crypto, zero-knowledge stash) for the free trades tools at housecalls.bradley.io
Each bar runs from a repository's first commit to its last, on a line from 15 Jan 2025 to 12 Oct 2026. Not shown: 12 that are counted and not named: forks I kept of other people's projects, and a few small repositories that are not mine to list. Descriptions are each repository's own, from GitHub.
isenbek-timeline.json, generated 2026-10-12 09:15 UTC. Commits by UTC day, 2025-01-15 to 2026-10-12.
Sysforge-AI
SysForge.ai is the consulting firm I founded in 2024 (it is the first line of the resume). Its organisation holds one private repository, the firm's own site. The hand-written work there was February 2026; since March every commit is an automated nightly catalog refresh, which is the even row the calendar shows.
Activitysince 15 Feb 2026
Commits
299since 15 Feb 2026
Days with a commit
238of 254 days since the first
Repositories
2
Latest commit
26 Oct 2026
Commits by day, and languages
Commits per day, since 15 Feb 2026
One cell is one UTC day, 2026-02-15 to 2026-10-26012 to 12commits
Commits per day, since 15 Feb 2026, by month
Month
commits
Active days
Days in window
2026-02
53
10
14
2026-03
28
28
31
2026-04
30
30
30
2026-05
30
30
31
2026-06
26
26
30
2026-07
29
29
31
2026-08
31
31
31
2026-09
30
30
30
2026-10
42
24
26
The calendar opens at the newest week; scroll it sideways for the earlier ones.
Languages
2one per repository, as GitHub records it
Repositories by primary language
TypeScript1 repo
HTML1 repo
sysforge-ai-timeline.json, generated 2026-10-26 09:13 UTC. Commits by UTC day, 2026-02-15 to 2026-10-26.
How this is counted
A pipeline reads every repository in the four organisations through the GitHub API and counts every commit in every log. It does not look at who wrote them, and that matters in three ways.
Read more
Forks and imports. A fork arrives with its whole history: tinymachines holds a fork of ripgrep whose log starts in 2016, and isenbek holds forks that go back to 2014. So each organisation here starts at the first commit under my name: 15 Jan 2025 for isenbek, 11 Mar 2025 for tinymachines, 14 Apr 2025 for Nominate-AI and 15 Feb 2026 for Sysforge-AI. The 8,714 commits dated before those are in no number or chart on this page.
Scripts. A commit made by a script counts the same as one made by hand. This site's deploy script writes a version bump and a build stamp every time it ships, and those are more than half of its log, and Sysforge-AI's nightly refresh is the other case.
Other authors. Inside the period the logs still hold commits under other names: fork and import history dated after my first commit, and other authors. The published data has no author field, so the charts cannot take them out. The panel below is the one time it was measured.
Repositories are named only where they are public, not forks, and mine. Private ones are counted and not named. Days are UTC days.
Author checkall four, 2 Oct 2026
In the four logs that day
47,394
before each start, left out
8,714
in the period, counted
38,680
under my name
33,881
under Claude's name
845
under other names
3,954
Counted once, by author name, from the pipeline's cache, and it does not update: the files on this page were generated 26 Oct 2026 and hold 52,205 commits.
public/data/*-timeline.json: four files, newest generated 2026-10-26 09:13 UTC. Author check: pipeline cache, 2026-10-02.