Full-Stack Engineer
Building modern web applications with TypeScript, React,
Next.js, Node.js and PostgreSQL.
Portfolio • LinkedIn • Technical Writing • X
I'm a full-stack engineer focused on building reliable, production-ready web applications.
My current work centres around TypeScript, React, Next.js, Node.js and PostgreSQL, alongside AI-powered applications, developer tooling and automation.
I care about clean architecture, maintainability, performance and developer experience.
Website feedback usually lands in scattered inboxes, and bug reports get copied into GitHub by hand, sometimes with a visitor's private details still in them. IssueRelay is an AI support system with an embeddable React widget, AI triage with Jev, a review dashboard, and confirmed bugs routed to GitHub as issues that stay in sync.
Built with Next.js as a modern way to collect, triage, and act on feedback from any website, with the widget published on npm and running on my portfolio.
Tech stack: TypeScript · Next.js · React · PostgreSQL · Drizzle · Tailwind CSS · Zod · better-auth · Jev · GitHub Apps · Vitest · Playwright
Turning travel preferences into a detailed itinerary often means piecing together destinations, attractions, and practical tips by hand. Travel Planner Application is an AI travel planner with local Ollama models, optional Groq models through Agno, and simple or five-phase agentic workflows that plan, research, generate, review, and improve personalised itineraries.
Built with Next.js as a modern way to turn travel preferences into structured plans, backed by a Python API and an alternative Gradio interface.
Tech stack: TypeScript · Next.js · React · Tailwind CSS · Python · FastAPI · Gradio · Ollama · Agno · Groq
Presenting engineering work online calls for a clear introduction and a memorable way to explore it. Portfolio website is my personal engineering portfolio with switchable animated London, mountain, beach, and space scenes, day/night themes, a validated contact form, and an integrated IssueRelay support widget.
Built with Next.js as a modern way to share my work, technical background, and writing through an interactive, responsive website.
Tech stack: TypeScript · Next.js · React · CSS · React Hook Form · Zod · Resend · IssueRelay · Vitest · Playwright · Netlify
→ Live Demo · Source Code
Forecasting a Premier League season usually means opaque models or guesswork. LeagueSim is a football analytics platform that uses seeded Monte Carlo simulations and an explainable Poisson model to forecast standings, title chances, European qualification, and relegation.
Built with Next.js as a modern way to simulate seasons and inspect hypothetical outcomes.
Tech stack: TypeScript · Next.js · React · PostgreSQL · Prisma · Tailwind CSS · Redis · BullMQ
→ Live Demo · Source Code
TypeScript · React · Next.js · Node.js · PostgreSQL
CSS · Tailwind CSS · shadcn/ui · React Hook Form · TanStack Query · Zustand · Konva · Leaflet · Three.js · React Three Fiber
Node.js · Python · FastAPI · Gradio · PostgreSQL · Drizzle · Prisma · Zod · Redis · BullMQ · Fastify · SSE · better-auth · Resend
Vitest · Playwright · Docker · GitHub Actions · AWS · Vercel · Netlify · Fly.io
LLM APIs · Structured Outputs · Tool Calling · RAG · MCP · Jev · Ollama · Agno · Groq
- Full-stack architecture
- API design
- Database design
- Testing and CI/CD
- Performance and observability
- AI agents and LLM applications
- Developer tooling and automation
Building and experimenting with production-ready full-stack and AI applications while deepening my knowledge of system design, cloud infrastructure and AI engineering.
I write about software engineering, AI systems, developer tooling and modern web development.
- The 5 Best MCP Gateways for Enterprise Scale in 2026
- Configuring Data Access Control (DAC) Team Level Visibility for Enterprise AI Governance
- From Vibe Coding to Vibe Computing
- LLM Guardrails in Production and How Bifrost Protects Your AI Agents at the Gateway Level
- How Bifrost's MCP Gateway Cuts AI Agent Token Costs by 92% Without Sacrificing Capability










