Hello, World: booting up CiPipes
Every new board starts with the same ritual: get a UART console up and print something. So here’s this blog’s first line of output:
#include <stdio.h>
int main(void)
{
printf("Hello, World from CiPipes!\n");
return 0;
}
What is this?
I work as an embedded systems and DevOps engineer, which means I spend my time in two worlds that don’t always talk to each other: the one where every byte and every microsecond counts, and the one where everything is containers, pipelines and YAML. This blog is where I write about both, and especially about the places where they meet.
What to expect
- DevOps: CI/CD pipelines, Docker, self-hosted runners, and automating the boring parts.
- Embedded systems: firmware, RTOS, embedded Linux, build systems like Yocto, and debugging on real hardware.
- Infrastructure: Linux servers, Kubernetes and Nomad clusters, Ansible, networking and self-hosting, the machines that everything else runs on.
- Where they meet: hardware-in-the-loop testing, reproducible firmware builds, OTA updates, CI for things that have to be flashed.
How this site is built
Fittingly, the site itself goes through a pipeline: it’s built with Astro, posts are written in Markdown, and every push should trigger a build and deploy.
# .github/workflows/deploy.yml (simplified)
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm run build
Subscribe via RSS if you want to follow along. See you in the next post.
Where this post fits
This post, its tags, and everything they connect to. Open the full graph →
Nothing to map yet — tag a post, or link two posts together, to see them here.
No posts or tags match your search.