
SalesRook
Lead generation and qualification platform for letting agents. Handles enquiries on autopilot.
ShippingReact & AIIntoProduction
I lead a small engineering team shipping full-stack and mobile products in React, React Native and Next.js — with AI agents, RAG pipelines and automation running in production on top of 10+ years of engineering.


Lead generation and qualification platform for letting agents. Handles enquiries on autopilot.

Insurance distribution platform for producer onboarding, licensing, and compensation across enterprise carriers.
10+ years in software — I started in mobile (native Android, then React Native), scaled into full-stack engineering, and spent nearly six years at Duck Creek Technologies building enterprise insurance platforms used by carriers across the US.
First real apps in native Android — real screens, real bugs, real users. Learned what it takes to put software in people's hands: offline states, performance on cheap devices, release discipline.
Built native iOS apps alongside Android. Learned that platforms differ but products don't — and started designing systems that outlive any single stack.
Shipping both platforms from a single codebase. Learned to think in components and shared logic — the first step from building apps toward building the systems behind them.
Six years on insurance platforms used by carriers across the US — first the web frontend in React, then deep into the backend with Node and TypeScript. Learned how enterprise SaaS is really built: multi-tenant scale, compliance, and software that businesses run on.
RAG pipelines, AI agents, and CRM automation running a live SaaS platform — leading a team of five. Everything underneath — mobile, full-stack, enterprise — became the foundation for AI systems that actually ship.
Most multi-agent demos don't beat one well-prompted agent. When coordination is worth the added latency and failure surface, and when it's overhead.
Chunk-level allowlisting, output filtering, privilege separation for agents. Concrete defenses against retrieved-content injection, not the theory.
0.87 makes strict TypeScript types the default. But the headline feature is not what decides the upgrade — the removals and the toolchain bumps are.
Authentication is a fact you establish once. Authorization is a decision you make on every request — and that gap is where most access-control bugs live.