<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>alelec blog</title>
    <link>https://notes.alelec.net/</link>
    <description>Recent content on alelec blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 07 Sep 2026 08:30:00 +1000</lastBuildDate>
    <atom:link href="https://notes.alelec.net/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Replacing a Bun MCP server with 1MB of MicroPython</title>
      <link>https://notes.alelec.net/posts/bun-mcp-server-to-micropython/</link>
      <pubDate>Mon, 07 Sep 2026 08:30:00 +1000</pubDate>
      <guid>https://notes.alelec.net/posts/bun-mcp-server-to-micropython/</guid>
      <description>&lt;p&gt;I have a little hub, claude-net, that lets my Claude Code sessions talk to each other. Sessions register a name, send each other messages, join teams. It&amp;rsquo;s genuinely useful, the agent working on the MicroPython unix port can ask the agent working on the picolet runtime what branch it&amp;rsquo;s actually building, and get an answer, without me being the messenger.&lt;/p&gt;
&lt;p&gt;Every session runs a plugin to talk to that hub. The plugin is an MCP server: a child process Claude Code spawns, speaking JSON-RPC over stdio on one side and a &lt;code&gt;wss://&lt;/code&gt; websocket to the hub on the other. One per session. Written in TypeScript, run under Bun.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Which face do you mean?</title>
      <link>https://notes.alelec.net/posts/which-face-do-you-mean/</link>
      <pubDate>Thu, 23 Jul 2026 22:30:00 +1000</pubDate>
      <guid>https://notes.alelec.net/posts/which-face-do-you-mean/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve spent the last little while designing 3d printed fan shrouds for a dual NVIDIA V100 card with Claude Code, and the whole CAD model is generated from a python script, no mouse involved. Claude writes the CadQuery, it spits out an STL, I look at it, I ask for changes. Code is cheap now, the geometry basically falls out of the script.&lt;/p&gt;
&lt;p&gt;The maths was never the hard part though. The hard part, by an embarrassing margin, was telling Claude &lt;em&gt;which bit&lt;/em&gt; of the model I was talking about.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reverse Engineered Repairs with Micropython and Claude</title>
      <link>https://notes.alelec.net/posts/reverse-engineered-repairs-with-micropython-and-claude/</link>
      <pubDate>Mon, 20 Jul 2026 10:30:00 +1000</pubDate>
      <guid>https://notes.alelec.net/posts/reverse-engineered-repairs-with-micropython-and-claude/</guid>
      <description>&lt;p&gt;There&amp;rsquo;s a particular sound you never want to hear from a machine with two Tesla
V100s bolted into it. A sharp &lt;em&gt;zap&lt;/em&gt;, then half a second later the smell of magic
smoke. I heard both, lunged for the PC&amp;rsquo;s main power switch and killed everything.&lt;/p&gt;
&lt;p&gt;Then I just stood there for a bit, not wanting to look. The carrier board those
V100s sit on cost around $500 and isn&amp;rsquo;t the kind of thing you pick up at the local
Jaycar; if I&amp;rsquo;d cooked it, the whole datacentre-under-the-desk project was dead in
the water. That proper stomach-drop moment where you know you&amp;rsquo;ve done something
dumb and you&amp;rsquo;re about to find out exactly how dumb.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Datacentre under the desk: your own personal AI</title>
      <link>https://notes.alelec.net/posts/datacentre-under-the-desk/</link>
      <pubDate>Wed, 24 Jun 2026 23:00:00 +1000</pubDate>
      <guid>https://notes.alelec.net/posts/datacentre-under-the-desk/</guid>
      <description>&lt;p&gt;The Tesla V100 is a 2017 datacentre card that&amp;rsquo;s gone pretty cheap on the second-hand market,
and it turns out it&amp;rsquo;s still a genuinely good bang-for-buck way to run LLMs locally in 2026. 16
GB of HBM2 at around 900 GB/s, and that memory bandwidth is the thing that actually matters for
token generation. I&amp;rsquo;ve been assembling a few of these into machines and putting together a
setup pack so anyone buying one can get going without fighting the toolchain, so this post is
partly the story of getting there and partly a pointer to the kit.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why MicroPython Is the AI Agent&#39;s Embedded Stack</title>
      <link>https://notes.alelec.net/posts/micropython-agentic-embedded/</link>
      <pubDate>Mon, 18 May 2026 13:00:00 +1000</pubDate>
      <guid>https://notes.alelec.net/posts/micropython-agentic-embedded/</guid>
      <description>&lt;p&gt;I spent two weeks debugging a MIPI CSI-2 camera bring-up. The sensor
is an AR0234CS, the receiver is a Lattice CrossLinkPlus FPGA bridging
into an i.MX RT1176, and the symptom was that 85% of CSI-2 packets
failed ECC validation in the FPGA&amp;rsquo;s integrated parser. Diagnosis took
cross-referencing 700+ pages of ON-Semi datasheets, dozens of sensor
and FPGA configuration permutations, and forensic byte traces from a
debug peripheral inside the FPGA itself.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Plumbing image generation into Claude, the scenic route</title>
      <link>https://notes.alelec.net/posts/image-mcp-journey/</link>
      <pubDate>Fri, 08 May 2026 16:00:00 +1000</pubDate>
      <guid>https://notes.alelec.net/posts/image-mcp-journey/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;A friendly cartoon laptop connected by glowing cables to a small server in a dark closet&#34; loading=&#34;lazy&#34; src=&#34;https://notes.alelec.net/assets/image-mcp-hero.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve got an image generator wired straight into Claude Code now. Tell it &amp;ldquo;draw me a whiteboard diagram of the queue lifecycle&amp;rdquo; inline in any session, and 30 seconds later there&amp;rsquo;s a PNG on disk, an inline preview in chat, and a URL that&amp;rsquo;s good for an hour. It works in Claude Desktop too via a stdio extension that proxies to the same backend.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Claude Meets MicroPython: Hands-On with the ViperIDE Extension</title>
      <link>https://notes.alelec.net/posts/claude-meets-micropython/</link>
      <pubDate>Wed, 22 Apr 2026 14:00:00 +1000</pubDate>
      <guid>https://notes.alelec.net/posts/claude-meets-micropython/</guid>
      <description>&lt;p&gt;Claude can write MicroPython just fine. The annoying part is everything after that, getting the code onto a board, connecting to the REPL, figuring out why the pin numbers are wrong, iterating. I wanted Claude to be able to do all of that itself, talk directly to the hardware while I watch.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://viper-ide.org&#34;&gt;ViperIDE&lt;/a&gt; is a browser-based IDE for MicroPython and CircuitPython by Volodymyr Shymanskyy. It connects to devices over USB, Bluetooth, or WiFi and gives you a file manager, editor, and REPL terminal. If you haven&amp;rsquo;t tried MicroPython before it&amp;rsquo;s one of the easier ways to get started.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Claude Code From Anywhere: Tailscale, Eternal Terminal, and a Phone</title>
      <link>https://notes.alelec.net/posts/claude-code-from-anywhere/</link>
      <pubDate>Mon, 20 Apr 2026 08:30:00 +1000</pubDate>
      <guid>https://notes.alelec.net/posts/claude-code-from-anywhere/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m writing this blog post on my Pixel 5, standing in the kitchen. Termux open, connected to my home server through three layers of infrastructure that make the whole thing feel like I&amp;rsquo;m sitting at my desk. The same Claude Code session I started on my workstation this morning is right here on a 6&amp;quot; screen, and I can type a prompt, put the phone down, come back in an hour, and nothing has dropped.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Triaging 1500 Open Issues: Local LLMs, Sonnet, and a GPU in the Closet</title>
      <link>https://notes.alelec.net/posts/triaging-1500-open-issues-with-local-llms-and-a-gpu-in-the-closet/</link>
      <pubDate>Fri, 17 Apr 2026 06:00:00 +1000</pubDate>
      <guid>https://notes.alelec.net/posts/triaging-1500-open-issues-with-local-llms-and-a-gpu-in-the-closet/</guid>
      <description>&lt;p&gt;MicroPython has about 1500 open issues across its repos. Some of them have been there for years. A bunch are duplicates of each other, a bunch more are already fixed by PRs that got merged without anyone linking them back, and a pretty solid chunk are just noise (support questions, cross-posts, wrong-repo stuff). Nobody&amp;rsquo;s going to sit down and manually review 1500 issues against 8000+ PRs looking for connections though.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Five Hours, Five Root Causes, Crisis Averted: A Case Study in Agentic Embedded Debugging</title>
      <link>https://notes.alelec.net/posts/five-hours-five-root-causes-crisis-averted/</link>
      <pubDate>Mon, 13 Apr 2026 10:00:00 +1000</pubDate>
      <guid>https://notes.alelec.net/posts/five-hours-five-root-causes-crisis-averted/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;MCU development board with portrait LVGL keyboard display&#34; loading=&#34;lazy&#34; src=&#34;https://notes.alelec.net/assets/lvgl_perf/Microcontroller_board_with_202604112331.jpeg&#34;&gt;&lt;/p&gt;
