I'm an AI software engineer. I work on three things: backends that hold up under load, the machine learning underneath AI features, and agents that do real work. I like owning a feature from the database schema to the UI, and the part I care about most is the backend: data models, queues, retries, and what happens when something fails.
At InboxKit I build the Enrich platform: the Next.js frontend, services in Go and Node, and ClickHouse analytics over 300M+ records. Keeping it fast as the data grows means partitioned tables, Redis caching in front of heavy queries, and job queues with retries, backoff and rate limits. I write raw SQL when an ORM gets in the way.
For the last 10 months I've also worked on LinkedIn automation, using Puppeteer to collect company follower data. I also shipped two Chrome extensions for LinkedIn, Company Followers and Find Phone.
On the ML side I work in Python: preparing data, training and evaluating models with PyTorch and scikit-learn, and using embeddings and vector search for retrieval. I want to know what the model is doing, not only which API to call.
A lot of my recent work is agentic AI. I build on the Claude API and MCP: agents that call tools, ask before risky actions and remember the user, like Textcrew. I build RAG pipelines and multi-agent workflows with LangChain and LangGraph, and Claude Code is part of how I work every day: I break a design into phases and run parallel agents on separate git branches.
For operations I run services in Docker and set up monitoring with Prometheus, Grafana, Loki and Tempo, so metrics, logs and traces are in one place.
Outside work I write systems code to see how things work underneath: a Redis-compatible server in Go, and a thread-pool web server and a small 3D renderer in Rust.
- Languages
- TypeScript, Python, Go, Rust, JavaScript, SQL
- Frontend
- Next.js, React, Redux Toolkit, Tailwind CSS, shadcn/ui
- Backend
- Node.js, Hono, Express, Fastify, FastAPI, Fiber, Echo, gRPC, WebSockets, OpenAPI
- Machine learning
- PyTorch, scikit-learn, NumPy, pandas, Hugging Face Transformers, Jupyter
- AI & agents
- Claude API, Claude Code, MCP, LangChain, LangGraph, RAG, Embeddings, Qdrant, Chroma, LiteLLM
- Data
- PostgreSQL, ClickHouse, MongoDB, Redis, BullMQ, Drizzle, Prisma
- Browser automation
- Puppeteer, Chromium, Xvfb, Chrome extensions (MV3), Plasmo
- DevOps
- Docker, gVisor, GitHub Actions, Caddy, AWS SES
- Observability
- Prometheus, Grafana, Loki, Tempo