Skip to content

James Langridge

I'm a self-taught software engineer with an unorthodox background: over a decade as a lawyer-linguist first, where I sharpened the problem-solving and precision I now bring to code. I work in depth with TypeScript (React, Next.js) and Node, and I've written a good amount of C# and Angular over the last couple of years. The projects below aren't demos; they're live, and real people use them.

James Langridge

Selected Personal Projects

Mars Vista

A production REST API serving 1.5M+ NASA rover photos across four missions, with Redis caching and a searchable frontend. Handles ~174K requests/month from frontend users and 76 API users at ~40ms average response (151ms P95).

C#/.NET 9PostgreSQL + JSONBRedisEF CoreREST APINext.jsDocker
Rain Or Shine

A Strava-approved app that adds the weather where you actually were — computed at the route's midpoint from your GPS data, not just the start. ~40 active users.

TypeScriptReact 19Express 5PostgreSQLStrava APIWebhooksDocker
strava-sdk

An open-source TypeScript SDK for the Strava API, extracted from Rain or Shine and published to npm (~880 downloads): typed client, OAuth, webhook management, pluggable token storage, and built-in rate limiting.

TypeScriptnpm packageOAuthWebhooksRate LimitingESM/CJS
TrainerLedger

A multi-tenant SaaS for personal trainers. Google Calendar stays the schedule; TrainerLedger turns it into the billing ledger: read-only sync, client matching, monthly invoicing, and Stripe-billed self-serve signup, with tenant isolation enforced in the database via Postgres RLS.

ReactTypeScriptHonoPostgres RLSStripeGoogle Calendar APIBetter AuthPlaywright

Ebook RAG Chatbot

A retrieval-augmented chatbot over my ebook library — ask questions, get answers grounded in the actual text with source citations. Handles document ingestion, chunking, embeddings and vector search.

RAGEmbeddingsVector searchLLMTypeScript