Ali Haider Nadeem

Senior Full-Stack AI Engineer

Senior full-stack AI engineer. I build LLM features people can check, from agents and RAG to evals with a known cost per call, in Type­Script and Python, and I own them from a loosely defined problem to a shipped, measured feature. Five years in, remote since 2023 with teams in the US and the UAE. Today I work on Backstock at XFinLabs, fully asyn­chro­nous with a team in Cali­fornia.

Open to full-time or contract roles. Remote, UTC+5.

  • TypeScript
  • React
  • Next.js
  • Vue
  • Node.js
  • Python
  • Django
  • FastAPI
  • LLM agents
  • RAG
  • PostgreSQL
  • AWS
Ali Haider Nadeem, looking off to the side, in front of greenery.
Hover for colour. Click to swap photo and text.

Work

Eingang

Every supplier invoice: checked, explained, approved.

Eingang: Every supplier invoice: checked, explained, approved.

An open-source inbox for supplier invoices, built for small German businesses as e-invoicing becomes mandatory. It tells an XRechnung from a ZUGFeRD hybrid from a plain PDF, validates real e-invoices against the official KoSIT rules, and explains each failed rule in plain language. Plain PDFs are read by an LLM, and every value it returns shows the line it came from and how sure it is.

The model only reads; code computes and checks. Sixteen business checks catch duplicates, a changed bank account, totals that do not add up, and a PDF that disagrees with its own XML. Nobody approves an invoice they reviewed themselves, and approved invoices leave as a CSV and a ZIP of originals for the tax advisor. Each document runs as its own durable Temporal workflow, so a slow model call or a worker restart picks up where it stopped.

match with the official KoSIT validator
100%
same verdict and failed rules on 176 test files
AI cost per invoice
$0.000321
median extraction 4.7 seconds
backend tests
1,521
97% line coverage, plus 308 frontend and 5 end-to-end
Open the Eingang case studyDemo video, 7 screens, role, and stack

Built with Python, Django, Django REST Framework, Temporal, PostgreSQL, OpenAI API, Vue 3, TypeScript, Vitest, Playwright.

Open source (MIT). The live demo runs on sample data with AI extraction switched off for uploads, and may be paused between demos. No production users yet.

Backstock

Every location. One inventory.

Backstock: Every location. One inventory.

Inventory management for sneaker and streetwear resellers: a Next.js web app and a Flutter mobile app on top of .NET services and Salesforce. Replaces the spreadsheet with a live dashboard, bulk listing, condition grading, multi-location stock, CSV import, and a single inbox for offers with profit already calculated.

I own features end to end: the Next.js client, the .NET services behind it, and the Salesforce sync that keeps inventory current without anyone re-keying it. The shared component library I built standardized the B2B screens and cut delivery time by a quarter.

The mobile app is Flutter, built for the reseller who is grading a pair in a warehouse aisle rather than sitting at a desk. Everything ships asynchronously with a team twelve hours away: written specs, PR-driven review, and progress notes instead of meetings.

Ledgic

Paper goes in. Posted comes out.

Ledgic: Paper goes in. Posted comes out.

Open-source accounts-payable automation for operators running many locations on one ledger. Supplier invoices arrive as PDFs or phone photos from the receiving dock. A vision model reads every field and reports how sure it is, and code checks each line against the purchase order, the goods receipt and the contract price. Clean invoices post to QuickBooks or NetSuite with no human touch. Everything else waits in an exception queue with the evidence and a recommendation attached.

The model reads; it never decides. Every money figure, verdict and recommendation comes from plain Decimal code, and three agents built on the OpenAI Agents SDK work around it. One turns page images into a strict schema with a confidence for each field. One drafts vendor notices with tool calls, and the draft is thrown away if it contains a dollar amount the match engine did not produce. The Ask Ledgic copilot answers from contracts and policy through hybrid retrieval, pgvector and Postgres full-text search fused by rank, and names the clause it relied on. Every model call reserves its cost in Postgres first, under a hard $0.50 daily cap that fails closed. When the budget runs out, the copilot falls back to quoting the retrieved passages verbatim instead of failing.

