AI-NATIVE SOFTWARE ENGINEER · STOCKHOLM → REMOTE, WORLDWIDE

Aziz Ali

I build AI-agent systems that ship — and keep them running after launch.

SYSTEM PRODUCTS KNOWLEDGE
live map of my agent stack — hover a node · click to jump
SYSTEM AT A GLANCE │ 183 agent sessions logged · 15 projects · 2 products in production · 18 custom skills · 863 docs indexed
01FLAGSHIP WORK

Flagship work

SHIPPED — iOS APP STORE

Kap

AI grocery-deals app for Sweden — weekly deals from 2,900+ stores, live on the App Store and operated since launch.

Expo / React NativeBun + HonoGeminiSQLiteDockerHetzner
01Gemini function-calling agent over nine server-side tools — it may cite only deals a tool returned, so it cannot quote a price it never fetched
0213-check golden-query eval suite runs the real agent path after every ingest; an accuracy gate refuses the database write when 2% or more of deals fail price or discount checks
03Operated, not just shipped — Docker on a Hetzner VPS, health alerts with a dead-man ping, four-layer rate and cost control, weekly backup restore drill
Kap: asking the AI assistant for this week's deals in Swedish Kap: the AI answer with cited deal cards and prices Kap home screen with this week's flyers from Swedish grocery chains APP STORE BUILD 1.2.0
ask → cited answer → home
Zero to App Store in 48 hours — v1 built in one day, Apple approval in ~24 hours; iterated through 1.2.0 across store-review cycles since.
Structural citation safety — the agent validates every claim against a per-request registry of what its tools actually fetched; it cannot cite a price it never retrieved. Capped at five model rounds and eight tool calls inside a wall-clock budget.
Hybrid Swedish deal search — 768-dimension Gemini embeddings stored in SQLite and ranked by dot product, fused with a lexical token scorer through Reciprocal Rank Fusion.
Reconciliation harness — asks the source what should exist, the database what does, and names every difference; caught five real defects, including an entire store chain silently missing.
Survived a real production incident — a 4-day silent ingest outage root-caused overnight by a 9-agent forensic fleet; hardening shipped the same night.
Cost control as a data model — per-device token bucket, per-IP daily and burst limits, and a global daily Gemini ceiling, persisted in SQLite with synchronous check-and-increment.
Swedish price law as a data model — jämförpris, multi-buy decomposition, and member pricing are first-class fields, never parsed prose.
PRIVATE INFRA — RUNNING 24/7

HQ

Self-built agentic OS — the production dashboard every one of my Claude Code sessions reports into.

Next.jsWebSocketsSQLiteCloudflare AccessTailscale
01Live telemetry from every session via a custom hook pipeline — 9 lifecycle events over authenticated webhooks
02WebSockets + SQLite; zero open ports — Cloudflare Access → gate VPS → Tailscale → the machine that runs things
03Behind Cloudflare Access on purpose: it holds my transcripts, so the hero map above is the public view of it
Built by a 15-agent fleet — researchers → planners → adversarial checkers → 15 executors → verifiers; the checker stage caught three integration gaps that 948 passing tests missed.
A human gate on AI memory — the Learning Layer reads session transcripts and proposes knowledge entries; a human approve-click is the only path that writes anything.
Hardened web terminal — a phone-driven tmux session behind a CVE-threat-modeled spawn: single-use 45-second challenges, fail-closed with no default secret.
Privacy-first vault graph — renders the whole second brain as a live force graph while note bodies never leave the machine.
Zero open ports — Cloudflare Access → gate VPS → Tailscale → the machine that actually runs things.
PRIVATE — RUNS MY JOB SEARCH, DAILY

career-hq

Governed job-application pipeline — agents find, score and draft; hooks guard the files; a human submits every application.

Bun + HonoReactClaude Code hookszodPython
01Every state change goes through one CLI — atomic file writes under locks into a zod-validated, append-only activity log that records actor and before-hash
02Hooks refuse agent edits to protected frontmatter and machine-owned ledgers; marking anything “applied” or “sent” needs the human actor or a quoted per-application grant
03LLM triage runs in shadow mode behind an eval loop — human labels, per-key accuracy and AUC scorecards, prompt promotion only when no metric regresses
Headless Claude Code inside the dashboard — one process per turn, stream-json over stdin/stdout, session resume, allowlisted tools, every event streamed to the browser over SSE.
Agent task runner with hard limits — queued requests run one at a time as headless Claude Code with a narrowed tool allowlist, path containment, turn and wall-clock limits, and durable run logs.
A loopback API, still hardened — Host allowlist against DNS rebinding, required JSON content type, a custom client header and an Origin check on every write.
Feeds, not scraping — Python ingestion from the public Ashby, Greenhouse, Lever and Workable board APIs plus remote boards, under one shared throttle, a run-time budget, retries and dedupe.
Tested without a signed-in CLI — 40 Bun test files for the CLI, core and server, 88 Vitest specs for the dashboard, fixture-replayed agent streams.
Secrets never leak through errors — SDK-free typed LLM client with timeouts and backoff that redacts the bearer key from every error message, captured body and stack trace.
ALSO BUILT
IN PRODUCTION — CLIENT WORK

