| Ridiculous things |
| Active projects |
Admonition (Obsidian plugin, TypeScript)
Adopted from the original author |
less than a year |
Quarkus Ironsworn (Quarkus + LangChain4j + RAG)
AI-powered solo Ironsworn RPG, conference demo |
less than a year |
Soloplay (Quarkus + LangChain4j + RAG)
AI-powered solo TTRPG assistant, conference demo |
1 year
(2025-2026) |
Prompt Flow (Obsidian plugin, TypeScript)
Generate AI content via local or OpenAI-compatible LLMs |
1 year
(2025-2026) |
Deck Notes (Obsidian plugin, TypeScript)
Card decks for activities, strategies, or flashcards |
1 year
(2025-2026) |
Vault as MCP (Obsidian plugin, TypeScript)
Expose vault contents to LLMs via MCP server |
1 year
(2025-2026) |
Markdownlint (Obsidian plugin, TypeScript)
Lint vault files with markdownlint |
2 years
(2024-2026) |
Slides Extended (Obsidian plugin, TypeScript)
Fork of Advanced Slides |
2 years
(2024-2026) |
Commonhaus Foundation Automation (Quarkus GitHub Apps)
User/org/voting management for the Commonhaus Foundation |
2 years
(2024-2026) |
Show Whitespace (Obsidian plugin, TypeScript)
Highlight leading/trailing whitespace |
3 years
(2023-2026) |
TTRPG Convert CLI (Quarkus CLI + D&D)
Convert TTRPG source material to Markdown for Obsidian |
4 years
(2022-2026) |
Snippetor (Obsidian plugin, TypeScript)
Generate common CSS snippets |
4 years
(2022-2026) |
Task Collector (Obsidian plugin, TypeScript)
Gather and mark completed tasks within a note |
5 years
(2021-2026) |
Ebullientworks (Obsidian theme, Sass)
Dark/light theme for Obsidian and Obsidian Publish |
5 years
(2021-2026) |
Day Planner OG (Obsidian plugin, TypeScript)
Fork of the original Day Planner plugin |
6 years
(2020-2026) |
| Archived projects |
Pockets CLI (Quarkus CLI + JPA)
TTRPG inventory tracking CLI |
3 years
(2021-2024) |
Monster Combat (Application metrics)
D&D combat simulator exploring Micrometer/Prometheus metrics |
4 years
(2019-2023) |
Game On! Text Adventure (Microservices)
Multiplayer text adventure demonstrating microservices |
7 years
(2015-2022) |
| Proficient |
Experience |
| Programming languages |
| Java
(1.2.1 - 24) |
30 years
(1996-2026) |
| Microservices and Cloud Native |
Docker
docker, docker-compose |
11 years
(2015-2026) |
| Know enough to be dangerous |
Experience |
| Programming languages |
| Typescript |
5 years
(2021-2026) |
| Microservices and Cloud Native |
Kubernetes
minikube |
7 years
(2018-2025) |
Micrometer
(1.5.x - current)
Java metrics library |
6 years
(2019-2025) |
| Prometheus
(2.15.x - current) |
5 years
(2020-2025) |
Quarkus
(1.7.x - current)
Creator of Quarkus Micrometer extension |
6 years
(2020-2026) |
| Front-end markup |
| CSS |
25 years
(2001-2026) |
| HTML
(1.1 - 5.x) |
31 years
(1995-2026) |
| DevOps |
| GitHub Actions |
6 years
(2020-2026) |
| Now-and-again dabbling |
Experience |
| Programming languages |
| Golang |
2 years
(2018-2020) |
| Rust |
2 years
(2020-2022) |
| Rust bucket |
Experience |
| Programming languages |
| C/C++ |
13 years
(1995-2008) |
| PL/X, PL/1 |
4 years
(1999-2003) |
| Perl |
15 years
(2001-2016) |
| PHP
(4.0.6 - 4.5.x, 5.2.x) |
10 years
(2002-2012) |
| Ruby / Ruby on Rails |
7 years
(2006-2013) |
| SQL |
23 years
(1995-2018) |
| Velocity |
5 years
(2007-2012) |
| Standards |
OSGi
(R4, R5)
DS, ConfigAdmin, Bnd |
9 years
(2007-2016) |
CORBA
(2.3.x-2.6.x)
GIOP, RMI/IIOP |
15 years
(1997-2012) |
| Applications |
| Apache
(1.3.2x/2.x) |
12 years
(2001-2013) |
WebSphere Liberty
Founding contributor / architect / technical lead |
12 years
(2005-2017) |
WebSphere Application Server for z/OS and OS/390
(4.x - 6.x)
Component Broker for OS/390 v3.0.2 |
9 years
(1999-2008) |