PickYourTrail CRM — Plato
Internal Platform The operating system for PickYourTrail. Sales, finance, operations, chat, dialer, bookings, visa, HR, allocations, and reporting: all in one platform. Built the original system, then led the architectural rewrite.
The first version was a Laravel monolith with a Next.js frontend: 30+ page modules covering every operational domain. The rewrite moved to a CQRS approach where the database schema is the single source of truth: one schema file generates the GraphQL API types, validation schemas, ORM models, and documentation automatically. The platform also includes an in-house no-code flow engine with a visual builder, versioned rule sets, and a trigger/action system. AI is embedded operationally: call scoring, chat summarisation, conversation context tracking, and stage prediction. A key subsystem is the lead allocation engine (see below).
LaravelNext.jsGraphQLPrismaTemporalTurborepoSockudoTypesenseKubernetes
Lead allocation engine
Internal Platform A rule-based lead routing system that automatically assigns incoming customers to the right sales, operations, visa, and on-trip agents based on destination, customer profile, language, and agent availability, in real time, at scale.
Rules are prioritised and matched against customer and trip attributes: departure city, destination, channel, repeat status, and others. Conditions support both exact values and numeric comparisons. Each rule points to a team (or team group) of agents and can jump to the next rule when that team is fully occupied, or fall back to a secondary team. Before assigning, the engine checks several layers in sequence: roster availability for the day, concurrent lead cap, monthly and weekly capacity limits, and a rolling time window that prevents any agent from being over-allocated in a short burst. Rate limiting thresholds can be overridden per destination region. Customer language is matched to agent language capability. Returning customers are routed back to their previous agent where possible, and every decision is written to a full audit trail with a dry-run mode for testing rule changes.
Laravel queue jobsPriority rule engineMulti-layer capacity managementRolling window rate limitingLanguage matchingFull audit trailDry-run mode
Real-time chat platform
Product A full internal chat system for PickYourTrail, used by sales, operations, and customer support teams to communicate with customers and each other. Built as a complete product: backend, web UI, and a mobile SDK consumed across multiple apps.
The backend handles real-time presence, typing indicators, message receipts, read tracking, chat assignment, and ownership routing. AI layers run over conversations to generate summaries and track response-time metrics. The web interface supports canned responses, file uploads, AI tone suggestions, per-conversation context panels, and agent metrics. For mobile, this is packaged as a standalone SDK that embeds in the host app without requiring changes to navigation: an imperative API that opens the chat surface on demand. The same SDK ships across the consumer app and enterprise travel app. WhatsApp conversations flow into the same system via a self-hosted gateway.
LaravelSockudoReactReact Native SDKAI summarisationWhatsApp integration
AI trip planning system
AI Platform Multi-service AI system for travel planning. A coordinating AI agent breaks down a trip request and delegates to specialists: hotels, flights, activities, costing, and more. Results stream to the user in real time as each specialist completes its part.
The same capabilities are also exposed as an MCP tool server: 17 tool modules covering the full booking lifecycle from city discovery through payment. This means the planning system can be used by any AI client, including Claude Desktop. The orchestrator signals workflow transitions through structured output fields rather than through natural language instructions to the runtime, which keeps phase routing predictable regardless of how the LLM phrases things. The entire system is instrumented for observability: request tracing, database calls, queue tasks, and HTTP calls are all tracked and visible in dashboards.
FastAPICeleryCrewAILangChainMCPpgvectorOpenTelemetrySSE streaming
Algorithmic trading engine
Personal · Live Fully autonomous F&O trading system, running live with real capital. 61 strategies across NIFTY, BANKNIFTY, and SENSEX, with automated position sizing, trailing stops, partial profit takes, and portfolio-level risk limits. Built and maintained entirely outside of work.
An AI-assisted end-of-day workflow runs simulations against the day's production data, varies strategy parameters across a range, and produces ranked recommendations. The final call stays with the human. The engine runs as concurrent async loops (one per instrument group) with a fast position monitor running independently of the slower signal generation loop. The codebase has a strict testing mandate and an architecture document that doubles as a living decision record with numbered safety rules.
Python asyncioFastAPISQLAlchemy asyncRedisLiteLLMPydanticstructlog
Local developer runtime manager
Developer Tooling macOS-native local environment manager for Apple Silicon. Manages Postgres, Redis, PHP, Node, MinIO, Typesense, and Mailpit without Docker Desktop. A background service handles the runtime state; the desktop app is a control panel over it.
Every project automatically gets a *.test domain with valid HTTPS through a combination of local DNS resolution and auto-issued development certificates, with no manual hosts file edits. Runtimes are installed from cryptographically signed manifests. The separation between the background service (which owns all state, process supervision, database persistence, and routing) and the UI (which is stateless) means the UI can be replaced or extended without touching the runtime logic. Ships with macOS system integrations: tray menu, native notifications, launch-at-login, and in-app updates.
Go daemonTauri + RustReact + ViteSQLiteTraefikmkcert
LLM fine-tuning pipeline
ML Pipeline Turns a compressed support-chat database export into a fine-tuned model for travel customer service. The trained adapter weights are in production use.
Three stages: the first streams the raw SQL file, groups messages into conversations by participant, and sends each conversation to an LLM to extract a structured training example with an input, expected output, and intent label. The second stage cleans up inconsistent intent labels into a canonical set of 31 categories and filters out low-quality examples. The third automates GPU training on EC2. For scale, the dataset is split into 1,100 shards processed in parallel across RunPod serverless endpoints: work is distributed via filesystem state files with atomic operations rather than a coordination service. A cost estimation step runs before any LLM calls are made.
GoAxolotl + LoRARunPodEC2Alpaca format
AI operations agents platform
AI Platform A set of AI agents for internal trip operations: customer issue analysis, revenue operations analytics, allocation Q&A, and booking support. Each agent runs both as a command-line tool and as an MCP server.
The agents keep responses compact by default and expand to full detail only when explicitly requested, which matters for keeping context windows efficient when tools return large datasets. Analytics run in-process against CSV data without needing a database server. Intent classification uses keyword lists and pattern matching before touching the LLM, routing simple lookup queries away from the more expensive multi-step reasoning path. Shared authentication and response management are packaged as internal libraries reused across all agents.
FastMCPDuckDBDSPyLangGraphKubernetes
Self-hosted AI engineering team
AI Infrastructure 13 AI agents with defined roles (squad lead, architect, React dev, Python dev, QA, database optimizer, and others) collaborating through a shared task and communication backend with event-driven triggers and YAML-defined workflows.
Each agent has a stable personality and long-term memory that persist globally, but keeps its working context isolated per project. Model selection is tiered by task complexity: heavier reasoning models for architecture and creative tasks, lighter models for routine checks and scheduling. Agents are configured to act on assignments directly rather than asking for confirmation at each step, which is the default LLM behaviour and needs to be explicitly overridden in agent systems. Inference runs on self-hosted hardware to keep per-task cost at zero.
ConvexvLLM on RunPodReact + ViteYAML workflows
Atom design system
Design System A full proprietary design system built in 2022, before shadcn/ui existed. 11 packages, 650+ custom SVG icons in two size scales, web and React Native. Deployed across multiple products.
Layered architecture: theming and design tokens at the foundation, primitive components (layout, forms, typography) in the middle, and composite components (dialogs, drawers, data tables, autocomplete, multi-select) on top. Radix UI handled the accessibility primitive layer and was kept constant when the styling approach later moved from CSS-in-JS to Tailwind, which turned out to be the right architectural bet.
Stitches.jsRadix UITurborepotsupChangesetsReact Native
Git Flow automation — Vortex
Developer Tooling Web application that automates Git Flow branch management across GitHub repositories: automated pull request creation, merge conflict detection and retry, release pipeline, hotfix handling, and Slack notifications.
Includes an MCP endpoint so AI agents can interact with the release pipeline directly. Three-tier test coverage: unit tests, HTTP integration tests, and a full browser test suite that exercises the release flow end to end.
LaravelLivewireMaryUILaravel ReverbLaravel MCPPHPStan
People ops platform — Lockerroom
Internal Platform Internal HRIS for PickYourTrail covering appraisal cycles, peer/manager/founder reviews, OKRs, one-on-ones, resignation workflows, exit checklists, and employee profile exports.
Server-rendered admin handles broad data management; specific high-value flows (performance reviews, goal tracking, offboarding) are built as React components bootstrapped from Blade with pre-loaded initial state. A targeted modernisation approach: upgrade the surfaces that benefit most without an all-at-once rewrite.
LaravelNovaReactTailwindHorizonDocker + ECR + K8s