01 · Notes · Ongoing

Academic Writing Tips and Resources

A practical collection of academic writing habits and go-to paper-writing resources — accumulated through a PhD and slowly hardened into something I trust.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Before you write

Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.

  • Nemo enim ipsam voluptatem quia voluptas sit aspernatur.
  • Aut odit aut fugit, sed quia consequuntur magni dolores.
  • Eos qui ratione voluptatem sequi nesciunt.
  • Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet.

The first paragraph

The first paragraph is the contract. If it's vague, the rest of the paper inherits the vagueness.

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga.

Tools I actually use

Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit. For version control of papers I use git with a main branch that always compiles. For figures, matplotlib with a custom rcParams file and never the defaults.

# minimal mpl style block I drop into every project
import matplotlib as mpl
mpl.rcParams.update({
    "figure.dpi": 140,
    "font.family": "serif",
    "axes.spines.top": False,
    "axes.spines.right": False,
})

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse potenti. Vivamus a justo nec lectus convallis fermentum non non massa. Praesent congue, ipsum in lobortis fermentum, sapien lacus pulvinar lectus.

02 · Blog · Ongoing

The Hidden Saboteurs: How Confounding Factors Keep Bionic Hands from Working in the Real World

TLDR: Myoelectric prostheses translate muscle signals into movement, but those signals are easily disrupted by everything from arm position and fatigue to electrode slippage and sweat. These disruptions, called confounding factors, are why devices that work flawlessly in the lab often fail in daily life. This article maps where they come from, how they interact, and what it will take to overcome them.

Read original here

Imagine a prosthetic hand that works flawlessly in a clinical lab — seamlessly opening, closing, and gripping on command — only to fail the moment its user reaches up to a top shelf. No hardware malfunction, no broken component. The problem is invisible: the muscle signals the device depends on have quietly shifted, and the system can no longer understand them. This is the central frustration of modern myoelectric prosthetics, and it is caused by what researchers call confounding factors — a class of variables so pervasive and so subtle that they have become one of the defining unsolved problems of the field.

What Is Myoelectric Control?

Myoelectric prostheses are electrically powered artificial limbs that translate the wearer's own muscle activity into movement commands. They work by detecting surface electromyographic (sEMG) signals — the electrical impulses generated when muscles contract — via electrodes placed on the skin of the residual limb. Machine learning models, trained to recognise patterns in these signals corresponding to different intended gestures, then decode them in real time to drive motors in the prosthetic hand.

In theory, it is elegant. In practice, the signals are far messier than the models expect.

The Problem: Signals That Will Not Sit Still

EMG signals are inherently stochastic — noisy, variable, and deeply sensitive to context. The same person attempting the same gesture on two different days, or from two different arm positions, will produce measurably different signals. This variability is not random noise that can simply be filtered out; it reflects genuine physiological and environmental changes that systematically shift the signal distribution in ways that confuse even well-trained classifiers.

Confounding factors are the variables responsible for these shifts. They introduce unwanted variation into recorded signals, disrupting the feature representations that machine learning models rely on and degrading their decoding capabilities. The consequences are not merely academic: poor control reliability directly raises cognitive load, increases user frustration, and is one of the primary drivers of prosthesis abandonment.

Can we differentiate them?

The problem is not that the signals lie. It's that they tell a different truth every time.
  • Intrinsic Factors: The Body's Own Interference
  • Extrinsic Factors: When the World Interferes
  • Compounded Factors: When Problems Multiply

Where the Field Is Heading

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; In ac dui quis mi consectetuer lacinia. Nam pretium turpis et arcu. Duis arcu tortor, suscipit eget, imperdiet nec, imperdiet iaculis, ipsum.

Sed aliquam ultrices mauris. Integer ante arcu, accumsan a, consectetuer eget, posuere ut, mauris. Praesent adipiscing. Phasellus ullamcorper ipsum rutrum nunc.


This article is based on the background chapter of the author's PhD thesis, #"Mitigating Confounding Factors in Myoelectric Control Through Adaptive Modelling and Learning," submitted to the University of Edinburgh, May 2026.

02 · Pieces Blog · August 2025

Beyond the Cloud: SLMs, Local AI, and Agentic Constellations

A vision for local-first AI built on biology-inspired architectures — and why small, specialised, and on-device may matter more than the next order of magnitude.

Read original here

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

The cloud-first assumption

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit.

What biology suggests

A nervous system doesn't ship its sensory input to the cloud and wait for a response. The work happens locally, hierarchically, and most of it never reaches conscious attention at all.

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

  1. Edge-first inference for latency-bound tasks.
  2. Specialised SLMs orchestrated by a smaller router.
  3. Cloud only when the task genuinely needs it.

Constellations, not monoliths

Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur. Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur.


At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident.