Skip to main content

Command Palette

Search for a command to run...

Always Building - Hello, World

Updated
4 min read
R
Senior Technical Product Manager | AI-Native Transformation & Cloud-Native Network Functions 20+ years leading product strategy in telecom, now focused on the convergence of AI/ML and cloud-native 5G network infrastructure. Defining AI-native transformation strategies for complex Kubernetes-based network functions — embedding ML-driven lifecycle management, AIOps, and intelligent automation into telecom products. Lifelong AI/ML engagement since my university thesis on Hopfield Neural Networks (1998). I maintain a personal lab and build projects to stay hands-on with the technologies shaping the products I manage.

Some people have hobbies. I have a homelab.

That distinction matters, because hobbies are things you do to relax. A homelab is something that pages you on a Saturday morning because a Raspberry Pi decided to reboot itself and took Jenkins down with it. It's not relaxing. But it's the most fun I've had in years.

My name is Roberto de la Cámara. By day, I work as a TPM at Ericsson, where I spend most of my time thinking about systems at scale — reliability, trade-offs, roadmaps, the gap between how things should work and how they actually do. By night (and on weekends, and during most lunch breaks), I build things at home for no reason other than that I can't stop.

This blog is the honest log of that second life.


The Homelab

Let me give you the tour, because context matters.

My setup runs across four machines and lives entirely on my home LAN:

  • Magua — my Windows PC running WSL2 (Ubuntu). This is the infrastructure host: Jenkins, SonarQube, a private Docker Registry, Nginx Proxy Manager, Prometheus, Grafana, and MLflow all run here in Docker containers on a shared infrastructure_net network.

  • raspi-62 — a Raspberry Pi 5 that acts as the main server. Gitea (my self-hosted Git), MinIO (object storage), Uptime Kuma, and AdGuard Home all live here. This is also where the DNS for my *.local domain resolves.

  • raspi-189 / raspi-190 — two older Pis running satellite services: another MinIO node, Changedetection.io, and CrowdSec.

The CI/CD pipeline flows like this: I push code to Gitea on raspi-62, a webhook triggers Jenkins on Magua, Jenkins builds and tests the image, pushes it to the local registry, and deploys it. No cloud. No SaaS. No monthly bill.

Does it break? Constantly. Is that the point? Partly, yes.


The Repositories

Alongside the homelab, I've been building a collection of ML and systems projects. Here's what's currently in progress:

CNDS — A network intrusion detection system. Scapy captures packets, extracts 76 CICFlowMeter-compatible flow features, and feeds them through an ensemble of four detection engines: a supervised Random Forest, an Isolation Forest, an LSTM Autoencoder, and a rule-based engine. Alerts are enriched with MITRE ATT&CK mappings and streamed in real-time via WebSocket. FastAPI + SQLAlchemy backend, optional JWT auth. This one is the closest thing to production-grade in my personal stack.

HopfieldAssignmentProblemSolver — A hybrid microservices architecture (Go API Gateway + Python solver) for solving assignment problems using Hopfield neural networks. Go handles the API layer with Gin; Python runs the actual neural network logic in Flask. Nginx sits in front of both.

HopfieldSPP — Shortest path solver using Hopfield Networks with TensorFlow. Three model versions: Original (deprecated), Improved (recommended), Advanced (still experimental). Comes with a FastAPI REST interface.

cognitive-anomaly-detector — Network anomaly detection using Isolation Forest plus rule-based detection. MLflow tracks experiments. Scapy handles packet capture. 18-feature extraction pipeline.

Research-Agent — A LangGraph-based autonomous research agent with 5 personas, multi-source RAG, and a Streamlit UI. Uses LangChain with Ollama/OpenAI and ChromaDB for vector storage.


What This Blog Is

I'm not going to teach you things. I'm going to show you what I'm building, how it breaks, and how I fix it.

There's no separation in my head between the TPM who thinks about system design at work and the person who spent last Sunday debugging why Docker Desktop's proxy was intercepting pushes to a local registry. They're the same person with the same questions, just operating at different scales.

Always Building is that person writing things down. Weekly. Honestly. With all the failed attempts included.

If you've ever looked at a Raspberry Pi and thought "I wonder if I could run a full MLflow tracking server on this" — welcome. You're in the right place.


Where to Find Me

All the code I write ends up on GitHub: github.com/RobertoDeLaCamara. Every repository mentioned in this blog lives there — feel free to dig in, open issues, or just steal ideas.

If you want to connect professionally or follow along more casually, I'm on LinkedIn at linkedin.com/in/robertodelacamara.


Next week: Meet the Research Agent — a LangGraph-based autonomous agent with 5 personas and multi-source RAG that I built to automate... well, research. Starting simple, but it gets weird fast.

37 views