Patterns in Cyberspace
I’m Leo Tindall. I work with computer hardware and software, building tools and tech that makes it easer for people to reclaim their lives from the Apples and Googles of the world.


It is the duty of software engineers to build software in an ethical way. In short:

  • computer systems should serve their users before their makers
  • software should empower users, not restrict them
  • users should decide how data is used before engineers or businesspeople

Whether it means embracing software freedom or another ideology, or going by gut feeling, we must proceed as best we can.


I write systems code in Rust, assembly, and Go, and a lot of scripts and utility software in Python and Lua.

I work on websites and web applications using CSS, JavaScript, and TypeScript, but I have fundamental misgivings about the web platform as it stands.

You can check out my projects to see what I’ve worked on in the past. The big ones are the Open Energy Dashboard, FediDict, and iui.


I occasionally build actual, physical stuff, mostly small RC aircraft and hacking kit.

I also really like retro computing hardware, but generally don’t have the time or money to indulge this interest.


I’ve written tutorials on type systems and what can be done with them (for instance, session types.)

If you’re interested in x86 hacking, my reverse engineering tutorial is a great place to start. For a more application-level security discussion, check out my post on embedding malware in PDF files.

Culture & Practices

The culture, business, and sociology of technology fascinate me.

I’ve written about topics ranging from hacker superstitions and how spending way too much time customizing my desktop is productive, actually to repairable hardware and free software and why it matters, for individuals and for society as a whole.


This website is also available on IPFS, a peer-to-peer content-addressed immutable datastore that spans the globe. I host a public IPFS gateway at; you can also view this blog through that gateway rather than the public resolver.

Around the ‘Net

You can find me: