
Hi, welcome to my project portfolio!
My name is Wouter and I am a Machine Learning Engineer and LLM enthusiast. At work I build production ML and LLM systems for large-scale business problems. Outside of that, I pick up projects out of genuine curiosity or practical need. This site documents both, with a focus on what was actually hard to build and why the architecture ended up the way it did. Feel free to reach me at wouterwijffels@gmail.com or via LinkedIn.
Background
My educational background is in industrial engineering and logistics optimization, where I learned to think about systems and how to improve them mathematically. My working career started at the intersection of workflow automation, analytics, and data science. After a few years, my interest shifted toward machine learning and language modelling, which is where most of my focus sits today. Outside of work I go to open source events, industry conferences, and meetups in the fields I follow.
Projects
Seven years of projects, from first educational data science projects to current ML systems serving millions of customers. Dates mark when a project started; most are still running or have evolved since. Impact figures for production projects are measured at scale; for MVP and hobby projects, numbers are early estimates or personal assessments. Click any card for the full business context, solution design, and technical challenges.
Live in internal beta with CS Analytics and Customer Research
AI agent layer over customer service summaries and survey data. A Fast MCP server exposes one tool per CS topic and survey type; AWS Agent Core orchestrates tool calls with memory for campaign and brand context. Outputs are aggregated-only by design for GDPR compliance.
AWS Agent Core, Fast MCP, AWS Bedrock, Snowflake, Streamlit, MLflow, CloudWatch, X-Ray
Read more →
1 campaign in active testing, cutting a roughly 5-hour copywriting task to about 1 hour
Snowflake Cortex builds a persona profile per marketing segment; AWS Bedrock generates campaign copy for each one. All output is human-reviewed before go-live.
Snowflake Cortex, AWS Bedrock, AWS Lambda, Marketing Automation
Read more →
10% reduction in agent call handling time · over a million conversations per year
A scheduled Lambda gathers Genesys conversations onto an SQS queue; a second Lambda PII-masks and summarizes each with Bedrock, auto-filing the CRM wrap-up. A classification and batch evaluation layer is in development.
AWS Bedrock, Lambda, SQS, Snowflake, Python
Read more →
Dozens of models and hundreds of pipelines tracked across multiple countries
Central MLflow tracking server on SageMaker with an S3 artifact store, provisioned via Terraform. A SageMaker Pipeline evaluation step compares each run against a hard threshold and a benchmark run; Alertmanager deduplicates and throttles before publishing to SNS for Teams.
Terraform, MLflow, S3, AMP, SNS, GitLab, SageMaker Pipelines
Read more →
Paid PoC validated across 3 live client pairing sessions; moving into migration onto the client's systems
Freelance engagement under NDA for a procurement officer. A hierarchical taxonomy clusters highly specialized purchase order line items by semantic similarity, with hybrid BM25 and dense vector search plus cross-encoder reranking for benchmarking against price history.
Sentence Transformers, BERTopic, OpenAI API, ChromaDB, Streamlit
Read more →
Retention rates up by a double-digit percentage since launch
A monthly SageMaker Pipeline measures the causal retention effect of every completed A/B campaign, with automated checks for randomization, statistical power, and significance. Results surface in Tableau, replacing manual post-hoc analysis in spreadsheets.
SageMaker Pipelines, Snowflake, Tableau
Read more →
Used to find my own apartment
Started as a HuggingFace agents course project. smolagents orchestrates scrapers across rental sites; a GitHub Actions cron job checks for new listings every morning and sends matches over WhatsApp.
smolagents, Selenium, Python, WhatsApp API, GitHub Actions
Read more →
Churn indication 40x better than random · established the platform integration pattern now used by dozens of models
A single XGBoost churn model deployed across 5 countries via SageMaker and GitLab CI/CD, each with its own data warehouse and marketing system.
AWS SageMaker, GitLab CI/CD, Snowflake, XGBoost, MLflow
Read more →
Manual verification tool during 2023 negotiations; not productionized
NLP pipeline maps public commodity and gas price indices to the raw material components in supplier contracts, measuring the lag and magnitude between index movements and supplier price requests.
Python, NLP, Snowflake, Public Gas & Commodities APIs
Read more →