Platform Engineer at Xebia, focused on AI platform engineering - the infrastructure behind reliable, observable, scalable AI and cloud-native workloads. I work primarily in Go and Google Cloud, with deep experience in Kubernetes, containers, and end-to-end observability - and a strong interest in networking and lower-level systems work in Rust. My current focus is the platform layer beneath AI: inference serving infrastructure on Kubernetes, AI gateway and MCP connectivity, agentic workload…
A tour through AI engineering for developers who already know how to ship software. Fourteen chapters, no LinkedIn voice, no slow warm-up. We will go from 'what is a foundation model' to 'how do you run agents in production on Google Cloud' without skipping the parts that matter.
Platform engineering is more than DevOps with a portal. This post walks the full arc of the discipline end to end: why platforms exist, how to build and operate them, how to manage the messy stakeholder politics, and what success actually looks like. Grounded in Fournier and Nowland's book and a few years of doing this on real systems.
A comprehensive but quick walkthrough of everything you need to know about GCP networking: VPCs, subnets, routing, firewalls, Shared VPC, GKE networking, load balancing, Cloud NAT, hybrid connectivity, VPC Service Controls, DNS, packet inspection, and how to operate all of it. Written for engineers who need a solid mental model in 15 minutes.
Containers changed how we package and ship software, but they did not rewrite the basic security rules. Trust boundaries, privilege, and attack surface are all still there. That was probably the main thing I learned while digging into container security, partly from Liz Rice's Container Security and partly from spending time with the Linux pieces underneath.
eBPF lets you run small, verified programs inside the Linux kernel, enabling fast observability, security, and networking without changing application code. This practical tour explains why eBPF matters now, how programs are compiled, verified, JITed, and attached to events, and how maps and ring-3 buffers move data. You'll leave with simple demos and a clear mental model to start experimenting.
Kubernetes networking doesn't have to be a black box. This guide breaks it down, starting from the fundamentals of Linux networking and container isolation. We then dive into the complete Kubernetes model, explaining everything from Pod IPs and CNI plugins to Services, NetworkPolicy, and Ingress, providing a clear end-to-end map of how connectivity works in your cluster.
I've always been fascinated by how data moves across the world at the speed of light. It's not magic! The internet relies on open standards and precise addressing. I wanted to refresh my knowledge of networking fundamentals and the TCP/IP suite of protocols, so I went through a few resources and later made this post from my notes, covering common protocols (IP, TCP, UDP, DNS, BGP, NAT, DHCP,…
I recently took a deep dive into the Linux kernel to understand how it handles processes, scheduling, memory, and more. While I had some OS knowledge from school, it always felt too abstract - so I wanted to see how things actually work. This post covers what I learned, from system calls to interrupts, and how kernel development differs from userspace.
Modern applications are often complex, distributed systems. Debugging them is not fun: you have to follow requests across services, logs get lost, and metrics are often hard to correlate. It's like looking for a needle in a haystack - except the haystack is on fire, and the needle keeps moving. This is where OpenTelemetry (OTel) can help.
I had a great time on The Cillers Podcast chatting about my journey in tech and hackathons! We talked about organizing hackathons at GitHub, how they foster creativity and collaboration, and their role in inspiring new product ideas. We also touched on boosting development speed with great tools and managing technical debt. Big thanks to the Cillers team for having me!
After more than a decade of writing software, I've read lots of opinions on how to write good software. Everyone loves to throw around rules and principles, so I'll do it too.
A few months ago I published a post titled "The Istio Service Mesh for People Who Have Stuff to Do". The post was well-received and it's now available on the Istio.io blog too.
I recently made a contribution to Istio, an open-source service mesh that simplifies managing microservices. In this post, I explain how Istio handles traffic routing, security with mTLS, and observability, making complex systems more resilient and efficient.
I recently read the books "Applied Machine Learning and AI for Engineers" and "Introducing MLOps", and I took some notes to make a quick summary of all the stuff packed into these books. In this post, I'm sharing my takeaways, from the basics of supervised and unsupervised learning to the more complex areas like deep learning and natural language processing, as well as the core ideas behind MLOps.
I've been working with Terraform for a while now, and I've noticed that there are a few things that I keep telling people about. I thought it would be helpful to write a blog post about some of the most common questions I get asked and share some of the things I've learned along the way.
Photo-taking engineers, understanding how photos perform online can provide valuable insights into audience preferences and engagement. In this post, I'll walk you through a Python script I created to analyze the performance of my photos on Unsplash.
I am very happy to announce that I have been nominated as a top mentor on MentorCruise! 🎉 A big milestone, reflecting the progress and success of my mentees. Thank you to everyone who has been part of this journey.
CI/CD observability provides insights into the performance and health of CI/CD pipelines, helping teams detect issues early and improve efficiency. A few options are currently available on the GitHub Actions marketplace to integrate OpenTelemetry into CI/CD workflows.
I recently worked on two different C projects, and I wanted to structure them in a way that would make them easy to maintain and understand. I also wanted to make sure that the projects were easy to build and test. In this post, I will share my experience and the best practices I found for structuring C projects.
KubeFM recently invited me to talk about my project "barco: Linux Containers From Scratch in C". In this episode, I talk about why Linux containers don't exist, how to use cgroups and namespaces to isolate a process, how to secure the container with seccomp and capabilities, and how to make the right syscall from C to build your own container engine. Thank you, KubeFM, for having me!
I am pleased to share that I have been renewed again as a GDE. Since 2022, this recognition has highlighted my contributions to cloud native technologies and my dedication to knowledge sharing within the developer community.
OpenID Connect (OIDC) is an authentication protocol that extends OAuth 2.0, providing a solid and standardized method for authentication often involving an ID token in the JWT (JSON Web Token) format. OIDC is the recommended way to authenticate with GitHub Enterprise Server when setting up GitHub Actions. Since the setup can be tricky, I've created a Terraform configuration that makes it easier to…
In the world of frontend development, several of tools and frameworks are available to build efficient, scalable, and interactive web applications. If you've been away from frontend development for a while, you might find the current landscape quite different from what you remember.
verto.sh simplifies your entry into the open-source world by curating accessible projects. Ideal for beginners making their first contribution, founders building teams, and maintainers seeking new contributors.
Discover how a well-planned Makefile can make building C projects easier. By using clear variables, wildcards, automatic variables, and phony targets, see how the Makefile for the gnaro project is easy to understand and use, serving as a simple guide for other developers.
Interactive panel discussion about the treats of being a cloud engineer, the developments and a guestimate about what the future holds, with Antoni Tzavelas and Jeroen Reijn.
Obtaining your first Google Cloud certification can be a challenging experience. In this video I share my best tips to prepare for the "Associate Cloud Engineer" exam and the resources I used to pass the test last December.
The latest news from around the cloud: Club Cloud Stories #2 is here! Luca Cavallin & Jacco Kulman – joined by special guest Antoni Tzavelas (Google Cloud Course Creator and DevOps enthusiast) – are going to discuss: "CloudFormation: Quick Retry", "Google Cloud IoT Core 101", "Step Functions: Power Up", "What is GitOps?", "Inspect Traffic Between Subnets in a VPC", "Rust on CloudFlare Workers".
In this first episode of Club Cloud Stories, hosts Luca Cavallin and Jacco Kulman welcome two guests: Antoni Tsavelas and Mark van Holsteijn. They discuss the latest cloud developments as well as a special reaper package to stop containers from running.
Learn how to design serverless applications on the AWS platform from Jacco Kulman and Luca Cavallin. This session was hosted during the End2End Live conference in June 2021.