Dubai, United Arab Emirates · Curtin University Dubai

Hursh Javeri

I build AI systems that refuse to act until they are certain.

Third-year BSc Information Technology. Computer vision on the edge, safety guards that default to doing nothing, and pipelines that ship in shadow mode until the numbers earn the right to act.

liftsense · dispatch_mode=shadow
Live decision rows from LiftSense in shadow mode: frame, classification, confidence, the confidence floor, and the action taken.
TSFRAMECLASSCONFFLOORACTION
14:32:07.4128821EMPTY.562.800refused
14:32:07.4458822EMPTY.687.800refused
14:32:07.4788823CARGO.685.800refused
14:32:07.5118824CARGO.432.800refused
14:32:07.5448825HUMAN.510.800refused
14:32:07.5778826HUMAN.587.800refused
14:32:07.6108827HUMAN.668.800refused
14:32:07.6438828MIXED.537.800refused
14:32:07.6768829HUMAN.880.800DISPATCH
14:32:07.7098830CARGO.654.800refused
14:32:07.7428831CARGO.752.800refused
14:32:07.7758832EMPTY.589.800refused
Fig. 0.1 — Shadow mode. 41 unit tests pass, 0 lifts moved

Available for part-time and full-time roles

01 — Work

Five systems, one argument

Each of these is defined by what it refuses to do without being certain.

  1. 010 dispatched · HELD

    LiftSense

    Vision-primary lift occupancy classifier with advisory elevator dispatch.

    A wrong elevator call is a safety event, so the system is built to send nothing until it is certain — and even then, the certified lift controller decides.

    DETECTTRACKSMOOTHFUSEGUARDDISPATCH
    • Classifies HUMAN, CARGO, MIXED, and EMPTY from a single USB camera feed
    • Pipeline is camera → RF-DETR on TensorRT → centroid tracker → sliding-window median smoother → weighted-vote fusion → safety guards → dispatch adapter
    • DISPATCH_MODE defaults to shadow, so no command reaches a lift until it is switched on deliberately
    • Python
    • TypeScript
    • RF-DETR
    • TensorRT
    • NVIDIA Jetson Orin
    • Postgres
    • Mosquitto MQTT
    • Grafana
    • Docker Compose
    Fig. 1.1 — Camera to dispatch: six stages and one gate, shown clearing the floor once. In shadow mode the row is written and nothing is sent

    Read the case studyPrivate repository

  2. 02shipped

    No-Website Outreach Pipeline

    A CLI that finds businesses without a website and drafts outreach that is legal to send.

    A wrong send is a legal event, so the send stage is dry-run by default and every message must pass compliance checks before it can leave.

    DISCOVERDRAFTCOMPLIANCEDRY RUNSEND
    • Four stages — discover, draft, send, pipeline — each runnable on its own
    • Uses a minimal X-Goog-FieldMask against the Google Places API (New) to find businesses with no websiteUri
    • Drafts personalised outreach with the Claude API (claude-haiku-4-5)
    • Python
    • Google Places API (New)
    • Claude API
    • SMTP
    Fig. 2.1 — Four stages, and a send stage that is dry-run until told otherwise

    Read the case studyPrivate repository

  3. 03active

    TriAgentLoop

    An open-source harness that runs Planner, Builder, and Reviewer agents as separate roles.

    An unreviewed agent commit is a correctness event, so the roles are isolated by branch and no agent may approve its own work.

    PLANBUILDREVIEWAPPROVECHECKPOINT
    • Planner plans, Builder implements, Reviewer reviews — each in its own sandbox and on its own Git branch
    • Handoffs are an append-only JSONL log, so the decision trail survives a session ending
    • A build is merged only after a Reviewer record with approve status
    • TypeScript
    • Rust
    • Git
    Fig. 3.1 — One append-only record per role, and no merge without a review record

    Read the case studyRepository

  4. 04active

    TriAgentLoop Kanban Bot

    A Discord bot that drives a GitHub Projects board, and refuses to write to it for anyone the allowlist has not cleared twice.

    A bot with write access to someone else's board is an authorization problem before it is a Discord problem, so the role allowlist is enforced when the flow opens and re-checked at the moment of the write.

    TRIGGERALLOWLISTFLOWRE-CHECKISSUE
    • Authenticates as a GitHub App with short-lived per-installation tokens; no personal access token is stored
    • The role allowlist is enforced at the trigger and re-checked at write time
    • A rapid double-submit creates at most one Issue — the first submit claims the flow and a concurrent second is refused
    • Node.js
    • discord.js
    • GitHub Apps
    • GraphQL
    Fig. 5.1 — The role allowlist is checked when the flow opens and again at the moment of the write, and only then is an Issue created

    Read the case studyRepository

  5. 05shipped

    Discord Music Bot

    A self-hosted Discord music bot whose audio path is built out of two external programs rather than a JavaScript extractor.

    The audio path refuses to depend on anything that rots: yt-dlp resolves metadata only and ffmpeg reads the media URL itself, so when YouTube rotates its player, updating one pinned binary is the whole fix.

    FETCHCHECKSUMPREFLIGHTRESOLVESTREAM
    • Fourteen slash commands, and no Lavalink, no Java, no Python and no native Opus or sodium package — Node 22's aes-256-gcm covers voice encryption and ffmpeg does the Opus encoding
    • The install script downloads the pinned binary and the SHA2-256SUMS file from the same release, verifies the checksum, and refuses to install a binary that does not match
    • Preflight checks ffmpeg, the opus muxer, yt-dlp and the environment before the bot logs in
    • Node.js
    • discord.js
    • @discordjs/voice
    • yt-dlp
    • ffmpeg
    Fig. 6.1 — A pinned binary, its checksum from the same release, and a preflight that refuses to log in until ffmpeg, the opus muxer and yt-dlp all answer

    Read the case studyNo repository

