About

Hello and welcome! I’m Amos.

I was born in 1990 and grew up playing the piano, building dumb robots out of LEGO and servos, and trying to create games with The Games Factory, C/OpenGL and later various Java libraries.

My first big gamedev project: Stratagem, an XML-driven strategy game engine.

I studied Computer Science at EPFL, in Switzerland. While I was there, I designed and helped run a 1st year CS project where students implemented the BitTorrent protocol.

That project was a lot of fun, except for the network admins, who shut down all BitTorrent traffic when they noticed the spike. It was harder than typical first-year projects, so I passed around unofficial slide decks with lots of tips, and held a Q&A session.

I also started my own programming language (then later killed it) during those years. It was object-oriented, simpler than C++, had modules and generics, and compiled down to C. A community formed around it and a lot of libraries were written in it.

It had a package manager, bindings for SDL2, glew, sqlite3, zeromq, a unit testing framework, a template engine, a web server, multiple game engines, lua bindings, several JIT attempts, an “inline Ruby” library, and some folks even attempted an operating system in it.

A slide from when I presented ooc to OSCON emerging langs, in 2010.

I’ve worked in the online music industry for a while - my team was doing research. We worked on an easy-to-use live streaming solution for concerts, and bunch of other projects. We got involved in MusicHackDay - during one of those, we ported an MP3 decoder to JavaScript!

We were ecstatic to get it working. In 2011, Firefox didn't support MP3 natively - official support came later, in May 2013.

I’ve worked in the online video industry as well. The product was geared towards cities and museums, to create interactive experiences. I was in charge of the front-end, we built a tool to explore a library of videos with advanced filtering, and creation of “timelines” with multiple clips.

At that same company, I worked on a ClojureScript-to-JavaScript compiler written in Ruby. It only supported a subset, but it was real fast!

A friend and I launched and maintained a popular movie search engine for a while. Another friend and I launched and maintained an early feedback website, devsofa - there was a nice interview about it on the now-defunct IndieStatik.

I briefly helped out on Staxel, mostly on game engine work, before joining the itch.io team, where I worked on the desktop games launcher, butler, the CLI developer tools, and many many other things.

I'm responsible for a good chunk of what the itch desktop app is now.

During my years with itch, I’ve written a large number of Go libraries, from anything to patching to a PE metadata reader, but also sandboxing facilities and a file(1) magic file compiler.

Recently, I’ve been experimenting with the Rust language a lot. I’ve been working on capsule, a cross-platform hotkey short video capture for video games, a new cross-language RPC framework, and zip and deflate crates.

If you want to reach out, you can simply send me an e-mail.

If you like my articles, you can support me on patreon ❤️