I build Python systems for problems that start with raw data, manual workflows, or an idea that needs to become a dependable product.

My work sits between backend engineering and applied AI. That can mean building APIs and data pipelines, designing retrieval systems, or putting the infrastructure around a model so that it can actually be used and maintained.

I care about the parts that are easy to skip in a demo: clear data models, reliable services, validation, documentation, and deployment. I have backgrounds in computer science and applied statistics, which helps me look at both the technical system and the data behind it.

What I work with

Backend and data

Python · FastAPI · Django · Flask · PostgreSQL · MySQL · SQLAlchemy · Redis · REST APIs · GraphQL · ETL pipelines · Data validation

Applied AI

LLMs · Fine-tuning · RAG · pgvector · Ollama · Llama · LoRA · PyTorch · scikit-learn · spaCy · BERTopic

Cloud and delivery

Docker · AWS · Lambda · API Gateway · S3 · CloudFormation · GitHub Actions · CI/CD

A few things I’ve built

FastAPI RAG Engine

A retrieval-augmented generation backend built with FastAPI, PostgreSQL with pgvector, and Ollama. It supports asynchronous processing, semantic chunking, streamed responses, authentication, and multi-tenant data access.

The project is intentionally focused on the service around the model, not just the chat response. It is a practical look at the API, database, retrieval, and deployment concerns behind a RAG application.

Mindful Eating Companion

A personalized digital intervention that combines behavioural data, a mobile application, backend services, and AI-assisted guidance. I worked on the FastAPI backend, PostgreSQL data layer, personality-based personalization, and LLM integration.

It was a useful project for thinking through how a model fits into a real product, including data flow, validation, API design, and the needs of the mobile client.

Public Tenders Dashboard

A visual analytics project built around public tender data from Nova Scotia. The work involved preparing and exploring the data, then using clustering and BERTopic to make patterns in a large collection of records easier to investigate.

The goal was simple: turn raw public data into something people could explore, question, and use.

View Full Project Portfolio

More than a stack

I started with competitive programming, where the job is to understand constraints before writing a solution. That habit still carries into my work. I like getting close to the actual problem, asking what can go wrong, and building systems that are easier for the next person to understand and work with.

Get in touch

I am based in Halifax, Nova Scotia, and open to conversations about backend engineering, data systems, and applied AI work.

You can find me on LinkedIn, browse the code on GitHub.