System · Operational

London

Akhil Jose

Full-stack engineering · Applied AI · Systems design

Building operational systems from first workflow to production.

Core

Offline-first site ops

Construction site operations that keep working when connectivity drops. Shipped as a PWA and React Native app.

Inductions, timesheets, safety reports, inspections, and access control still have to happen on sites with weak or no network. Always-online tools fail in the field, and compliance checks like CSCS or DVLA are hard to run offline.

Galldris Core writes locally first, queues changes, and syncs when the network returns. One product shape across web and mobile for site teams who cannot wait on signal.

  • Digital inductions with DVLA / CSCS verification
  • Timesheets, attendance, and near-miss reporting
  • Deliveries, inspections, and custom checklists
  • Asset / vehicle tracking and site entry-exit control
  • Offline path: IndexedDB (web) and SQLite (mobile), with an auditing.sync_queue for pending writes.
  • PostgreSQL multi-schema layout (core, projects, inductions, tools, auditing) with schema-level roles.
  • Shared client patterns across PWA (Workbox) and React Native.
  • On-prem Kubernetes deployment path; Docker Compose for local development.
  • React
  • Vite
  • React Native
  • Node.js / Express
  • PostgreSQL
  • Redis
  • Kubernetes
Users
1,500+
Sites
23+

Live across 23+ sites.

Hub

On-prem work-winning platform

Pre-construction opportunity and bid management on company infrastructure, with on-prem LLM retrieval over internal documents.

Bid teams need one place to track opportunities, deadlines, documents, and reusable responses. Tender material is sensitive IP, so answers and corpus data have to stay inside the organisation.

Galldris Work Winning Hub is a self-hosted web app for opportunity-to-bid workflow, document handling, analytics, and role-based collaboration. Teams can ask questions over internal knowledge using an on-prem LLM, with processing kept on local infrastructure.

  • Opportunity-to-bid tracking with typed bid stages and deadlines
  • Authenticated document storage for specs, proposals, and meet packs
  • On-prem LLM Q&A over uploaded bids, lessons, and response material
  • Six-tier RBAC, pipeline analytics, and win/loss forecasting
  • On-prem Docker deployment: React frontend, Node API, PostgreSQL, Nginx ingress; no public file URLs.
  • Security defaults: session auth, CSRF, CSP/HSTS, rate limits, 2FA, password history, and security audit logs.
  • Knowledge pipeline chunks internal documents for retrieval; chat runs against a local LLM with no cloud model calls for that path.
  • Response blocks and activity notes sit alongside RAG so bid reuse works in structured workflow as well as Q&A.
  • TypeScript
  • React
  • Vite
  • Node.js / Express
  • PostgreSQL
  • Drizzle
  • Docker
  • Nginx
  • Local LLM

PassMate

Voice-to-report workflow

Instructors record spoken lesson feedback; the system drafts a structured report; nothing reaches the learner until a human confirms.

Spoken lesson feedback is easy to give and hard to turn into consistent written reports. Automating the draft helps. Automating the send without review does not.

A mobile + API product for lesson feedback: capture audio, draft a structured report with speech-to-text and an LLM, then hold in review until the instructor edits and confirms delivery.

  • On-device recording into an async draft pipeline
  • Structured report fields: faults, severity, remedies, and summary
  • Hard review gate: send only from AWAITING_REVIEW
  • Delivery orchestration with status and retry handling
  • Backend enforces state transitions: edit and send are rejected outside AWAITING_REVIEW.
  • Forced structured generation keeps drafts schema-conformant before human review.
  • Async worker processing so mobile clients are not blocked on transcription or drafting.
  • Channel outcomes tracked separately so failed or skipped delivery can be retried without redoing the draft.
  • TypeScript
  • React Native / Expo
  • NestJS
  • PostgreSQL
  • Speech-to-text
  • LLM
  • Object storage
  • Email / messaging APIs

Atlas

Plant and fleet operations

Construction plant and fleet hire workflows with role-gated state changes, evidence capture, and a clean handoff into accounts.

Hire desk, transport, yard, and accounts each touch the same job through different actions. Requests, dispatch, returns, timesheets, and finance export have to stay consistent when field evidence and desk approvals collide.

ODG Atlas is a modular plant-and-fleet operations platform: requisitions through transport and returns, signed timesheets, purchasing, and atomic accounting export. Desk and field actions share one permissioned workflow.

  • Requisition lifecycle with item images and approval
  • Transport dispatch, ordered stops, deliveries, and returns with evidence
  • Operated-hire timesheets with signed-scan submit rules
  • Atomic supplier-invoice export for reconciled batches
  • Route-level RBAC with resource:action guards across desk and driver-facing paths.
  • Idempotent mutations on collection and problem capture so retries do not double-apply field events.
  • Finance export writes the CSV and stamps invoices as posted in one transaction.
  • Multi-schema tenant-aware data access with audit logs that store change data and reason.
  • React
  • Vite
  • Express
  • PostgreSQL
  • Redis
  • Socket.IO
  • Docker
  • Nginx

Auction

Live event bidding

A venue fundraising auction where concurrent bids, sniping, and flaky WiFi all have to resolve to one honest high bid.

Guests bid from phones on event WiFi while a projector shows live lots and the desk runs timers. Two bids can arrive at once, clocks drift, connections drop, and settlement still has to happen offline after the night ends.

Galldris Golf Day Auction is a mobile-first live auction PWA: QR registration, realtime lots, anti-snipe timers, outbid SMS, projector leaderboard, and a CSV ledger for offline payment reconciliation.

  • Atomic bidding with row locks so concurrent bids cannot double-win
  • Anti-snipe extend in the final window, driven by server time
  • Socket reconnect that refetches full lot state after WiFi blips
  • Admin lot control, bid retraction, and post-event ledger export
  • placeBid runs high-bid check, increment rules, anti-snipe extend, and insert inside one FOR UPDATE transaction.
  • Countdowns use a server-time offset so phone clock skew cannot fake a late bid.
  • Outbid SMS queues with a per-user-per-lot cooldown, plus log-only mode when the SMS provider is unset.
  • Pause stores remaining_ms so resume keeps the same countdown guests already saw.
  • React
  • Vite
  • Express
  • PostgreSQL
  • Socket.IO
  • SMS
  • Docker

About

Full-stack and AI engineer · London

I own products from discovery through production: React and Node platforms on PostgreSQL, plus LLM features with human review where it matters.

Recent work spans offline-first site operations, on-prem bid and knowledge systems, plant-hire workflows, realtime event software, and a founder-built instructor product with voice-to-report AI. Strong at turning ambiguous operational problems into reliable software under real constraints.

Contact

Have a system worth building?

Open to full-stack and applied AI roles. Based in London.