Run DeepSeek R1 reasoning models locally on consumer GPUs with 16 GB VRAM using Ollama or llama.cpp. Chain-of-thought without cloud API costs.
Hands-on experience with AI, self-hosting, Linux, and the developer tools Botmonster actually uses
Custom linter rules: JavaScript, Python, Go ASTs
Build custom linter rules by parsing code into an Abstract Syntax Tree, walking it to match patterns, and auto-fixing violations in JS and Python.
Promptfoo: catch LLM regressions before production
Test LLM outputs systematically with Promptfoo. Run assertions, detect regressions, and catch quality issues before production with CI integration.
Python Markdown blog: 100 lines of code
Build a static site generator in 100 lines of Python. Parse YAML front matter, convert Markdown to HTML, render templates, and deploy a blog.
RAG vs. long context: choosing the best approach for your LLM
Compare RAG and long context windows: different tools for different problems. Understand tradeoffs, costs, and scalability for production LLM systems.
Veepeak vs OBDLink: BLE OBD-II for Home Assistant
Stream vehicle diagnostics and live fuel economy to Home Assistant via a Bluetooth OBD-II adapter. GPS tracking and geo-fenced automations, no cloud.





