What I Work With

I've been building software long enough that a list of technologies can get ridiculous pretty quickly. This isn't meant to be everything I've ever used, and everything here isn't something I'd claim to be an expert in. It's a snapshot of the technologies and areas I work with today, from things I've used for decades to things I'm actively learning because a project gave me a reason to learn them.

I Don't Really Have One Stack

The tools change with the problem. I might be working on a Rust agent runtime in the morning, a React interface in the afternoon, debugging Kubernetes infrastructure later that day, and experimenting with model inference that night.

What matters more to me is understanding enough of the system to move between those layers when the problem requires it.

Agent Systems

The machinery around the model: harnesses, loops, tools, context, orchestration, memory, evaluation, and the environments where agents actually do work.

Custom Agent Harnesses
Spore Core
Harness builder and composable loop strategies
MCP
Tools, servers, clients, and agent integration
AI SDK
Mastra
Claude Code
Codex
OpenTelemetry
Agent and tool telemetry

Evaluation & Verification

I care a lot about knowing whether an agent actually did what it says it did, and whether a change made the system measurably better.

Agent Evals
Software Engineering Benchmarks
Behavioral Verification
Held-out Testing
Reproducible Experiments
Remiss
Coding-agent run auditing
Evolving Agent
Self-modifying agent experiments

Models & Inference

I run models locally as well as through hosted providers, so I spend a fair amount of time below the API layer.

vLLM
Ollama
LiteLLM
Hugging Face
CUDA
Tensor Parallelism
Quantization
FP8, NVFP4, compressed tensors
KV Cache
Sizing, FP8, and long-context workloads
Model Routing
Capability, complexity, latency, and cost
Structured / Constrained Inference

Model Providers

I work across hosted and self-hosted models rather than building systems around a single provider.

OpenAI
Anthropic
Google Gemini
DeepSeek
Qwen
GLM
Local / Open-weight Models

AI Infrastructure

Serving and routing models is part of the system for me, not somebody else’s black box.

NVIDIA DGX Spark
Multi-GPU Inference
Model Distribution
Inference Gateways
Streaming APIs
WebSockets
Redis / Valkey Streams
GPU Workload Management

Isolation & Execution

Autonomous agents need somewhere to act. I work with containers and microVMs to create reproducible environments with explicit boundaries.

Petri
MicroVM sandboxing for AI agents
Docker
Podman
Apple Containers
Apple Virtualization
Firecracker
KVM
virtio-fs
vsock
Dev Containers

Machine Learning & Training

This is an area I’m actively learning rather than something I claim deep expertise in. I understand the mechanics well enough to experiment, build small models, prepare training data, and work effectively with coding agents when I need to go deeper.

PyTorch
Model-building and training experiments
Transformers
Architecture, tokenization, attention, and inference fundamentals
Fine-tuning / LoRA
Dataset preparation and training experiments
Knowledge Distillation
Exploring teacher distributions and smaller specialist models
Embeddings
Model Evaluation
Training Data Pipelines
Azure AI Foundry

Languages

I tend to choose languages based on the system I am building rather than trying to make one language solve everything.

Rust
Systems, CLIs, runtimes, agents, and desktop cores
TypeScript
Web applications, services, and AI systems
Python
AI, ML, evaluation, and data tooling
Go
Services, agents, and infrastructure
C# / .NET
Enterprise applications and distributed systems
Swift
iOS and Apple-native applications
Objective-C
SQL
Shell

Backend, Data & Messaging

Most of my systems eventually need durable state, messaging, queues, caches, search, or some combination of them.

PostgreSQL
Relational data, full-text search, and vector workloads
SQL Server
SQLite
Cloudflare D1
SurrealDB
MongoDB
Redis / Valkey
ElastiCache
BullMQ
Redis-backed jobs and background processing
RabbitMQ
Azure Event Grid
Azure Event Hubs
Qdrant
Embeddings / Vector Search
REST
WebSockets
Event-driven Systems

Web & Product

I still build plenty of normal software. AI is increasingly part of the system, but the rest of the product still has to work.

React
Next.js
Hono
Cloudwerk
Vite
Tailwind CSS
shadcn/ui
TanStack Query
Zustand
Tauri

Apple & Mobile

I have built Apple-native software for a long time and still use native APIs when the platform capabilities matter.

Swift
SwiftUI
UIKit
Objective-C
HealthKit
StoreKit
React Native
Expo

Cloud & Infrastructure

I’ve spent a large part of my career designing, deploying, and operating distributed software, from application infrastructure through Kubernetes and cloud platforms.

Kubernetes
Azure / AKS
AWS
Google Cloud
Cloudflare Workers
Cloudflare D1 / R2 / KV / Queues
Docker
Terraform
Infrastructure-as-code deployments
CI/CD
Azure DevOps
GitHub Actions

Observability & Operations

I care more about being able to understand what a system is doing than about any particular observability stack. I’ve worked directly with production monitoring and increasingly build telemetry into AI and agent systems as a first-class concern.

OpenTelemetry
Tracing agent, model, and tool execution
Datadog
Professional production monitoring and observability
Prometheus
Metrics and monitoring integration
Grafana
Dashboards and operational visualization
Structured Logging
Distributed Tracing
Time-series Data

Embedded & Hardware

Sometimes the software needs to leave the computer. I like working close enough to the hardware to understand the whole system.

ESP32
ESP-IDF
LVGL
Raspberry Pi
Orange Pi
Arduino
Audio / Voice Pipelines
ASR / TTS
IoT

This List Will Change

I learn technologies because I need them for something I'm building. Some become tools I use for years. Others solve one problem and disappear from my normal workflow.

If you're more interested in what I'm doing with all of this than the names of the tools themselves, the projects and lab pages are probably more interesting.