<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>giacolees - Tech Blog</title><link>https://giacolees.github.io/</link><description>Recent content on giacolees - Tech Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 19 Mar 2026 22:58:56 +0100</lastBuildDate><atom:link href="https://giacolees.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>Tokenizers are easy!</title><link>https://giacolees.github.io/posts/tokenizers/</link><pubDate>Thu, 19 Mar 2026 22:58:56 +0100</pubDate><guid>https://giacolees.github.io/posts/tokenizers/</guid><description>TL;DR Your LLM has never read a single word. It reads tokens — and the way text gets chopped up matters more than you'd think. Splitting on spaces explodes the vocabulary and chokes on anything outside English. The fix? Byte-Pair Encoding: start from raw bytes, greedily merge the most frequent pairs, repeat. Simple idea, nasty bottleneck — the naive version scans every word on every merge, costing O(V × M).</description></item><item><title>Hardware-Aware Programming for Dummies!</title><link>https://giacolees.github.io/posts/hardware-aware-programming-for-dummies/</link><pubDate>Sat, 14 Mar 2026 19:30:19 +0100</pubDate><guid>https://giacolees.github.io/posts/hardware-aware-programming-for-dummies/</guid><description>TL;DR Hardware-aware programming requires matching your computational task to the right processor architecture while aggressively minimizing data movement bottlenecks. While CPUs use large caches and complex logic to minimize latency for sequential tasks, GPUs use massive parallel arrays to maximize throughput for parallel workloads. However, the ultimate performance killer is data movement latency across the PCIe bus between the CPU and GPU; for small workloads, this transfer time completely eclipses the actual compute speed.</description></item><item><title>About</title><link>https://giacolees.github.io/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://giacolees.github.io/about/</guid><description>I&amp;rsquo;m Giacomo — an AI Research Engineer who somehow convinced some universities that he deserved degrees, then used them to make computers look at things and get confused more than before.
I&amp;rsquo;m what people charitably call a T-shaped engineer. The vertical bar goes deep into computer vision, sensor fusion, and autonomous driving perception — enough to know which of my own opinions are wrong. The horizontal bar stretches across LLMs, agentic AI, and the workflows that try to make all of it actually useful in production.</description></item><item><title>Open Source Projects</title><link>https://giacolees.github.io/projects/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://giacolees.github.io/projects/</guid><description> obsidian-math-convert ↗ Obsidian plugin that converts photos or screenshots of equations to LaTeX locally — no cloud, no subscription, runs fully offline via WebAssembly.
JavaScript · Obsidian · WebAssembly</description></item></channel></rss>