tests passing in CI
378
265 pytest and 113 pgTAP on the latest GitHub Actions run
hard daily LLM budget
$0.50
reserved in Postgres before each call; when it is spent, nothing is invented
MCP tools
8
for Claude Desktop or Cursor; permissions checked by the database
Open the Ledgic case study7 screens, role, and stack

Built with Python, FastAPI, OpenAI Agents SDK, PostgreSQL, pgvector, Supabase, MCP, Next.js, TypeScript, pytest, pgTAP.

Open source (MIT). The live demo runs on a fictional restaurant group that replays about 180 invoices a day and resets nightly. The ERPs are mocked, and the extraction-accuracy chart is simulated from the demo data, not measured model output. No production users yet.

Blockpace

Know what a hotel room block will cost before the cutoff.

Blockpace: Know what a hotel room block will cost before the cutoff.

An open-source attrition tracker for event planners and group-housing teams. It works out the damages a hotel contract would charge, both ways a contract can count them (across the whole block or night by night), forecasts pickup against the minimum, and a daily worker sends signed webhooks while there is still time to act. Money is kept in exact integer cents, and a database lock makes sure two workers never send the same alert twice.

One line in a hotel contract decides the bill. Take 80, 70 and 50 rooms at $200 a night with 20% allowed attrition, and guests who book 70, 50 and 30: measured cumulatively the group owes $2,000, measured per night it owes $3,200. Blockpace tracks pickup pace over the last 14 days and projects it to the cutoff date, so an event planner sees the damages while there is still time to fill rooms or renegotiate. The attrition math also ships as an npm package, @alihdrndm/blockpace-core, and the calculator runs entirely in the browser.

Switchyard

Couples and uncouples containers on Railway.

Switchyard: Couples and uncouples containers on Railway.

A small control panel that starts and stops containers on Railway through Railway's public GraphQL API, and runs on Railway itself. Each service is a section of track with a signal lamp for deployment status. The app lists itself, marked protected, because it is deployed into the project it manages.

The Railway API token can create and delete infrastructure, so the browser never sees it. React talks JSON to a small Hono server, the server talks GraphQL to Railway, and the whole app sits behind a password. Railway has no single start-container call, so every button maps to the real mutations, checked against the live schema before any code was written. Launch is two steps and not atomic, so a deploy that fails after a successful create is reported as a service with a warning, never as nothing happened. 67 tests run without network.

