Building production-grade
software, one tool at a time.

Thoughts on AI, Python, infrastructure architecture, and building production-grade open-source tools.

25

Posts published

29+

GitHub projects

21+

PyPI packages

24+

Open-source tools

Avi Zaguri

About me

Hi, I’m Avi 👋

I’m an Infrastructure Architect. By day I design the automation backbone for engineering teams — CI/CD pipelines, test infrastructure, E2E applications, infrastructure for functional teams, cloud deployments — and lead the move away from one-off scripts, legacy code, and hard-coded, unstable, architecture-less infrastructure — toward systems that are reusable, stable, and built to scale. That work only succeeds when you go beyond the code: I learn the systems in depth, the business logic they serve, and the way they connect across the organization — and that understanding is what shapes the architecture.

Most of my open-source work started as a fix for something that annoyed me more than twice. A logger that needed twenty lines of setup before printing anything useful. Test suites that couldn’t say “skip this test if that one failed.” API clients that made me re-implement pagination and retries in every single project. I packaged those fixes, and today I maintain 20+ Python packages on PyPI — a pytest plugin ecosystem, the “Plus” series of production-grade API clients, Django tooling, and lately AI tools for distributing agent context and powering LLM bots.

This blog is where I write about the problems behind those tools — why the standard solution wasn’t enough, what I built instead, and the patterns I keep reusing. If you’ve ever copied the same boilerplate into your fifth project in a row, you’ll feel at home here.

Open Source

Tools I've shipped

29+ packages across AI, Infra, Testing, and more.

think-drop ai

Telegram → Notion pipeline: voice or text in, auto-classified summary out — powered by any LLM.

ticket-assist ai

Slack bot that classifies support tickets with structured LLM output and replies with AI-generated answers.

ai-agents-marketplace ai

CLI that distributes reusable AI-agent context — skills, plugins, rules — into any project. Author once, render many.

python-github-plus clients

Service-based GitHub client for branches, PRs, workflows, file ops, and tags — with robust error handling.

python-gitlab-plus clients

Extended GitLab client for MRs, pipelines, tags, and file ops — with built-in pipeline wait support.

python-jira-plus clients

JIRA client with automatic retries, pagination, field validation, and cleaner issue creation and search.

python-notion-plus clients

Notion API client with auto-pagination, database querying, and intuitive page formatting.

python-vault clients

Minimal HashiCorp Vault client for AppRole auth and KV v2 secret retrieval — env-var configured.

custom-python-logger core

Colored output, custom log levels (STEP, EXCEPTION), and contextual fields — behind a single build_logger() call.

python-base-command core

Django's BaseCommand pattern — handle(), add_arguments(), call_command(), auto-discovery — for any Python project.

pyrest-model-client core

httpx + Pydantic in a model-driven REST client with pagination, async support, and typed responses.

python-base-toolkit core

A production-ready suite of essential utilities designed to accelerate Python development.

python-custom-exceptions core

A centralized library of reusable, semantic exception classes for cleaner error handling.

python-simple-email-sender core

A minimalist SMTP client for sending emails and attachments with zero boilerplate.

python-databases core

A unified, extensible interface for interacting with multiple database types through a single API.

cast-studio devtools

Converts asciinema .cast files to GIF and MP4 with a demo engine that makes every recording reproducible.

django-versioned-models django

Drop-in release management for Django — lock, branch, and ship versioned configuration datasets safely.

drf-easy-crud django

Enterprise-grade CRUD for DRF ViewSets with advanced filtering, pagination, and ForeignKey lookups.

dev-template-repository templates

Standardized GitHub repository template with pre-configured tooling, CI workflows, and project structure for rapid bootstrapping.

fast-api-template templates

Production-ready FastAPI starter with pre-configured authentication, JWT support, database integration, and example routes.

django-basic-app templates

Production-ready Django REST Framework starter with enterprise-grade CRUD utilities, versioned models, and advanced filtering.

docker-mcp-service-template templates

Dockerized MCP service template for rapid deployment of Model Context Protocol services with Claude Desktop integration.

python-telegram-bot-template templates

Modular Telegram bot starter with async handlers, inline keyboards, and multi-step conversation flows.

pytest-dynamic-parameterize testing

Runtime test parameterization from functions, config files, or APIs — replaces static @pytest.mark.parametrize.

pytest-plugins testing

Structured JSON/Markdown reporting, consecutive failure detection, smart skip-on-fail, and verbose param IDs.

pytest-collect-requirements testing

Annotate tests with requirements, collect them into structured JSON — without running the suite.

pytest-depends-on testing

Explicit test dependencies — automatically skip dependents when prerequisites fail.

pytest-reporter-html testing

Rich, interactive HTML test reports with zero-config log capture, step tracking, and real-time filtering.

pytest-only-markers testing

Flag tests with ONLY_* markers and run only those — one decorator, one flag, full CI isolation.

Latest writing

View all posts →