Uses
A current snapshot of the tools and practices I actually reach for. I refreshed this in June 2026 after checking my recent local repos in ~/projects/gh and cross-checking GitHub metadata, then trimming the older aspirational stack.
The pattern is pretty clear lately: TypeScript apps, Python tools, AI-assisted development, small databases, GitHub Actions, and a bias toward boring pieces that can be understood and replaced.
Daily Essentials
- Claude Code—my default coding agent for repo work, reviews, implementation, and teaching
- Codex—for specific implementations when the plan is already defined or the task is well scoped
- Claude Desktop—non-code reasoning, planning, synthesis, and conversation outside the terminal
- Monologue—AI-native voice-to-text by Every↗
- Lex—drafting and tightening essays, notes, and course material↗
- Ghostty—terminal-first development; VS Code comes out when a GUI editor is useful
Software I Keep Reaching For
The strongest signal from my recent local repos is TypeScript plus Python, with GitHub Actions, Supabase, Tailwind, and uv showing up repeatedly.
Web Apps
- TypeScript—the default for app code, agents, dashboards, and frontend experiments
- React / Next.js—the main path for full-stack apps, portfolio work, and product prototypes
- Vite—quick client apps and focused tool surfaces where a full Next app is extra
- Astro—content-heavy guides and teaching sites that should stay fast and simple
- Tailwind CSS—still the fastest way for me to keep interfaces consistent while iterating
- shadcn/ui, Radix, lucide—practical component primitives for internal apps and prototypes
Backend, Data, and Infra
- Supabase—Postgres, auth, realtime, migrations, and edge functions for small teams
- PostgreSQL / SQLite—Postgres for products; SQLite for local-first tools, scripts, and datasets
- Cloudflare Workers—small edge APIs and glue code when a server is more ceremony than value
- Vercel—hosting for Next.js and Astro projects when preview deployments matter
- Docker—used selectively for reproducibility, not as a default abstraction
- GitHub Actions—CI, publishing, git-scraping jobs, and lightweight scheduled automation
JavaScript Tooling
- npm—the boring default, especially when the project already has a lockfile
- pnpm—larger TypeScript projects and workspaces
- Bun—shows up in newer Vite/Supabase experiments where speed matters
- Vitest—fast feedback for TypeScript units and agent-adjacent logic
- Prettier / ESLint—the baseline for keeping agent-written code reviewable
Python and Data Work
Python Toolchain
- Python—data work, CLIs, API clients, scrapers, evaluation scripts, and automation
- uv—my current default for Python environments, packaging, and lockfiles
- Ruff / pytest—fast linting and tests for scripts that grow into real tools
- Typer / Rich—CLI interfaces that feel good enough to keep using
- httpx / requests—API clients, scrapers, and data collection jobs
- Pydantic—typed boundaries for APIs, config, and AI extraction outputs
Analysis and Warehousing
- pandas—still the first stop for small and medium data questions
- Jupyter / Quarto—exploration, teaching material, and data stories
- dbt—warehouse modeling when SQL needs lineage, tests, and review
- Snowflake—large warehouse work, Snowpark, Cortex, and production analytics systems
- Streamlit—quick internal dashboards and data tools when the audience is small
- sqlite-utils—small, portable datasets and git-scraped archives
AI and Agent Workflows
Claude Code is the default; Codex comes in when the plan is already clear. The workflow matters more than the model vendor: small prompts, visible diffs, tests, and human review.
Model APIs
- OpenAI—general reasoning, product features, and agent experiments
- Anthropic—Claude-backed extraction, review, and long-context workflows
- Google Gemini—multimodal and extraction work, especially in newer Python projects
- Vercel AI SDK / Gateway—provider routing and AI features inside TypeScript apps
- MCP—tooling bridge for repo, browser, data, and workflow integrations
How I Use Agents
- Repo archaeology—scan manifests, history, and tests before changing behavior
- Implementation passes—small scoped edits, then lint, build, and rendered checks when relevant
- Review passes—bugs first, summaries second, with concrete file and line references
- Teaching workflows—showing analysts and engineers how to use agents without surrendering judgment
Content, Teaching, and Publishing
Writing Stack
- Markdown / MDX—notes, docs, skills, changelogs, and long-form drafts
- Substack—newsletters for tacosdedatos and tresveces
- Obsidian—personal knowledge base and rough thinking before it becomes public
- Excalidraw—diagrams when boxes and arrows are more honest than a slide deck
- Remotion—programmable video experiments and visual explanations
Teaching Tools
- GitHub repos—course materials, live examples, git-scraped datasets, and reproducible demos
- Observable-style notebooks—interactive data explanations when static charts are not enough
- Discord—community discussion and cohort support
Project Companies
- Paperclip—the umbrella company I use for projects like LoQueAndoOyendo and tacosdedatos, and the model behind Tlatoani at work: an in-house data shop where I act as data architect and agents operate as data engineers, analysts, and collaborators
Hardware, Mobile, and Experiments
These are not the daily app stack, but they have been part of recent experiments and prototypes.
Apple and Mobile
- Swift / SwiftUI—small iOS experiments, wellness tools, and personal apps
- Xcode—simulator builds and device-oriented debugging when the project is native
- React Native—cross-platform sketches when the native surface is not the main problem
Physical Computing
- ESP32—Wi-Fi microcontroller work for IoT prototypes
- Raspberry Pi—edge experiments, local services, and hardware-adjacent prototypes
- VL53L0X—time-of-flight distance sensing for inventory and container-level ideas
- MicroPython—quick firmware loops when C++ would slow down learning
- MQTT—lightweight messaging for sensor systems
Working Principles
Methodology
- Diagnose with data, treat with design—evidence first, then the smallest intervention that changes behavior
- Agent-native, not agent-blind—design workflows where humans and agents can both inspect the system
- Ship small—incremental, reversible changes with clear verification
- Local-first when possible—simple files, SQLite, and scripts before renting complexity
- Cost awareness—efficiency is part of the product, not an afterthought
Last updated: June 2026
Inspired by uses.tech, a community of developers sharing their setups.