Reliable AI agents in software systems
Agent architectures with explicit permissions, validation layers, recovery paths, and execution traces a human can actually read.
Software systems engineering · Applied AI · Distributed systems
I build and operate production software systems — distributed backends, payment infrastructure, real-time platforms — and I want to study how those systems should be designed once parts of them are written and operated by AI.
Six years of shipping software that is not permitted to fail has left me with questions production work cannot settle on its own: how an autonomous change should be verified before it reaches users, how to bound what an agent is allowed to do, and how to separate a reasoning failure from a tool failure when something goes wrong. Those questions are what I want to take into graduate research.
My interest is in the reliability of software systems that language models participate in building and operating — not whether a model can produce a working change, but whether that change can be checked, constrained, attributed, and safely rejected.
I came to this from the operational side. Owning a payment gateway teaches you that correctness is not a target but a precondition; running a multi-tenant platform teaches you that isolation failures are found by users rather than by tests. When I began putting language models to work against these same systems, the interesting failures were not wrong answers — they were confident actions taken on incomplete state, and the absence of any record adequate to reconstruct why. Production gave me the problem; it cannot give me the method. That is what I am looking for in graduate study.
Agent architectures with explicit permissions, validation layers, recovery paths, and execution traces a human can actually read.
Evaluating model-generated changes in mature codebases against the criteria engineers actually apply: regression risk, maintainability, security, and operational cost.
Detecting incorrect actions, hallucinated assumptions, unsafe tool use, and failure modes that surface only in long-running workflows.
System behaviour across APIs, databases, queues, caches, and event-driven services, and how that behaviour changes when an autonomous component sits inside the loop.
Constraining capability through scoped credentials, authorization boundaries, policy checks, and auditable tool access.
Research-adjacent projects
A convolutional classifier for dermoscopic images of moles, trained to separate benign lesions from those warranting review. The genuinely difficult part was not the network but the evaluation: in a screening context a false negative and a false positive carry very different costs, so the choice of operating point — not headline accuracy — decides whether the model is useful at all.
Python · deep learning · convolutional networks · medical image classificationAn interactive comparison of shortest-path algorithms on a grid — A*, Dijkstra, and breadth-first search — animating frontier expansion step by step, so the difference between an informed and an uninformed search is something you watch rather than something you are told.
JavaScript · A* · Dijkstra · breadth-first search · heuristic searchA notification library for React, published on npm under the MIT licence and used in production applications. Maintaining a public package makes the API the product: every change is a compatibility decision taken on behalf of people who already depend on it, which is a different discipline from writing code only your own team consumes.
React · TypeScript · npm · MITProduction systems
A delegated-Umrah marketplace matching requesters with providers on the ground in Mecca. Matching is geospatial, handled in PostGIS; fulfilment runs through a background job pipeline so that a slow provider response never blocks the request path; and order state streams to both parties over websockets. Built as a Dockerised monorepo — an API, a public web app, and an admin console sharing one type contract.
NestJS · Next.js · PostgreSQL / PostGIS · Redis / BullMQ · Socket.io · Turborepo · DockerPayment-gateway infrastructure that merchants integrate to accept payments across their own sites and applications, with a merchant dashboard for reconciliation. This is the clearest case for the reliability questions above: retries have to be idempotent, a partial failure has to resolve to exactly one outcome, and every state transition has to be reconstructable long after the fact.
NestJS · Next.js · TypeORM · PostgreSQL · JWT / OAuth 2.0 · OpenAPIA social live-streaming and short-video platform with broadcasts, voice rooms, and a gifting system. Real-time media imposes a hard latency budget on everything at once — ingest and transcoding, presence tracking, and event fan-out to an audience — and which of those binds first changes with the shape of the room.
Next.js · Laravel · Agora · WebSockets · Redis · FFmpegA management platform for a humanitarian organisation, with a Flutter mobile client over a REST backend. Tenancy is the architectural question here: each organisation runs on isolated data under its own configuration, and that isolation has to hold at the query layer rather than by convention.
Flutter · Dart · REST · multi-tenant data isolationA restaurant platform where diners scan a QR code to browse, order, and pay at the table while owners run service from a central dashboard. Orders route to the kitchen in real time, which makes ordering less a form-submission problem than a small distributed workflow with its own failure states.
Next.js · TypeScript · Turborepo · DockerFurther work includes Nestro (a smart-home control panel with AI-assisted automation suggestions), Secure-Today and Linkcom Tech (bilingual Arabic/English corporate platforms), and contributions to the iHealth & Wellness member platform.
This page lists no publications, because I have none yet. Everything above is work I have done and can evidence — source code, a deployed system, or a credential that can be checked.
I am glad to discuss research fit, or to talk through any of the systems above in more detail.