Software developer, self-taught.
Web development was my gateway into programming, but I'm always trying to learn more β stretch into new areas of computer science. I build tools that solve problems I run into, contribute in the open, and share what I make so others can learn from it β the way I did. Wouldn't be here without open source.
I wanted to learn Rust with a real project. A language server for Django projects seemed like a good way to do that while hopefully improving Django's DX.
django-language-server β a language server for Django projects, written in Rust. Editor extensions for VSCode (djls-vscode) and Zed (zed-django).
LLMs are powerful but non-deterministic; how do you add guardrails without removing what makes them useful? Still working that out.
mcp-django gives LLMs structured access to Django projects, and djangodocs.org (private alpha, opening soon) is a better way for LLMs to search the documentation.
docs2markdown is a CLI tool and Python library to convert HTML documentation to Markdown, built to power djangodocs.org.
opencode-agent-skills and agent-skills document workflows and patterns for LLM coding agents β my attempts to figure out how to use these things, like everyone else.
Missing tools on Linux that I wanted for myself β a good excuse to stretch into desktop development, stay productive with web technologies (Tauri WebViews and Svelte), and write more Rust (any excuse is a good excuse π):
- opencode-agent-skills v0.4.1 - 2025-12-09
- dashtext v0.3.0 - 2025-12-05
- django-github-app v0.10.0 - 2025-12-02
- docs2markdown v0.5.0 - 2025-11-20
- mcp-django v0.13.0 - 2025-11-05
- djtagspecs v0.6.0 - 2025-11-04
- django-language-server v5.2.4 - 2025-11-04
- zed-django v0.2.0 - 2025-10-27
- djls-vscode v0.1.0 - 2025-10-10
- django-q-signals v0.2.1 - 2025-08-17
Django Software Foundation Member, Python Software Foundation Contributing Member, occasional contributor to Django Commons and Jazzband projects, Navigator for Djangonaut Space
A few contributions to bigger projects I'm proud of:
- django/django#19529 β Lazy loading for GDAL in GeoDjango, following the pattern established for GEOS. (Open)
- django-rest-framework#9688 β Fixed UniqueConstraint validation when fields use
sourceattribute. - fastmcp#2323 β Fixed query-only resource templates not matching URIs without query strings.





