Ten layers down.
The name is a promise about where we are willing to go. Below is the whole stack — surface to silicon — and what the work looks like at each level.
- Layers
- 10
- Surface
- Applications
- Floor
- Hardware
Applications
The part everyone sees, and the only part most vendors touch. Interfaces that make a probabilistic system feel dependable — streaming, citations, graceful failure, and the affordances that let a person stay in control.
- Streaming UX
- Human-in-the-loop
- Trust & citations
- Latency budgets
Agents
Control flow for models. Where a task gets decomposed, which tool is reached for, what gets remembered, and when the loop must stop. Most agent failures are architecture failures, not model failures.
- Tool contracts
- State & memory
- Planning loops
- Failure containment
RAG
Getting the right context in front of the model at the right moment. Chunking strategy, hybrid retrieval, reranking and freshness — the difference between a demo that impresses and a system that answers.
- Hybrid retrieval
- Chunk strategy
- Rerankers
- Grounding evals
Models
Which model, and why. Capability mapped against cost, latency, licence and control — with an honest read on where a frontier API earns its price and where a smaller open model wins outright.
- Capability mapping
- Open vs. frontier
- Licensing
- Eval harnesses
Training
Data is the model. Collection, cleaning, deduplication, synthetic augmentation and the run itself — instrumented so that a result can be reproduced rather than retold.
- Data curation
- Synthetic data
- Run instrumentation
- Reproducibility
Fine-tuning
Teaching a model your domain instead of describing it in a prompt every time. Adapters, preference optimisation and distillation that trade a general model for a specific one that is smaller, faster and yours.
- LoRA / QLoRA
- DPO & preference
- Distillation
- Adapter routing
Inference
Where the bill lives. Quantisation, speculative decoding, KV-cache strategy and prompt economics — the layer where a 4× cost reduction is normal and nobody is looking.
- Quantisation
- Speculative decoding
- KV-cache
- Token economics
Serving
Turning a model into a service. Continuous batching, request routing, autoscaling and back-pressure so that p99 stays flat when traffic does not.
- Continuous batching
- Model routing
- Autoscaling
- p99 discipline
GPU Optimization
Down where the silicon is. Kernel selection, memory layout, occupancy and utilisation — reading a profiler instead of guessing, and buying back capacity you already own.
- Kernel profiling
- Memory layout
- Occupancy
- Utilisation
Hardware
The floor of the stack. Accelerator choice, interconnect topology, capacity planning and procurement — decisions with an eighteen-month shadow, made once and lived with.
- Accelerator choice
- Interconnect
- Capacity planning
- Procurement
The same symptom, two different answers.
Surface-level work treats the layer it can reach. Depth means treating the layer the problem is actually in.
- Surface answerOur answer
- Swap in a bigger modelFind out which layer is the bottleneck
- Optimise the promptOptimise the decode path
- Scale the instanceFix utilisation, then decide on scale
- Ship the demoShip the eval that guards the demo
Which layer is yours?
Bring the symptom. We'll locate it in the stack, tell you what it would take to fix, and be honest about whether it's worth fixing.
Typical reply within one working day.