Assistant Manager, AI · Stingray Tec

Hafiz S M
Rayyan Alam

Most AI demos fail the same way: they answer confidently, they answer wrong, and you only find out afterwards. I work on the boundary: which parts of a system are allowed to be a language model, and which parts must be code you can test.

Hafiz S M Rayyan Alam
Flagship, case study

Government Service AI Navigator

A citizen types "mera CNIC gum hogya hai, Karachi mein hun" and gets a personalised, source-cited action plan: which service, which branch, which documents they specifically still need, which office, what happens next. English, Urdu and Roman Urdu.

● Live deployment Source on GitHub Next.js 15 · PostgreSQL · pgvector

🔒 The language model never supplies a government fact.

Not a fee. Not a deadline. Not a document name. Every such fact traces to a database row or a retrieved chunk of an official document, and carries its source to the screen. The model detects intent, phrases questions, and translates, and nothing else.

The test for whether that boundary actually holds: swap the model for a template renderer, are the answers still correct? They are. LLM_PROVIDER=mock runs the entire system that way, and the evaluation suite still passes.

51
scripted citizen scenarios, 3 services, 3 languages
0
unsupported claims across the whole suite
100%
document F1 and scenario identification
4.5
questions asked on average per citizen

🎯 The interview only asks what matters

Before asking anything, it simulates every possible answer and compares the outcomes. If a question cannot change the result, it is never asked. That is real information gain over the rule set, not a shortened form.

🔍 An output verifier that fails the build

Every rendered number, duration, count and URL is scanned and rejected if it is not traceable to a stored fact, including digits that drift during translation. CI fails if one slips through.

🤲 Blanks beat plausible inventions

Unverified fees ship as NULL and render as "not verified, confirm at the counter." A number that looks right and is wrong costs a citizen a wasted trip.

⚖️ Three-valued logic underneath

Eligibility is computed in code with true / false / unknown, so "not yet asked" is never confused with "no". Most of the safety properties fall out of that one distinction.

Next.js 15TypeScriptPostgreSQL pgvectorHybrid RAGDocker GitHub ActionsVercel110 tests
Experience

Where I’ve worked

Production AI, applied research, and the full-stack groundwork underneath both.

Assistant Manager, AI

Stingray Tec
2026, Present

Leading the design, development and deployment of production AI systems: computer vision, generative AI and LLM applications built to run in the field, not to demo.

  • Real-time computer vision over live video: custom-trained YOLO models, object detection, tracking, and vision-based analytics.
  • Research and implementation of monocular distance estimation, depth estimation and object localisation for real-time perception.
  • LLM-powered applications, RAG pipelines and agentic workflows, served through Python and FastAPI inference and backend services.
  • Ownership across the whole lifecycle, data preparation, model development, inference, integration, optimisation, deployment.
  • Systems designed around accuracy, reliability and evaluation under real deployment constraints, rather than proof-of-concept demonstrations.
Computer VisionYOLOPyTorchFastAPI RAGAgentic AIPython

Research Assistant, Generative AI in Education

FAST-NUCES
Summer 2025

Researched where generative AI genuinely helps in higher education, and where it does not.

  • Investigated LLM-based tools for teaching, assessment, knowledge assistance and student productivity.
  • Evaluated emerging generative AI approaches and how they might integrate into real academic workflows.
LLMsApplied researchEdTech

Full Stack Developer Intern

XOLVA
Summer 2023

Built and maintained full-stack applications end to end, the groundwork the AI work sits on.

  • Developed full-stack applications with React.js, Node.js, Express and PostgreSQL.
  • Designed and implemented REST APIs and backend services.
  • Contributed to database architecture, application logic, and frontend/backend integration.
ReactNode.jsExpressPostgreSQL
How I build

Four things I hold to

These are not preferences. Each one is the reason a specific class of bug cannot happen.

01

Deterministic where it counts

Eligibility, document lists and readiness verdicts are computed by code from database rows, never generated. If a language model cannot invent it, a language model cannot get it wrong.

02

The fallback is a feature

"We could not verify this, here is the office that can" is a designed output with its own copy and its own tests, not an error path. It earns more trust than being confidently wrong once.

03

Measure what you claim

"Grounded" means nothing without a number attached. So there is a harness, the targets are absolute, and continuous integration fails the build if a single unsupported claim gets through.

04

Write down what you don't know

Every unverified fact in the knowledge base is labelled unverified, on screen, with the source it still needs checking against. Uncertainty that is visible can be acted on.

Selected work

Other things I've built

Toolkit

What I actually use

Tools I use in production work and in shipped projects, not a list of things I have read about.

AI & Machine Learning

PyTorchHugging Face Transformers scikit-learnNumPy PandasHybrid RAG pgvectorJupyter

Computer Vision & Perception

YOLOOpenCV Object detectionObject tracking Depth & distance estimationReal-time inference

Languages

PythonTypeScript JavaScriptSQL C++C

Backend & Data

FastAPIFlask Node.jsExpress PostgreSQLPostgres full-text search

Frontend & Delivery

Next.jsReact Tailwind CSSDocker GitHub ActionsVercelLinux
Get in touch

Open to interesting problems

Especially perception systems that hold up outside the lab, retrieval that knows when it has found nothing, and evaluation harnesses that fail loudly. Reach me by email or on LinkedIn.