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’t. Either way you get a number before anything starts. No open-ended hourly meter, no standups, no retainer.

Why me

I’m a MicroPython core contributor with 263 upstream PRs, and I’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’m comfortable holding to that bar when a project needs it.

How I work

Two shapes, and which one fits depends on what you’ve got.

Fixed scope, fixed price. If we can agree what “done” looks like, a board that boots, a port that passes, a pipeline that ships, I quote a number and that’s the number. The AI-accelerated way I work is my problem, not a meter running against you.

Time-boxed for the open-ended stuff. A lot of embedded work is chasing a fault or a “why won’t this boot” that nobody can scope up front; you don’t know how deep it runs until you’re in it. For that you buy a capped block of my time. I dig in, and you get a written findings summary and a recommendation at the end, whether or not there’s a clean fix in reach. The cap is agreed before I start, so it can’t run away on you.

Nearly everything runs async over email and a shared repo either way, so it fits around your team without booking their time.

The prices below are starting points. The final number, or the size of the block, depends on scope, which we pin down together before you commit to anything.

Start here

Debugging or deep investigation, from AUD $1,500

A capped, time-boxed block to unstick one specific problem or sanity-check a design before you build on it. Bring me the crash, the timing bug, the “why won’t this port boot”, or the architecture you want a second set of experienced eyes on. You get a written findings summary and, where it’s in reach, a fix. Because the block is capped, a deep investigation can’t blow out on you; we agree the ceiling before I start.

This is the low-risk way to see how I work, and it usually tells us both whether a bigger, fixed-price piece is worth doing.

Larger pieces

These are the ones we can usually scope up front, so they’re fixed price.

MicroPython board bring-up or port, from AUD $6,000

Get MicroPython running properly on your board or SoC: board profile, pin and peripheral config, the drivers you’re missing, a clean build, and a device that boots and behaves. Tiered by how far off the beaten track your hardware is.

Build, packaging and release pipeline, from AUD $8,000

CI that builds your embedded-Python firmware and wheels across the platforms you actually ship, handles native extensions, signs and packages the artifacts, and gives you a repeatable release you can hand to the rest of the team. This is the stuff that quietly eats a week every release until someone sets it up once.

What I don’t do

No open-ended staff augmentation, no ongoing on-call, no “just jump on a standup”. A time-boxed block is capped and points at a deliverable, it’s not a body in seats forty hours a week. What I’m good at is a hard, well-defined piece, or a bounded dig into a nasty one, delivered fast and done properly.

Get in touch

Email me at andrew@alelec.net with a couple of paragraphs on what you’re building and where you’re stuck. If it’s a fit I’ll come back with a scope and a price; if it’s not, I’ll usually be able to point you somewhere useful.

Andrew Leech, embedded software engineer, Melbourne. More about me →