&lt;p&gt;A colleague had just reached a critical milestone, getting a stable LVGL-based UI running on our product&amp;rsquo;s 5&amp;quot; MIPI display. It was a significant piece of driver work: MicroPython application code on an NXP i.MX RT1176 (Cortex-M7 @ 1 GHz), driving LVGL v9 on a 720x1280 MIPI DSI touchscreen. An embedded system, not a phone or PC.&lt;/p&gt;
&lt;p&gt;The UI worked, but the on-screen keyboard was unusable. Each keypress took nearly 200ms to render, dropping to 1-2 FPS while typing, missing many keypresses entirely. For context, touchscreen input generally needs 30+ FPS (under 33ms per frame) to feel responsive, and 60+ FPS to feel smooth. We were at 5 FPS on a good frame. That performance is unusable for a client demo, let alone a shipping product, and without any obvious cause for the lag it wasn&amp;rsquo;t clear if we had a fundamental hardware/design failure or a fixable configuration issue.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running Local LLMs on an AMD APU Laptop with 56GB Unified Memory</title>
      <link>https://notes.alelec.net/posts/running-local-llms-on-amd-apu-laptop/</link>
      <pubDate>Mon, 13 Apr 2026 10:00:00 +1000</pubDate>
      <guid>https://notes.alelec.net/posts/running-local-llms-on-amd-apu-laptop/</guid>
      <description>&lt;p&gt;I recently got a Lenovo ThinkPad P14s Gen 6 with the AMD Ryzen AI 9 HX PRO 370 and 56GB of LPDDR5x RAM. I wanted to see what I could actually run on it for local LLM inference, and it turns out you can run pretty large models if you know how to get around a couple of gotchas with the AMD iGPU memory model.&lt;/p&gt;
&lt;p&gt;The short version: I&amp;rsquo;m running Qwen3.5-35B-A3B (a 35 billion parameter MoE model) and Gemma-4-26B-A4B (26B, also MoE) locally, served as an OpenAI-compatible API accessible from other machines on my network. No discrete GPU required. I&amp;rsquo;ve since put them to work on a real batch classification task (triaging ~4000 GitHub issues for the MicroPython project) and compared their output quality against Claude Sonnet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting Qwen3-ASR into Handy, 114 experiments deep</title>
      <link>https://notes.alelec.net/posts/qwen3-asr-in-handy/</link>
      <pubDate>Sun, 05 Apr 2026 08:30:00 +1000</pubDate>
      <guid>https://notes.alelec.net/posts/qwen3-asr-in-handy/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;A man sits on a park bench with a laptop on his lap, dictating quietly, a jogger passing in the background&#34; loading=&#34;lazy&#34; src=&#34;https://notes.alelec.net/assets/qwen3-handy-hero.jpeg&#34;&gt;&lt;/p&gt;
&lt;p&gt;Handy is a local voice-to-text desktop app by @cjpais that I&amp;rsquo;ve been contributing to for a few months. Push a key, speak, release, and whatever you said appears at the cursor. No cloud, no API key, no latency across the wire. The transcription is done by &lt;a href=&#34;https://github.com/cjpais/transcribe-rs&#34;&gt;transcribe-rs&lt;/a&gt;, a Rust crate that wraps a handful of ASR engines (whisper, Parakeet, SenseVoice, Canary, openai) behind a unified interface.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vario / Forte motor</title>
      <link>https://notes.alelec.net/posts/vario---forte-motor/</link>
      <pubDate>Fri, 11 Mar 2022 09:14:33 +0000</pubDate>
      <guid>https://notes.alelec.net/posts/vario---forte-motor/</guid>
      <description>&lt;h1 id=&#34;baratza-vario--forte-motor-drive-parts-and-ratio&#34;&gt;Baratza Vario / Forte Motor drive parts and ratio&lt;/h1&gt;