02 — About

Restraint under consequence

I am a third-year BSc Information Technology student at Curtin University Dubai, and the through-line of everything I build is the same: work out what the cost of being wrong is, then design the system so it cannot pay that cost by accident.

In a lift, a wrong call is a safety event, so the classifier ships in shadow mode and the certified controller keeps the decision. In cold outreach, a wrong send is a legal event, so the sender is dry-run by default and a message that fails compliance never reaches the transport. In an agent harness, an unreviewed commit is a correctness event, so the roles are isolated and nothing merges without a review record.

The interesting engineering is rarely the model. It is the guard in front of it.

Based in
Dubai, United Arab Emirates
Studying
BSc Information Technology, Curtin University Dubai · 2025 — 2027
Languages
English (Fluent) · Japanese (JLPT N5)

03 — Skills

What I actually use

Engineering

  • Python
  • Red Hat Linux
  • AWS Cloud

Tools

  • Figma
  • Apollo
  • Toggl

Working with people

  • Client relationships
  • Team leadership
  • Conflict resolution
  • Time management
  • Situational analysis
  • Communication

Languages

  • English — Fluent
  • Japanese — JLPT N5

04 — Credentials

Verifiable, or not listed

Where an issuer publishes a verification link, it is here. Where one does not exist, the entry says so rather than implying one.

  • AWS Academy Graduate — Cloud Foundations

    Amazon Web Services · August 2026

    A 20-hour programme covering core AWS services, cloud architecture, security, and pricing.

    Verify

  • Red Hat System Administration

    Red Hat · 2025

    Hands-on Red Hat Enterprise Linux administration — users and permissions, services, storage, and networking.

  • Foundation Programme certificate

    Middlesex University Dubai · 2023

    Completed the foundation programme and graduated with Honours.

    Certificate

05 — Timeline

Where I have been

  1. 2025 — 2027education

    BSc Information Technology

    Curtin University Dubai

    • In progress. Third year begins on 31 August 2026.
  2. 2025 — presentwork

    Founder

    LiftSenseAI

    • Building a vision-primary lift occupancy classifier that advises elevator dispatch and defaults to sending nothing.
    • Owning the whole path: detector on the edge, tracking and smoothing, the safety guards in front of dispatch, and the audit trail behind it.
  3. 2024 — 2026work

    Head of Marketing

    Appscreated

    • Grew the company Instagram from 0 to 1,000 followers with daily code snippets and short informative posts.
    • Acted as key point of contact for corporate clients and managed those relationships.
    • Produced graphic design assets and ran the marketing calendar.
    • Streamlined internal workflows and prospecting with Figma, Apollo, and Toggl.
  4. 2022 — 2023education

    Foundation Programme

    Middlesex University Dubai

    • Graduated with Honours.
Fig. 4.1 — Study, work, and the system each period produced, most recent first

06 — Contact

Reach me directly

Email is the fastest route, and the address is written out below so it works whether or not your machine has a mail client set up.

Email

hurshm05@gmail.com