Experience

  1. Apr 2025 to now

    Senior Software Engineer (Contract), XFinLabs

    Remote, California, USA, about 30 hours a week, asynchronous

    • Own full-stack features end to end for Backstock, a B2B inventory marketplace: Next.js, React, and TypeScript on the client, .NET services and the Salesforce API on the server.
    • Designed and built the real-time inventory sync between Salesforce and the .NET backend, removing manual steps from the sales workflow.
    • Built a modular component library that cut feature delivery time by 25% and standardized the B2B UX across the product.
    • Containerized services with Docker and set up CI/CD through Bitbucket Pipelines, deploying to AWS.
    • Work fully asynchronously with a US team across a 12-hour offset: written specs, PR-driven code review, and progress updates that let the team ship without meetings.
  2. Dec 2025 to Jul 2026

    Senior Software Engineer (Contract), NeuroOceans AI, TOCA Health

    Remote, Pakistan, alongside XFinLabs, disclosed to both

    • Built the out-of-range clinical report end to end for a remote patient monitoring (RPM) and chronic care management (CCM) platform: generate, download, share, and history. Replaced a raster html2canvas export with a vector jsPDF pipeline and an embedded font, so report text stayed selectable and matched the design at any zoom.
    • Shipped the AI features: server-sent events (SSE) streaming for the RPM and CCM copilots over fetch and ReadableStream with abort and timeout handling, and a tab-to-complete autocomplete on clinical notes with a typo guard and supersede-on-fire cancellation so a stale suggestion never lands.
    • Owned authentication: OTP-based password recovery, Google SSO, and axios interceptors that force logout on 401 and keep sessions consistent across tabs.
  3. Oct 2023 to Apr 2025

    Senior Software Engineer (Contract), Divogue

    Remote, USA, US business hours, evenings in Pakistan

    • Built an AI-powered SEC filing analyzer (10-K, 10-Q) with Vue.js, Pinia, and the OpenAI API, cutting client due-diligence time 3x and saving 15+ analyst hours per week on key accounts.
    • Architected the component system and state layer for a Generative AI SaaS platform, scoping features from customer problems to shipped product and shaping the roadmap.
    • Handled long-running LLM calls in the UI with streaming, retries, and clear failure states so analysts never lost work mid-request.
  4. Mar 2023 to Mar 2024

    Senior Vue.js Developer, Entropy X

    Remote, UAE, daytime hours

    • Shipped server-side-rendered Nuxt.js applications, cutting page load time 15% and improving SEO.
    • Built reusable Vue components on D3.js, PDF.js, and signature capture for data-heavy, interactive document workflows.
    • Turned Figma designs into responsive interfaces with Tailwind CSS and Vuetify for a UAE-based product team.
  5. Feb 2022 to Feb 2023

    Vue.js Developer, DARVIS

    Pakistan

    • Built the frontend for computer vision and machine learning (ML) products in Vue.js and Quasar, including real-time visualization of model output.
    • Co-designed REST API contracts with backend teams, reducing integration bugs by 30%.
  6. May 2021 to Jan 2022

    Frontend Developer, 01 Hire

    Pakistan

    • Led the React and Redux frontend for a hiring platform, shipping the MVP from zero to launch in six months.
    • Integrated REST and GraphQL APIs for real-time data sync, plus error handling and form validation.
  7. 2014 – 2018

    B.Sc. Computer Engineering

    University of Engineering and Technology, Taxila

Code

  • Roomlist Kit

    Rooming list in. Hotel-ready import file out.

    An open-source toolkit that checks a hotel group rooming list, from CSV or Excel, against the room block with 31 numbered rules, then writes the import file Oracle OPERA 5, OPERA Cloud or Maestro PMS expects. One stateless TypeScript core sits behind a CLI, a NestJS API and a Next.js app. The file readers are written to refuse hostile uploads: a forged spreadsheet that hides 400 MB behind a 1 KB claim is turned away in about 140 ms.

    Solo build. TypeScript, NestJS, Next.js, Zod, Vitest, fast-check, Playwright. Public MIT repo, CI green, 500+ tests, v0.1.0.

  • The Drop

    Orange County's #1 showroom, online.

    Shopify storefront for an appointment-based luxury streetwear and vintage showroom in Tustin, California. Custom Dawn 2.0 theme work: appointment booking, cart, menu search, product and collection pages, all configurable from the theme editor with vanilla JavaScript and no added dependencies.

    Theme developer, client work. Shopify, Liquid, Dawn 2.0, Vanilla JS. Live.

  • Threshold

    Interrupts autopilot in the first seconds after boot.

    A local-only Windows app that opens a twenty-second fullscreen prompt at boot, wake, or unlock: what you are here for, whether you will start it before opening anything else, and how long you are committing. It can then block distracting sites system-wide across every browser and profile, and keeps a small local record. A Flutter companion app is in progress.

    Solo build. Rust, Tauri, React, Vite, Flutter. Public repo, in active development.

Contact

Open to full-time or long-term contract roles, hired directly or through Deel or another employer of record. Senior full-stack and AI engineering, remote from Pakistan (UTC+5), with a full working day of overlap with Europe and six hours with US East.

alihdrndm@gmail.com