Hello,

I'm Saad Aamir,
an AI software
engineer who
ships LLM systems
and measures them.

Three years of production experience across Node.js, TypeScript, C# and .NET, with LLM-backed features running on top of them. Alongside that, empirical ML work on whether reported results survive being measured properly.

Saad Aamir
51.1°N 13.7°E2024

What I do

I build software, the AI inside it, and the evidence it works.

Three areas where I spend most of my time: engineering production systems, wiring language models into them, and measuring carefully enough to know whether any of it holds up.

Full-Stack Engineering

Backends I designed and own, and codebases other people wrote that I modernized: REST APIs and data models, .NET 6 to .NET 8 migrations, React dashboards over Node and TypeScript services, AWS infrastructure with CI/CD through GitHub Actions.

AI & LLM Systems

Language models wired into real workflows: Model Context Protocol (MCP) servers, function calling against schemas I define, structured outputs validated with Pydantic before anything reaches a database. Three LLM-backed features shipped into a production hiring portal.

Empirical ML

Treating a model score as a measurement rather than a result: pre-registered protocols, seed variance, shuffled-label nulls, positive controls. A co-authored preprint, a multi-centre segmentation audit, and a null I published instead of burying.

Saad Aamir
02 / About
Dresden, DE@saad-aamir

About

More about me.

I'm a software engineer based in Dresden, Germany. I graduated from NUST in 2023 and spent the next three years at ZSystems (MobileLIVE, now ML Arteka), a Canadian consultancy, designing and owning backends, modernizing .NET codebases other people wrote, and shipping features end to end, including three LLM-backed ones running in a production hiring portal.

Alongside that I run Dark Matter Studio, independent web and LLM work. Automating its own CRM is where Dark Matter Co-Pilot came from: a Model Context Protocol (MCP) server giving an AI assistant structured access to real operations data through ten typed tools over SQLite, with Pydantic v2 as the single source of truth for rows, schemas and responses. I use it daily.

The other half of my time goes to empirical ML: whether reported results survive being measured properly. A co-authored preprint on the capitulation direction that reported a null when the positive control passed and the direction didn't. A segmentation audit where seed alone moved the score more than most published improvements. Starting an M.Sc. at TU Dresden in October 2026.

Experience

3+ years of engineering, shipping,
and learning.

OCT 2026→PRESENT

M.Sc. Computer Science

Technische Universität Dresden · Germany

JAN 2026→PRESENT

Independent Engineer

Dark Matter Studio · Freelance

Independent web and LLM work under Dark Matter Studio: Next.js sites for clients, plus my own tooling.

  • Built Dark Matter Co-Pilot to automate the studio's own CRM and outreach: a Model Context Protocol (MCP) server that gives an AI assistant structured access to real operations data (leads, projects, case studies, pricing) through ten typed tools over SQLite.
  • Pydantic v2 is the single source of truth for database rows, tool schemas and responses, so the same model definition validates what goes in and what comes back. I use it daily.
  • Shipped Next.js and Tailwind client sites end to end, from design through deploy on Vercel.
Next.jsTypeScriptPythonMCPPydantic v2SQLiteVercel

JUL 2023→JUN 2026

Software Engineer (Full Stack)

ZSystems (MobileLIVE, now ML Arteka) · Canadian Consultancy · Remote

