Start with the system
Models, prompts, vector databases and agents are components within a wider software system. They must be understood in relation to users, data, interfaces, operations and business requirements.
Technical Education
For software professionals who want to build dependable, maintainable and production-ready AI systems.
Modern AI tools make it possible to create working demonstrations quickly. Turning those demonstrations into reliable software systems requires deeper engineering judgement.
My teaching combines current AI technologies with established software engineering and architectural principles, helping developers understand not only how a system works, but how it should be designed to operate, change and evolve.
Teaching Philosophy
My aim is not simply to show developers how to use the latest framework or API. It is to help them develop the judgement needed to design AI systems that remain understandable, testable and maintainable after the first demonstration.
Models, prompts, vector databases and agents are components within a wider software system. They must be understood in relation to users, data, interfaces, operations and business requirements.
Concepts are introduced through practical concerns such as retrieval failure, observability, responsibility boundaries, security, deployment, cost and system evolution.
Frameworks will change. Strong architectural principles remain useful across technologies and help engineers make better decisions when tools inevitably evolve.
Production systems must accommodate new models, changing data, different providers, revised requirements and lessons learned from real usage.
Current Learning Opportunity
A free 90-minute live online session exploring Retrieval-Augmented Generation from a software engineering and architectural perspective.
An Engineering Perspective for Software Developers
Many RAG tutorials demonstrate document loading, embeddings, vector search and an LLM response. This session examines what happens beyond that basic pipeline.
We will consider architecture, retrieval quality, evaluation, observability, reliability and the engineering decisions needed to move from a prototype towards a dependable system.
Developing Programme
The current live session is the beginning of a broader programme focused on applying disciplined software engineering to AI applications.
Planned
A practical multi-week programme covering system architecture, ingestion, retrieval, evaluation, observability, guardrails, security, scalability and cost control.
Future
A course applying enduring software design and architectural principles to LLM, RAG, agentic and other AI-enabled systems.
Future
A system-level course covering how computer vision models fit into complete pipelines involving data, preprocessing, inference, evaluation, deployment and monitoring.
Learning Formats
The teaching programme will combine live instruction, structured courses and open engineering resources.
Focused introductions to important engineering topics, with demonstrations, architecture discussion and live questions.
Structured multi-week learning for developers who want guided progression, practical exercises and sustained technical depth.
Tailored sessions for engineering teams and organisations addressing specific architectural, AI or software-development needs.
Carefully structured on-demand learning supported by practical examples, demonstrations and engineering exercises.
Articles exploring system architecture, software engineering, RAG, agentic systems, computer vision and production AI.
GitHub repositories, notebooks, architecture notes and practical projects that allow learners to inspect and experiment with real engineering material.
Learning Principles
Technical ideas are explained carefully, but always connected to the engineering problems they help solve.
The system structure and responsibility boundaries come before choosing libraries, platforms or implementation details.
Demonstrations are used to investigate decisions and failure modes, not merely to produce an impressive result quickly.
Existing software engineering experience is treated as a strength and connected directly to modern AI development.
Open Resources
Open resources provide opportunities to explore the ideas outside formal sessions and programmes.
GitHub
A developing collection of practical RAG projects focused on real software-engineering use cases rather than generic document chatbots.
Explore the repository →Technical Writing
Articles and notes examining AI systems through software architecture, evaluation, maintainability and production engineering.
Explore technical writing →Projects
Real engineering projects covering RAG, codebase intelligence, incident intelligence, architecture assistance and future computer vision systems.
View current projects →Engineering and Education
Software Architect · AI Engineer · Former University Lecturer
I have more than 30 years of experience in software development, architecture, consulting, research and technical education.
I spent eight years as a university lecturer, teaching software engineering and neural networks and supervising postgraduate research.
My current work brings those two strands together: established software-engineering discipline and modern AI-system development.
Start Learning
Explore how Retrieval-Augmented Generation moves beyond the standard demonstration and becomes a production engineering concern.