41554 blogs · [ { "id": "01a087a5-e810-70a2-aa54-f95dd37b68b6", "title": "Taalas-Style On-Chip Weights on a $250 FPGA: a Language Model at 60k tok/s", "url": "https://www.mikeayles.com/blog/on-chip-llm-kv260/", "published_at": "2026-08-10T00:00:00+00:00" }, { "id": "01a087a5-e810-70a2-aa54-f95dd4245f8c", "title": "On-Chip LLM: Sampling Without Asking", "url": "https://www.mikeayles.com/blog/kevin-gumbel-max/", "published_at": "2026-08-09T00:00:00+00:00" }, { "id": "01a087a5-e810-70a2-aa54-f95dd4964838", "title": "On-Chip LLM: Inside the Chip", "url": "https://www.mikeayles.com/blog/kevin-inside-the-chip/", "published_at": "2026-08-09T00:00:00+00:00" }, { "id": "01a087a5-e810-70a2-aa54-f95dd5433d0b", "title": "On-Chip LLM: Serving an FPGA to Strangers", "url": "https://www.mikeayles.com/blog/kevin-serving-strangers/", "published_at": "2026-08-09T00:00:00+00:00" }, { "id": "01a087a5-e810-70a2-aa54-f95dd61523a4", "title": "On-Chip LLM: War Stories and the Method", "url": "https://www.mikeayles.com/blog/kevin-war-stories/", "published_at": "2026-08-09T00:00:00+00:00" }, { "id": "01a087a5-e810-70a2-aa54-f95dd63146b1", "title": "Are you sure OneDrive has got your back(up)?", "url": "https://www.mikeayles.com/blog/onedrive-backup-limit/", "published_at": "2026-06-29T00:00:00+00:00" }, { "id": "01a087a5-e810-70a2-aa54-f95dd6513f17", "title": "Banger: A Local Photo Culler That Doesn't Touch the Cloud", "url": "https://www.mikeayles.com/blog/banger/", "published_at": "2026-05-22T00:00:00+00:00" }, { "id": "01a087a5-e810-70a2-aa54-f95dd728d82d", "title": "Does RAG Actually Help AI Coding Tools?", "url": "https://www.mikeayles.com/blog/rag-coding-tools/", "published_at": "2026-04-07T00:00:00+00:00" }, { "id": "01a087a5-e810-70a2-aa54-f95dd763cd40", "title": "What's Actually in a Litre of Diesel", "url": "https://www.mikeayles.com/blog/fuel-price-economics/", "published_at": "2026-03-10T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881b6025f22", "title": "It's Just Weights", "url": "https://www.mikeayles.com/blog/its-just-weights/", "published_at": "2026-03-10T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881b6c8b27d", "title": "goformersearch: Vector Search in Pure Go", "url": "https://www.mikeayles.com/blog/goformersearch/", "published_at": "2026-03-09T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881b6d378cc", "title": "goformer: BERT Inference in Pure Go", "url": "https://www.mikeayles.com/blog/goformer/", "published_at": "2026-03-08T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881b72e2667", "title": "Bitwise Cloud: Hosted Search for Embedded Documentation", "url": "https://www.mikeayles.com/blog/bitwise-cloud/", "published_at": "2026-03-03T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881b8018487", "title": "CO2 Is the Wrong Number: Greenhouse Gas Equivalents for Road Freight", "url": "https://www.mikeayles.com/blog/co2-vs-ghg-equivalents/", "published_at": "2026-02-25T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881b839f394", "title": "Every Euro VI Truck Has a Chemical Plant Bolted Underneath", "url": "https://www.mikeayles.com/blog/aftertreatment-chemistry/", "published_at": "2026-02-24T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881b925aef3", "title": "The Physics and Economics of Moving 44 Tonnes at 56mph", "url": "https://www.mikeayles.com/blog/heavy-haulage-basics/", "published_at": "2026-02-23T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881b9f4d0c5", "title": "The Hydrogen Truck Problem Isn't the Truck", "url": "https://www.mikeayles.com/blog/hydrogen-refuelling-road-freight/", "published_at": "2026-02-23T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881ba4bd49d", "title": "50kWh In, 33kWh Out: On-Vehicle Hydrogen Generation", "url": "https://www.mikeayles.com/blog/on-vehicle-hydrogen-generation/", "published_at": "2026-02-23T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881bad8c619", "title": "Playing DOOM in OpenSCAD at 10-20 FPS", "url": "https://www.mikeayles.com/blog/openscad-doom/", "published_at": "2026-01-23T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881bbc6e283", "title": "Zookeeper: Pokédex for Real Zoo Animals", "url": "https://www.mikeayles.com/blog/zookeeper/", "published_at": "2026-01-15T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881bc3609b5", "title": "Phaestus: Compiler for Physical Products", "url": "https://www.mikeayles.com/blog/phaestus/", "published_at": "2026-01-14T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881bcdfc756", "title": "TOKN: Token-Optimised KiCad Notation", "url": "https://www.mikeayles.com/blog/tokn/", "published_at": "2025-12-09T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881bd3ee548", "title": "KiDoom: Running DOOM on PCB Traces", "url": "https://www.mikeayles.com/blog/kidoom/", "published_at": "2025-11-27T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881bdd5f05e", "title": "ScopeDoom: DOOM on an Oscilloscope via Sound Card", "url": "https://www.mikeayles.com/blog/scopedoom/", "published_at": "2025-11-27T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881bdfdd604", "title": "bitwise-mcp: MCP Server for Embedded Documentation", "url": "https://www.mikeayles.com/blog/bitwise-mcp/", "published_at": "2025-11-19T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881be3c00e6", "title": "CircuitSnips.com: Building a Thingiverse for KiCad", "url": "https://www.mikeayles.com/blog/circuitsnips-writeup/", "published_at": "2025-11-19T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881be48726b", "title": "Engine Simulator: High-Fidelity Diesel Engine Thermodynamics", "url": "https://www.mikeayles.com/blog/engine-simulator/", "published_at": "2025-11-19T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881be7cf078", "title": "Claude Code Comm Bot: VS Code Extension for Discord Integration", "url": "https://www.mikeayles.com/blog/claude-code-comm-bot/", "published_at": "2025-11-19T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881bf5cf3ba", "title": "Fuel Injector Characterizer: Peak & Hold Validation System", "url": "https://www.mikeayles.com/blog/fuel-injector-characterizer/", "published_at": "2025-11-19T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881bfcd0d37", "title": "HIT Impact Android App: Head Impact Monitoring", "url": "https://www.mikeayles.com/blog/hit-impact-android/", "published_at": "2025-11-19T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881c07d9706", "title": "MQTT Duration Trigger: Smart Button Press Detection", "url": "https://www.mikeayles.com/blog/mqtt-duration-trigger/", "published_at": "2025-11-19T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881c0fac4b6", "title": "KiCad Netlist Tool", "url": "https://www.mikeayles.com/blog/kicad-netlist-tool/", "published_at": "2025-11-19T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881c15e81cf", "title": "Supplement Stack Saver: Budget-Friendly Alternatives", "url": "https://www.mikeayles.com/blog/supplement-comparison/", "published_at": "2025-11-19T00:00:00+00:00" }, { "id": "01a087a5-e811-712d-8adf-5881c1765d29", "title": "TheDuck.chat", "url": "https://www.mikeayles.com/blog/the-duck-chat/", "published_at": "2025-11-19T00:00:00+00:00" } ] posts Claim your blog
Back to Michael Ayles - Automotive/Electronics/Software Engineer
Blog · corpus.blog/blogs/mikeayles.com/posts

Michael Ayles - Automotive/Electronics/Software Engineer

mikeayles.com

2026

2025