Software & automation — Istanbul / remote

Software builtto fit how youalready work.

I design and build software for companies that need something fitted to how they actually work — internal tools, automations that remove the repetitive middle of a process, and full SaaS products from schema to interface.

Nourin Sahlabji

What I buildfor clients

Four kinds of work.

Selected work

2025 — 2026

01

An ADL smart home for Alzheimer's safety and caregiver burden reduction

A research project in ambient assisted living (AAL), addressing safety and caregiver burden for people living with Alzheimer's at home. The central constraint came out of the literature rather than out of preference: visual surveillance is where acceptance collapses, and the highest-risk rooms are the ones a camera is least tolerable in. So the system senses ambient, non-visual signals only — no cameras, no always-listening microphones — and the engineering problem becomes inference under that constraint.

Activities of daily living (ADL) are read as evidence, never as proof. An opened medication box records an interaction, not a swallowed dose. A stove on is ordinary until the kitchen is empty. A finite-state rulebook resolves that evidence into an explainable care state. The simulation exists to verify the rulebook — the home is modelled in Unreal Engine so scenarios are injected and replayed identically, which is how care rules get tested before anyone's safety depends on them.

Unreal EngineAmbient sensingFinite-state modellingApplied research

The simulation is not the product. It is the instrument for testing whether the care rules hold.

02

JobPilot — a job platform with a browser agent that researches the employer

A full-stack job application platform. It pulls listings from a jobs API, scores each one against your stored profile, and — the part actually worth building — dispatches a real browser to the employer's own website to research them before you apply, returning a structured dossier instead of ten open tabs.

The constraint that shapes the whole build is that every model call has to return something a database column can hold and a component can render. Résumé parsing, job scoring and company synthesis all produce typed structured output rather than prose, so a bad generation fails validation at the boundary instead of arriving as convincing text in the wrong shape.

Next.jsTypeScriptBrowserbase & StagehandStructured LLM outputPostHog

Finding the jobs is an API call. Knowing who you are actually applying to is the part that needed an agent.

03

Ghost AI — a canvas where the AI designs the system with you

A collaborative system design tool for engineers. Several people edit one architecture diagram at once over a shared Liveblocks document, so nodes, edges and cursors are conflict-free shared state rather than local state synchronised by hand. An AI agent works in the same room as another editor: describe a system in prose and it returns validated canvas operations, applied through the same mutation path a human drag uses.

The diagram is not the deliverable. A second model pass serialises the finished graph into a markdown technical specification — the document an implementation agent is handed.

Next.jsTypeScriptPrisma & PostgreSQLLiveblocksTrigger.dev

The agent is not a button beside the canvas. It holds presence in the room and edits through the same API a human does.

04

Teyit — document intake with an explicit confidence boundary

Supplier invoices and receipts arrive as PDFs, scans and phone photographs in Turkish, Arabic or English, and come out as validated structured records. The extraction is the commodity half.

The product is the confidence boundary. Every field carries a confidence and a reference back to the region it was read from, deterministic arithmetic runs over the model's output, and each document ends up committed, held, or rejected — never silently guessed at, and never quietly parked on a person who was not told they had become the review step.

In development
Document AITurkish · Arabic · EnglishHuman-in-the-loopSelf-hosted

The model proposes; arithmetic disposes. That is what makes a non-deterministic extractor safe to trust.

05

Vardiya — a scheduler that encodes the rules instead of approximating them

Shift and crew scheduling for a business whose real constraints do not fit an off-the-shelf product: who is qualified for which job, the rest legally owed between shifts, overtime thresholds, travel between sites, who cannot be rostered together.

The board is the commodity half. The rules are encoded rather than approximated — the tool will not emit an invalid roster, and when it refuses it names the rule, the people and the hours, then offers the smallest change that would make the roster legal.

In development
Constraint solvingTypeScriptPostgreSQLOperations tooling

Configurable is not the same as correct. The last tenth of a business's rules is where the whole cost lives.

Toolkit

Front-end
TypeScript, JavaScript, React, Next.js, Tailwind CSS, HTML5, CSS3
Back-end
Node.js, Java, Spring Boot, .NET, Python, Prisma, REST APIs
Data
PostgreSQL, MySQL, MongoDB, SQL
Tools
Git, GitHub, Chrome DevTools, Arduino, Unreal Engine
Spoken
Arabic (native), English (professional), Turkish (professional)

About

I am a Computer Engineering graduate based in Istanbul, working in Arabic, Turkish and English.

Most of what I have built, I built with other people. The research project was a team of three, and before that I worked as a translator.

I have also worked in the IT department of a steel plant, which is a fast way to learn that software people will not use is the same as software that does not exist.