Three years designing and owning backends, modernizing codebases other people wrote, and shipping features end to end, including LLM-backed ones running in production.

  • Led the backend of the company's own hiring portal: designed the API and data model, built the workflow end to end, and added three LLM-backed features on the OpenAI API. Benchmarked GPT-4 against GPT-4o and chose GPT-4o for latency.
  • Requisition summarization: the model reads a free-text job description and returns title, skills and requirements through function calling against a JSON schema I defined, so a requisition reads as a bulleted summary instead of a page of prose.
  • Candidate search: the criteria the model extracts drive a query to the CATS One applicant tracking API, returning the top ten matching candidates inside the portal and replacing a manual search.
  • Resume parsing and normalization: the model maps an uploaded PDF or DOCX CV into a validated JSON schema, which is persisted and rendered in the company's standard format so any reformatted CV can be re-downloaded.
  • Iterated prompts and schemas until model output was reliable enough to store, validated every response before it reached the database, and cut query latency by roughly 40%.
  • Led the modernization of two internal .NET portals for a lighting manufacturer over about a year: upgraded .NET 6 to .NET 8, introduced the repository pattern, inversion of control and dependency injection, and migrated raw SQL to LINQ.
  • Built a further .NET 8 portal consolidating operations that were spread across third-party tools, including inventory, into a single internal system.
  • Built React dashboards over Node.js and TypeScript REST services on the Geotab Fleet Analytics project, and worked directly with client stakeholders, turning loosely specified requests into scoped deliverables demoed in sprint reviews.
  • Ran AWS infrastructure (EC2, Lambda, S3, CloudWatch) with CI/CD through GitHub Actions, implemented JWT authentication and secure endpoints, and traced production incidents across the React frontend, the Node.js and .NET services, and the underlying SQL.
Node.jsTypeScriptReactC#/.NET 8OpenAI APISQLAWSGitHub Actions

JUL 2020→SEP 2020

Web Development Intern

ZSystems · Lahore

Built frontends and Node.js/Express services alongside senior engineers. The company brought me back full time after I graduated in 2023.

Node.jsExpressJavaScriptSQL

2019→2023

B.Sc. Computer Science

NUST · Islamabad

Final year project: indoor navigation for our campus using AR.

UnityARCoreC#

Selected work

Projects shipped and currently building.

ClaudeDesktopMCP clientMCP protocolFastMCPServerPython +Pydantic v2MCP TOOLSlist_case_studiescreate_leadlist_leadsupdate_lead_statuslist_projectslist_clientsrecord_website_findinglist_website_findingsdraft_outreach_emailhello_studioqueriesMCP RESOURCESstudio://pricingstudio://positioningstudio://processSQLiteDatabaseclientsleadsprojectscase_studieswebsite_findingsMarkdownfilespricing.mdpositioning.mdprocess.mdshipped

shipped
2026

MCP server that gives Claude access to real studio data

A Model Context Protocol (MCP) server that gives an AI assistant structured access to my studio's operations data (leads, projects, case studies, pricing) through ten typed tools over SQLite. Pydantic v2 is the single source of truth for rows, tool schemas and responses. I use it daily.

PythonFastMCPSQLitePydantic v2
FlyWire connectome138,639 neurons · whole-brain model reproduced to within 0.3 Hzintactbaselinebinds to the mastsensory silencedfeeding circuit +51 Hzignores the songmotor neuron cutcircuit stays fully activebody walks past anyway

shipped
2026

Odysseus and the Sirens, run on a 138,639-neuron connectome

Odysseus and the Sirens retold on a simulated fruit fly, where the Sirens are sugar and the brain is the full 138,639-neuron FlyWire connectome. Reproduces the published whole-brain model (Shiu et al., Nature 2024) to within 0.3 Hz of the authors' figures, then runs three conditions: intact; sensory neurons silenced, where the feeding circuit shifts 51 Hz and the fly ignores food; and the motor neuron cut, where the circuit stays fully active and the body walks past anyway.

PythonFlyWireNeuroMechFlyEmbodied Fly Lab
U-Net · ResNet341,450 images (1,305 / 145) · evaluated on 5 clinical centres in 3 countriesis the effect bigger than the noise?seed alone, hardest unseen centre±0.036augmentation, 5-seed protocol+0.055p = 0.024 over ten runssingle-run comparisons are uninterpretablea hidden source of biasevery tissuepixel discardedlinear probesource centreidentifies the centre91.6%chance47.6%

shipped
2026

