I've been working for a software development agency in the past and one of my clients back then was (a different) mid-sized logistics company :)
For us (including the client) the following approach worked great and I'd recommend to give it a try
* hire an agency (or freelancers) to work on (requirements, architecture, design, implementation) your special software - make sure the code is yours legally and you can bring it to another software shop or internal whenever you want
* you get bootstrapping important decisions done by someone with experience. because hiring the first employee for that task is hard and risky
* you can transition to in house from there, if you're happy with the solution or decide to stay at that agency longer - you're very flexible
* Having good and maintained software as a base, start hiring. Build your team and gradually take over development. You don't have to go in-house fully, just so much that it makes sense.
Back then we bootstrapped custom software for that logistics company and gradually migrated it over to their team - even helped them hiring a team in the first place. Over time we lost them as a client (because they happily worked on their software now) but got many more clients since they recommended us highly. So it's a win-win situation.
Author of wasmex[1] here (an elixir package which allows runnung WASM).
Next to the mentioned wasmtime, wasm3, and wamr, there is also wasmer[2] I would add to the list of capable WASM runtimes.
The great things these runtimes offer are how easy they are to integrate into other programming languages environments. E.g. with wasmex you could easily run WASM from your elixir application (or with wasmer from ruby[3] or many other languages if you want).
Imagine building shopify, but without needing to invent your own template language for customers to extend their shop-template[4]. They could provide a WASM extension API where shop-owners could let sandboxed WASM files render their shop. This would let allow shop-owners to write templates in their favorite language instead of e.g. liquid and still be secure.
I implemented my interpreter with the goal to learn some rust. So please let me know should you find things to improve :)
I remember a point in development when I implemented whitespace handling and cycles therein. I thought I had implemented the spec but some example programs did not run properly. Maybe that was because of the divergence in the spec vs. npiet you mentioned. Since my main goal was to learn rust I just made the example programs work and did not double check the spec again. Will look into it again when I find some time :)
Ulam sprials are super interesting. I developed a visualization (and some explanation) once just to understand the problem a little better. Maybe this sparks some interest in someone :)
It's an interesting and easy project to start soldering/arduino-fiddling. Parts can be purchased with approx. $25.
In comparison to the pedal used in the vim clutch, the sewing machine pedal has the advantage of not only having an on/off state, but returning the pedal-pressure (so half-ressed and all sorts of combos are possible).
Currently, I use it for sublime-text shortcuts (cmp+p on half-press and cmd+shift+p on deep-press) or for debugging (ctrl+d to continue code execution).
You can fiddle with the displayed time (by editing the url) -- it's fun to see that (very) early timestamps have much greater chance to be a prime number.
https://tessi.github.io/walking-the-ulam-spiral/