Own project, open source / 2026 ticket-tracker: a board where AI agents work tickets next to people A ticket tracker where coding agents are board members. A small orchestrator turns each ticket into a headless Claude Code session, posts what every turn cost, and shows a live health dot from a 60-second heartbeat. 52 commands are the only write path for the app, the REST API and the MCP server
Day job (Software Tech Lead, Oizom) / 2026 One stack per ticket: a dev pipeline where the ticket is the only interface Each approved ticket gets a branch in every repo, its own services, a copy of the dev database and a preview URL. An AI agent works it from the ticket thread; a script merges, deploys to dev and rolls back. Per-ticket sandboxes about 10x cheaper and faster than with full databases
Day job (Software Tech Lead, Oizom) / 2025 Air-quality heatmaps: 5 seconds per image to 20 images in 30 ms Rebuilt an hourly Python heatmap cron as an on-request Go service with precomputed weights and JPEG output. Heatmaps are now available for any past time range, with custom settings. About 5 s per image (hourly cron, 4 GB RAM, 2 CPUs) to 30 ms for 20 images
Day job (Software Tech Lead, Oizom) / 2025 1 million+ sensor readings in Node.js on a 2 GB server The backend ran out of memory on large sensor queries. I replaced millions of JSON objects with one typed-array table behind a small class, so the rest of the code never sees the buffers. Out-of-memory crashes on a 2 GB droplet stopped; memory graph stayed flat
Day job (Software Tech Lead, Oizom) / 2025 A cache layer that invalidates itself from database changes Hand-written cache-aside code was serving stale reads and loading PostgreSQL. I moved caching into function wrappers and drove invalidation from database change events, so an edit from any service clears the cache. Invalidation no longer depends on every update function remembering it
Day job (Software Tech Lead, Oizom) / 2025 Request-scoped logs: every failed request's full story by one ID Debugging a production 500 meant digging through unrelated logs. Each request now carries a context with its own log buffer; failed requests stream their logs to a store you can search by request, user, device or system job. Only failed or flagged requests are stored, so the log store stays small
Own project, open source / 2024 @panth977: open-source TypeScript packages for schema-safe backends A set of small packages on JSR: functions with zod-checked inputs and outputs, routes that produce the Express or Hono handler and the OpenAPI docs from one schema, cache wrappers with a Redis adapter, and request-scoped logs. 9 packages published under @panth977 on JSR
Want something like this built? ppanth977@gmail.com