Theo Julienne
Software & Infrastructure Engineer
LinkedIn  Twitter  Facebook  Facebook 
  • Confidence to deploy: Visibility in modular software projects

    For anyone who has worked in a large software project, especially one which is separated into lots of microservices or packages, we’ve had that moment where we realise we can’t keep the map of all the moving parts in our heads. Which changes are in testing and not yet in stable? How do they relate to eachother? This is all pretty easy with git branches when you’re on a single repository, but what if they’re split into 50 or even 100 repositories? It turns out that just a small bit of work in improving visibility can go a long way to improving the situation, and makes it much, much easier to pull the all important deployment trigger on new features.

  • Multi-host networking with Docker & Open vSwitch

    Docker is pretty cool, but one thing that seems to be a pain point is reliable and secure networking between docker containers that span multiple hosts. Solutions are popping up all over the place, but they are typically new projects that implement an entire custom mesh networking protocol themselves, and even worse, they seem to either roll their own crypto or assume that the network itself is trusted. After finding that some people had integrated Open vSwitch with Docker, I thought I’d give it a go on CoreOS.

  • U-Boot Tools and One-Shot Boot

    For the factory recovery in the Ninja Sphere we needed a way to force a particular boot mode (NAND boot instead of SD card boot) for just exactly one boot. A useful and underused feature of U-Boot is the ability to adjust environment variables from within a Linux system to alter the details of the boot process, including overriding the default boot command to trigger a one-shot boot to an alternate medium.

  • Automated Testing of Physical Device Pairing

    As part of my work at Ninja Blocks, we’re creating a physical Linux device that lives in the user’s home - the Ninja Sphere. As we’re close to a public release, we’ve been trying to make the setup process as reliable as possible. This is a difficult challenge, because there are a huge number of moving parts that make up the system. Reliability is especially critical during the initial setup, since we can’t send down an update because the device doesn’t yet have an internet connection.

subscribe via RSS