&lt;h2 id=&#34;motor&#34;&gt;Motor&lt;/h2&gt;
&lt;p&gt;Baratza have at least 3 variants of motor used in the Vario&amp;hellip; and 120V/230V versions of each:&lt;/p&gt;
&lt;p&gt;* PN: 1036 / 1037 D-shaft motor
* PN: 1058? / ?? Helical shaft motor
* PN: 6026 / 6027 Hybrid shaft motor&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s also two styles of motor enclosure used:
&lt;img alt=&#34;motors&#34; loading=&#34;lazy&#34; src=&#34;https://notes.alelec.net/assets/622d6aebdfcbf9023602ed53.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;not sure if these relate to specific part numbers above or not though, or it might be a Mahlkonig vs Baratza difference.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sunbeam Torino EM8000: Installing an OPV</title>
      <link>https://notes.alelec.net/posts/sunbeam-torino-em8000--installing-an-opv/</link>
      <pubDate>Thu, 17 Feb 2022 18:24:56 +0000</pubDate>
      <guid>https://notes.alelec.net/posts/sunbeam-torino-em8000--installing-an-opv/</guid>
      <description>&lt;h1 id=&#34;im-quite-a-fan-of-my-sunbeam-torino&#34;&gt;I&amp;rsquo;m quite a fan of my Sunbeam Torino&lt;/h1&gt;
&lt;p&gt;&lt;img alt=&#34;Torino&#34; loading=&#34;lazy&#34; src=&#34;https://notes.alelec.net/assets/62104116dfcbf9023602ea08.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;It looks great and has a lot of solid features like dosed shot buttons, pour timer, pressure gauge, PID adjustable temperature control, quick warmup, strong steam and a full size (58mm) group head.&lt;/p&gt;
&lt;p&gt;When the Torino first launched, it did not review well, on CS the response was generally quite brutal&amp;hellip; Sunbeam trying to sell it for AUD$2000 put it up against a lot of big names in the industry and people in the know didn&amp;rsquo;t seem to think it matched up at all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bluetooth SIG PTS Testing without the Laird Connectivity PTS Dongle</title>
      <link>https://notes.alelec.net/posts/bluetooth-sig-pts-testing-without-the-laird-connectivity-pts-dongle/</link>
      <pubDate>Tue, 11 May 2021 05:26:16 +0000</pubDate>
      <guid>https://notes.alelec.net/posts/bluetooth-sig-pts-testing-without-the-laird-connectivity-pts-dongle/</guid>
      <description>&lt;p&gt;At work we needed to certify a BLE device recently. We had the legacy PTS dongle provided by Bluetooth SIG, however I found it only supports testing devices up the BLE 4.2&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;So we need a new BLE Dongle - they now only support the Laird Connectivity | 451-00004&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;BL654-SERIES-LRD-FNT&#34; loading=&#34;lazy&#34; src=&#34;https://media.futureelectronics.com/SEMICONDUCTORS/WIRELESS-RF/RF-MODULES-SOLUTIONS/BLUETOOTH/BL654-SERIES-LRD-FNT-MED.JPG?m=lfeTUb&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://store.bluetooth.com/&#34;&gt;https://store.bluetooth.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;This is normally stocked by all the online electronics distributers; element14, digikey, mouser, arrow etc. Unfortunately it was out of stock on all of them, for about 4 months.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sunbeam Torino EM8000: Reducing the pressure with a dimmer</title>
      <link>https://notes.alelec.net/posts/sunbeam-torino-em8000--reducing-the-pressure-with-a-dimmer/</link>
      <pubDate>Sat, 25 Jan 2020 09:46:00 +0000</pubDate>
      <guid>https://notes.alelec.net/posts/sunbeam-torino-em8000--reducing-the-pressure-with-a-dimmer/</guid>
      <description>&lt;h1 id=&#34;im-a-big-fan-of-my-sunbeam-torino&#34;&gt;I&amp;rsquo;m a big fan of my Sunbeam Torino&lt;/h1&gt;
&lt;p&gt;I&amp;rsquo;ve had my Torino for about a year now.
I read the reviews talking it down before I bought it but didn&amp;rsquo;t have the bench space for a BDB. I also got it for about AUD 1K, much less than the original RRP.
For the price I think it&amp;rsquo;s the best looking machine that has all the conveniences like dosed shot buttons, pour timer, quick startup etc.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows Docker Gitlab CI Runner</title>
      <link>https://notes.alelec.net/posts/windows-docker-gitlab-ci-runner/</link>
      <pubDate>Mon, 30 Jul 2018 03:07:33 +0000</pubDate>
      <guid>https://notes.alelec.net/posts/windows-docker-gitlab-ci-runner/</guid>
      <description>&lt;h1 id=&#34;windows-ci-build-node&#34;&gt;Windows CI Build Node&lt;/h1&gt;
