A terminal showing BM25 retrieval scores alongside a RAG pipeline diagram

Build a RAG Pipeline with From-Scratch BM25: A Hands-On Portfolio Project

A hands-on guide to building a Retrieval-Augmented Generation pipeline with a from-scratch BM25 scorer. Covers architecture, real Python code, testing, and a senior-level roadmap for extending it into a production-grade system.

September 23, 2026 · 13 min · 2598 words · martinuke0
A code editor displaying a Python BPE tokenizer implementation with terminal output showing tokenization results.

Build a BPE Tokenizer From Scratch in Pure Python

A hands-on build guide for a Byte Pair Encoding tokenizer in pure Python — complete with architecture diagrams, runnable code, testing strategy, and a senior-level extension roadmap.

September 23, 2026 · 11 min · 2251 words · martinuke0
A code editor showing an inference pipeline architecture diagram with arrows connecting model loader, request queue, and API server components.

Build a Production-Grade Inference Pipeline: A Hands-On CV Project

A step-by-step guide to building a real-time ML inference service with async processing, request batching, and observability — designed to demonstrate production systems engineering on your CV.

September 22, 2026 · 14 min · 2928 words · martinuke0
A visualization of INT4 weight tensors being dequantized and multiplied in a fused GEMM kernel

Build a Blockwise INT4 Inference Engine: A Hands-On Portfolio Project

A hands-on build guide for a blockwise INT4 inference engine with packed-nibble weights, per-group scales/zero-points, and fused dequantizing GEMM — a portfolio project that demonstrates real systems and ML engineering depth.

September 22, 2026 · 15 min · 3020 words · martinuke0
A diagram of a neural network merging LoRA weights

From Scratch: Building a LoRA Weight Merger in PyTorch

This tutorial walks you through implementing a LoRA weight merger in PyTorch, giving you a concrete portfolio piece that highlights systems thinking and ML engineering prowess.

September 22, 2026 · 7 min · 1330 words · martinuke0
Feedback