I build software across the entire stack, from the interfaces people interact with to the backend systems that power them, and the AI capabilities that make them smarter.
I enjoy taking on engineering problems, understanding how systems work, and turning ideas into functional products. Whether I'm building a frontend experience, designing an API, working with databases, integrating AI models, or improving an existing codebase, I care about writing software that works well beyond the demo.
- Frontend Engineering: Building responsive interfaces, interactive experiences, and web applications with React, Next.js, and TypeScript.
- Backend Engineering: Designing REST APIs, backend services, authentication systems, and application architectures.
- AI Engineering: Integrating LLMs, developing AI agents, building intelligent workflows, and exploring RAG-based applications.
- Database Engineering: Relational database design, data modelling, query optimisation, and database integrations.
- Payments & Integrations: Working with payment workflows, third-party integrations, and blockchain-based financial infrastructure.
- Software Engineering: Debugging unfamiliar codebases, investigating root causes, fixing bugs, implementing features, and improving software quality.
- Cloud & DevOps: Containerisation, deployment workflows, CI/CD, and cloud infrastructure.
Languages
Frontend
Backend
Databases & ORM
AI & Intelligent Systems
AI Engineering Concepts
LLM Integrations · AI Agents · Retrieval-Augmented Generation (RAG) · Prompt Engineering Cloud, DevOps & Development Tools
- Building intelligent, AI-powered software products.
- Engineering reliable and maintainable backend systems.
- Creating seamless frontend and backend experiences.
- Exploring agentic AI, automation, and developer tooling.
- Solving practical problems through thoughtful software engineering.
I'm always interested in meaningful engineering conversations, collaborations, and opportunities to build useful software.
Good software solves problems. Great engineering makes the solutions dependable.

