Eduardo de Magalhães — Zürich, CH

Building things that actually work.

Personal lab. Private infrastructure. Experiments in automation, data, and systems. No product. No pitch. Just things built because they needed to exist.

eduardo@emdm.ch — zsh
# welcome to emdm.ch
 

Engineer.
Tinkerer.
Pragmatist.

I build software the way I think it should work — clean, fast, and without unnecessary ceremony. Most of what lives here started as a personal itch: a problem I had, a tool that didn't exist, a system that could run better.

By day I work in finance and business. By night (and early morning) I run a private server, automate things that shouldn't need human intervention, and occasionally convince an LLM to do useful work.

Everything on this server is mine. No SaaS. No managed services. Just a VPS in Nuremberg, nginx, and a lot of systemd unit files.

15
Services running
11
Active projects
0
Cloud subscriptions
ZH
Based in Zürich

Things running on this server.

Private tools. Some are polished. Some are held together with bash and hope. All of them solve a real problem.

Live
Waypoint
Personal running coach. Weekly coaching ritual: answers four questions, reads the training calendar, generates a tailored weekly plan and pushes ICS events. Flight enrichment via AeroDataBox. Goal: run a half-marathon by September 2026.
FastAPISQLiteGPT-4oGoogle CalendarAeroDataBox
Live
Supplement Tracker
Tracks supplement intake, stock, and shop prices across Swiss retailers. Weekly scheduled scraper, receipt OCR via GPT-4o vision (drop a photo, get parsed line items), and a Postgres-backed price history. Live + test environments.
FastAPIPostgreSQLGPT-4o Visionsystemd timer
Live
Family Office
Private financial dashboard for the family. Multi-currency (BRL / CHF / USD) with daily FX rates, document vault, task tracker, contacts, and a Cofre secure storage module. Bcrypt auth, signed session cookies, no third-party services. Not public. Not for sale.
FastAPIPostgreSQLMulti-currencyBcryptSession auth
Live
Flight Tracker
Pulls Momondo, Google Flights, and Skyscanner alerts from Gmail and normalises them into a per-route price history. Knows the difference between per-person and total fares so the charts don't lie.
GunicornGmail MCPReactWebhook deploy
Live
Swiss Supermarket Tracker
Tracks grocery prices across Migros and Lidl over time. Parses receipts into per-product price observations, then exposes them through a public REST API. Private receipt vault, public price index — split schema from day one.

Case study →   API on GitHub →
FastAPISQLiteAlpine.jsChart.jsmTLSPublic API
Live
MCP Server
Custom Model Context Protocol server exposing this box to Claude. Shell, SFTP, and project-aware tooling — so AI assistants can actually do the work instead of just describing it.
MCPPythonSSHClaude
Live
Admin Dashboard
Single pane of glass over every service on the box. Status, logs, restarts, and quick links — sitting behind the same session auth standard as the rest of the lab.
FastAPIsystemdnginx
Live
Mail Infrastructure
Postfix + Dovecot, SPF / DKIM / DMARC, Let's Encrypt on the MX. Real mail leaving and arriving at @emdm.ch, on my hardware. Because owning your email domain matters.
PostfixDovecotDKIMSPF
In progress
EMDM Hub
Native iOS app (Swift / SwiftUI) — a personal command centre that surfaces all services on this server through a single authenticated interface. WKWebView with embedded mTLS client certificate for seamless, passwordless auth to every app on the stack.
SwiftSwiftUIWKWebViewmTLSiOS
Live
Health
Personal health dossier. Apple Health import (5M+ records), body composition tracking, unified diary timeline (entries, workouts, documents, measurements), GPT-4o vision pipeline for PDF lab results, blood test tracking, and email-to-queue document intake.
FastAPIPostgreSQLGPT-4o VisionApple HealthGoogle Calendar
Live
Lost & Found
Private lost-and-found registry. Upload a photo of an item, tag it, and retrieve it later by description or category. Simple, fast, and self-hosted — no cloud storage, no third-party indexing.
FastAPISQLitemTLS
Live
Family Site
Private family portal at private.demagalhaes.ch — a shared space for the family to access documents, photos, and shared content. Password-protected, self-hosted, no external dependencies.
FastAPIPrivateFamily

What this runs on.

Chosen for reliability, not trend-following. Nothing here I couldn't administer at 2am from an SSH session.

🐧 Ubuntu 24.04
🌐 nginx
🔐 Let's Encrypt
🐍 Python 3
FastAPI
🗄️ SQLite / PG
🤖 OpenAI API
🧩 MCP
📦 systemd
✉️ Postfix + Dovecot
☁️ Hetzner CX22
🇨🇭 .ch domain
📱 Swift / SwiftUI

Say something real.

Not looking for work. Not interested in pitches or partnerships. But if you have something worth saying — a technical problem, a shared interest, or something curious — I'll read it.

📬 Email is protected from crawlers. Use the form or click below to reveal the address.