FlowStaff

Production website + admin CRM for a real Swedish staffing company — with AI drafts grounded in the prospect's record.

Next.jsSupabaseRate limitingCSP
Real client, real outage, same-day recovery — a live login failure traced to three compounding causes, fixed in one PR, then written into standing engineering rules.
14 production PRs in one day — security headers, rate limiting, magic-byte upload verification, secret scanning on every commit.
AI drafts with a human in the loop — CRM endpoints ground Gemini on a prospect's record and recent activity, demand JSON-mode output, reject malformed replies with a 502, and save drafts to the timeline for review.
Process where tooling was missing — hook-enforced branch protection standing in for an unavailable paid GitHub feature.
FULLY LOCAL — CV + AUDIO ML

sleep-watch

Privacy-first computer-vision sleep monitor — motion and voice-activity ML with zero cloud dependency.

OpenCVSilero VADONNX Runtimeffmpeg
Two independent senses — adaptive frame-differencing for motion, a voice-activity model scoring audio 31 times per second for sound; ML kept out of the reliability-critical path on purpose.
Shipped in one evening — spec → tests (a fake camera and fake clock simulate whole nights in milliseconds) → dashboard, verified before the first real night ran.
Tuned on reality, not theory — event semantics rebuilt from five real nights of false positives and negatives; one physical turn now counts as one event, not three.
Auto-generated night reports — event clips and summaries, everything stays on the machine.
iOS — ON-DEVICE · IN DEVELOPMENT · BUILT SOLO

Speakly

iOS keyboard running an on-device 1.7B LLM via MLX for live transcript cleanup.

SwiftMLX1.7B on-deviceiOS keyboard
An LLM inside a keyboard's 70MB ceiling — the extension loads no ML at all; the main app runs the model and streams results across the process boundary.
IPC that survives reality — staleness-checked payloads, per-ping response slots, and an audio-session heartbeat standing in for a liveness API Apple doesn't provide.
A five-root-cause debugging saga — streaming speech-to-text failed for five stacked reasons; the last was one wrong enum silently resetting the recognizer after every audio buffer.
Pragmatic model choice — dropped Apple's safety-tuned on-device model when it refused ordinary cleanup prompts; swapped in an open-weight MLX model mid-build.
02THE SYSTEM

Most people use AI coding tools. I built infrastructure around mine.

SKILLS18

Skill library

18 custom skills, including an anti-generic-design suite.

HOOKS→ HQ

Hook telemetry

9 lifecycle events stream every session into HQ, live. The same hook layer guards career-hq's files.

MEMORYgated

Governed memory

Typed files with explicit write-gates.

QMD863

Local retrieval

Hybrid RAG wired over my second brain — BM25 + embeddings + HyDE, 863 documents.

FLEET3→15

Fleet orchestration

Investigator, builder, reviewer, verifier — scaled from 3 to 15 parallel agents across the year.

SESSIONS183

Session log

183 build sessions, logged and searchable.

GSD12

Phase pipeline

12 specialized agents drive plan→execute→verify on infrastructure builds.

CONTENT→ KAP

Content pipeline

AI video-production skills (third-party engine) — built Kap's App Store marketing kit.

same nodes as the hero — the map is the system
03ABOUT

M.Sc. Computer Science studies at KTH Stockholm, on leave — I chose shipping over finishing. Before that, 11 months as a software-engineer intern at Cepheid, working in Java Spring Boot and SQL. Swedish, English, Kurdish, Arabic — based in Stockholm, working remote worldwide.

KTH STOCKHOLM · CEPHEID · SV / EN / KU / AR · UTC+1
04CONTACT

Open to Forward Deployed / Applied AI Engineer roles — remote, any timezone.

[email protected] ↗
LinkedIn ↗ GitHub ↗ CV (PDF) ↓