What survives when you measure a benchmark properly

U-Nets with a ResNet34 encoder trained for colonoscopy polyp segmentation on the standard 1,450-image benchmark, then evaluated across five clinical centres in three countries, including centres never seen during training. Seed alone moves Dice on the hardest unseen centre by ±0.036, more than most improvements reported for it, so single-run comparisons are uninterpretable. A pre-registered five-seed protocol over ten runs reports +0.055 Dice (p = 0.024) for augmentation.

PythonPyTorchONNX Runtime WebNumPy
residual streamcandidate directionpre-registeredcross-validationshuffled-label nullspositive controlAUROC gatepositive controlthe protocol can detect a directionpasscapitulation directiondoes not clear it, reported as a nullnullfollow-up: 8 models across 2 families,causal ablation via TransformerLens:the direction emerges between 3B and 7B

shipped
2026

Preprint: is caving under pushback a linear direction?

A co-authored preprint asking whether a model's tendency to cave under user pushback corresponds to a manipulable linear direction in the residual stream. Reported a null under a pre-registered protocol (cross-validation, shuffled-label nulls, a positive control and an AUROC gate) in which the control passed and the direction did not. A follow-up in preparation extends it to eight models across two families with causal ablation through TransformerLens.

PythonPyTorchTransformerLens
Dataset200q · 3 pushSolverAsk → PushLlama 3.1 8Bvia OllamaQwen 2.5 7Bvia OllamaSonnet 4.5judge93 hand-labeledvalidatesMAINTAINEDorNOT_MAINTAINED

shipped
2026

The behavioral harness underneath the preprint

A controlled experiment measuring how often two same-scale open-weight language models (Llama 3.1 8B, Qwen 2.5 7B) reverse correct answers under user pushback. Hand-validated LLM-as-judge, question-level bootstrap CIs, 1,800 conversations per model. This harness is what the capitulation-direction work was built on top of.

PythonInspectAnthropic APIOllamaPydantic
darkmatterstudio.ioView Work

shipped
2023

Landing page for my web studio

The public site for Dark Matter Studio, my independent web practice. Built for speed and conversion. No CMS, just Next.js and Tailwind on Vercel.

Next.jsTypeScriptTailwindVercel

Toolkit

What I work with day-to-day.

languages
PythonTypeScriptJavaScriptC#SQLC++
machine learning
PyTorchsegmentation modelsTransformerLensexperiment designpre-registrationsignificance testingONNXquantization
llm systems
MCPOpenAI APIClaude APIfunction callingstructured outputsRAGLLM-as-judgePydantic
python / data
pandasNumPySciPyscikit-learn
backend
Node.jsExpress.NET 6/8FastAPIRESTJWTPostgreSQLMySQLSQLiteMongoDB
frontend
ReactNext.jsTailwindFramer Motion
tooling
AWSDockerEC2LambdaS3CloudWatchGitHub ActionsGitVercel

Writing

Things I've been thinking about.

All posts on Substack

Llama folds when you sound vague. Qwen folds when you sound specific.

What I learned about LLM evals by getting fooled three times in a row.

Jun 18, 20269 min readAI Safety

Tools should return data, Language models should return language

How I stopped trying to make my MCP tool write emails and let Claude do its job.

Jun 11, 20265 min readMCP

Why 23 strangers in a room are more interesting than they look

Walk into a room with 22 other people. There's a better than 50% chance two of you share a birthday. That sounds wrong.

May 27, 20265 min readProbability

Why nice guys finish first (sometimes)

The Prisoner's Dilemma, Axelrod's tournament, and how cooperation actually wins.

May 23, 20265 min readGame Theory

Contact

Let's work together.

Open to AI/ML and software engineering roles, research collaborations, and consulting engagements. Anywhere backends, LLM systems, and careful measurement overlap. Dark Matter Studio is also available for select client projects.

Hello there!

Welcome to Saad's portfolio.