&lt;p&gt;Install Hyper V Server 2016 (free perpetual eval licence)&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016&#34;&gt;https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://technet.microsoft.com/hyper-v-server-docs/Hyper-V-Server-2016&#34;&gt;https://technet.microsoft.com/hyper-v-server-docs/Hyper-V-Server-2016&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.docker.com/2016/09/build-your-first-docker-windows-server-container/&#34;&gt;https://blog.docker.com/2016/09/build-your-first-docker-windows-server-container/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Install on your hardware/vm of choice.&lt;/p&gt;
&lt;h3 id=&#34;ovirt--kvm&#34;&gt;oVirt / KVM&lt;/h3&gt;
&lt;p&gt;If you&amp;rsquo;re using oVirt or other KVM based hypervisor for you host, you&amp;rsquo;ll likely want the console viewer application installed on your local machine: &lt;a href=&#34;https://virt-manager.org/download/sources/virt-viewer/virt-viewer-x64-6.0.msi&#34;&gt;https://virt-manager.org/download/sources/virt-viewer/virt-viewer-x64-6.0.msi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Set up the vm with the disk connected to IDE initially, we can switch it over to faster VirtIO once drivers are installed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows Docker Gitlab CI Runner (2019)</title>
      <link>https://notes.alelec.net/posts/windows-docker-gitlab-ci-runner-2019/</link>
      <pubDate>Mon, 30 Jul 2018 03:07:33 +0000</pubDate>
      <guid>https://notes.alelec.net/posts/windows-docker-gitlab-ci-runner-2019/</guid>
      <description>&lt;h1 id=&#34;windows-ci-build-node&#34;&gt;Windows CI Build Node&lt;/h1&gt;
&lt;p&gt;Install Windows Server Core 2019 or Windows 10 (eval licence or full).&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://uupdump.ml/&#34;&gt;https://uupdump.ml/&lt;/a&gt; Can be used to download latest versions.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Hyper V Server 2019 not working as of Feb 2019: https://github.com/MicrosoftDocs/Virtualization-Documentation/issues/945&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016&#34;&gt;https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-201&lt;/a&gt;9&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://medium.com/@RealNetwork/direct-download-links-windows-server-2019-datacenter-standard-essentials-hyper-v-server-2019-5f53357eeeac&#34;&gt;https://medium.com/@RealNetwork/direct-download-links-windows-server-2019-datacenter-standard-essentials-hyper-v-server-2019-5f53357eeeac&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://software-download.microsoft.com/download/pr/17763.1.180914-1434.rs5_release_SERVERHYPERCORE_OEM_x64FRE_en-us.iso&#34;&gt;https://software-download.microsoft.com/download/pr/17763.1.180914-1434.rs5_release_SERVERHYPERCORE_OEM_x64FRE_en-us.iso&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; Install on your hardware/vm of choice.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3 id=&#34;system-setup&#34;&gt;System Setup&lt;/h3&gt;
&lt;p&gt;Once it&amp;rsquo;s installed you&amp;rsquo;ll see a console on the vm screen. Firstly you&amp;rsquo;ll be asked to set a password, do so with something memorable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://notes.alelec.net/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://notes.alelec.net/about/</guid>
      <description>&lt;img src=&#34;https://notes.alelec.net/images/andrew.jpg&#34; alt=&#34;Andrew Leech&#34; width=&#34;150&#34; style=&#34;border-radius:10px;float:right;margin:0.2rem 0 1rem 1.5rem;max-width:38%&#34;&gt;
&lt;p&gt;I&amp;rsquo;m Andrew Leech, an embedded software engineer based in Melbourne, Australia. I&amp;rsquo;ve spent a bit over 20 years building firmware and the systems around it, from the silicon up to the CI that ships it.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m a core contributor to MicroPython with 263 upstream PRs, and I maintain a fair bit of open source around embedded Python, build tooling and packaging. Day to day that&amp;rsquo;s STM32, NXP i.MX RT and ESP32, native C libraries wrapped for Python with CFFI, and the multi-platform build and release pipelines that hold it all together.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hire</title>
      <link>https://notes.alelec.net/hire/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://notes.alelec.net/hire/</guid>
      <description>&lt;p&gt;I take on embedded Python and MicroPython work in two shapes: fixed price when the scope can be pinned down, and a capped time-boxed block when it can&amp;rsquo;t. Either way you get a number before anything starts. No open-ended hourly meter, no standups, no retainer.&lt;/p&gt;
&lt;h2 id=&#34;why-me&#34;&gt;Why me&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m a MicroPython core contributor with 263 upstream PRs, and I&amp;rsquo;ve spent a bit over 20 years building embedded systems, firmware on STM32, NXP i.MX RT and ESP32, native C libraries wrapped for Python with CFFI, and the multi-platform build, packaging and CI that ships it all. A fair bit of that work has been on regulated, safety-critical devices, so I&amp;rsquo;m comfortable holding to that bar when a project needs it.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
