You can catch domain-specific anti-patterns that ESLint
, Ruff
, or golangci-lint
miss by writing custom linter rules that parse your code into an Abstract Syntax Tree (AST), walk the tree to match specific node patterns, and report violations with auto-fix suggestions. The process is the same regardless of language: parse source into a tree, define the pattern you want to catch, walk the tree to find matches, and emit diagnostics. In JavaScript/TypeScript, this means writing an ESLint plugin with a visitor-pattern rule. In Python, you write a flake8 plugin using the ast module or a Ruff plugin in Rust. In Go, you use the go/ast and go/analysis packages.
Python
Custom Linter Rules: JavaScript, Python, Go ASTs
Promptfoo: Catch LLM Regressions Before Production
Promptfoo
is an open-source CLI tool that runs your test cases against one or more LLM providers
at once. You write a YAML file with prompts, test cases, and checks, then run promptfoo eval to get a report with pass/fail rates, regressions, and side-by-side comparisons. It scores results three ways: simple text checks, LLM-as-judge grading, or your own scoring code. The point is to catch prompt regressions, broken model upgrades, and quality drops before users see them.
Python Markdown Blog: 100 Lines of Code
You can build a working static site generator in about 100 lines of Python. The result reads Markdown files from a content directory, parses their YAML front matter, converts the Markdown to HTML, wraps everything in Jinja2 templates, and writes the output to a public/ folder ready to be served by any web server. It is the same fundamental pipeline that powers tools like Hugo
, Jekyll
, and Eleventy
- just stripped down to the essentials so you can see exactly how the pieces fit together.
Redis Streams vs Kafka: 100K-500K ops/sec alternative
Redis Streams give you a light, self-hosted option versus Apache Kafka
for event-driven data pipelines. You get append-only log semantics, consumer groups with ack tracking, and sub-millisecond latency on a single Redis
7.4+ instance. Producers XADD events to a stream. Consumer groups read with XREADGROUP in Python via redis-py
. Manual XACK calls plus a pending entry list (PEL) give you at-least-once processing.
What follows covers stream basics, consumer groups with failure recovery, a full producer and consumer pipeline with a dead-letter queue, and the ops practices to keep Redis Streams healthy in production.
Type-Safe APIs with Pydantic v3 and FastAPI: A Best Practices Guide
Pydantic v3 shipped in late 2025. It has a new Rust-backed core and a fresh model system. With FastAPI 0.115+, you get auto request checks, fast JSON output, and OpenAPI 3.1 docs. No manual schema work. Data errors get caught at the API edge. Client SDKs come from the live spec. The check overhead that used to be a bottleneck is now mostly gone.
This guide walks through what changed in v3, how to lay out a production project, the validation patterns to know, and what deployment looks like when you care about speed.
Personal AI Research Assistant: Local Semantic Search
You can build a personal AI research assistant that ingests PDFs, web bookmarks, and notes into a local ChromaDB vector store. It answers questions with cited sources using Ollama and a local LLM like Llama 4 Scout. The system uses sentence-transformers to embed your documents into a searchable index. When you ask a question, it pulls relevant passages and writes an answer that cites the exact source and page. The whole stack runs offline on consumer hardware, so your research data stays private.
Botmonster Tech




