projects · open source · how i work · activity
Software developer from Germany, working at a hosting company. Most of my time goes into the parts users never see: APIs, deployment pipelines, database schemas and the automation that keeps all of it running without me. In my own time I build developer tools that do one job properly and show their work – tested, documented, released.
|
What I do
|
Right now
|
Real screenshots, live numbers – rebuilt every 3 hours by this repository's workflow.
proxy-scraper Python
Free proxies that actually work. Scrapes HTTP/SOCKS4/SOCKS5 proxies from 700+ sources and verifies every hit: honeypots, injected scripts (one in five does it), verified TLS, anonymity and spam blocklists. Ships with a rotating proxy server, an MCP server for AI agents and a live dashboard.
→ Browse the live list, re-checked every hour by GitHub Actions.
spillage Python
Find the API keys your coding agents spilled into their logs. Claude Code, Codex, Gemini CLI, Cursor and the rest keep every conversation on disk as plain text. spillage reads the logs of thirteen agents, shows which keys leaked and how, scrubs them without breaking --resume, and installs hooks that block the next leak. 56 rules, no dependencies, no network access.
brew install maximilianfeix/tap/spillage && spillageRepoAtlas TypeScript
Understand any TypeScript repo in one interactive map. Parses every import with the TypeScript compiler API and turns a project into a standalone architecture map – every connection links to the import statement and line that proves it.
npx --yes --package=github:maximilianfeix/repoatlas -- repoatlas https://github.com/pmndrs/zustand -o zustand-map.htmlTry it on real projects: Zustand 18 modules · Ky 51 modules · Hono 247 modules, 676 connections
gha-preview TypeScript
See the run before the run. Paste a GitHub Actions workflow and explore it as a job graph: which jobs a push or pull_request would start and what a matrix expands to. Parsed in the browser; no account, no upload.
Smaller things
| Repository | What it is |
|---|---|
| free-proxy-list | The hourly proxy list from proxy-scraper, per country, as JSON and CSV |
| homebrew-tap | Homebrew formulae – brew install maximilianfeix/tap/spillage |
| AxonPHPCLI | Tiny PHP CLI that generates GitHub Actions CI/CD configuration for PHP projects |
| Mini-Laravel | Laravel-style PHP framework from scratch: router, DI container, controllers, middleware |
| CurrentlyFreeDomains | Currently free .de domains |
| C++ template for macOS · vocational school C++ | Starter template with VS Code tasks, and exercises from my apprenticeship |
|
Recently shipped
|
Contributions to other projects |
| Principle | In practice |
|---|---|
| Tested | Tests that run offline and in CI – proxy-scraper runs almost 500 of them on Linux, macOS and Windows, against fake proxies and honeypots on localhost |
| Reviewed | Changes start as an issue and land through a reviewed pull request – see the proxy-scraper history |
| Automated | Lint, CodeQL, Dependabot, tagged releases and scheduled jobs on GitHub Actions – this profile updates itself too |
| Minimal | As few dependencies as the job allows – spillage has none, because it's a tool you point at your secrets |
| Documented | READMEs with a quick start, a changelog, contributing and security guides |
From commit to production – and which tool for which job
flowchart LR
dev["Local dev<br/>Vue + Vite"] --> push["git push"]
push --> ci["GitHub Actions<br/>lint, test, build"]
ci --> art["Artifact"]
art --> web["Apache / Node.js"]
web --> api["API layer<br/>PHP, Node"]
api --> cache[("Redis<br/>cache, sessions")]
api --> db[("MariaDB<br/>MongoDB")]
web --> obs["Logs, metrics,<br/>alerting"]
obs -.->|"something broke"| dev
What I reach for, and when
flowchart TD
q{"What kind of job?"}
q -->|"HTTP API, realtime"| n["Node.js"]
q -->|"classic web app, CMS"| p["PHP"]
q -->|"CLI tools, scripting, glue"| py["Python"]
q -->|"user interface"| v["Vue + Vite"]
n --> d1{"Data shape?"}
p --> d1
d1 -->|"relational"| m["MariaDB / MySQL"]
d1 -->|"documents"| mo["MongoDB"]
d1 -->|"hot, short-lived"| r["Redis"]
d1 -->|"single file, embedded"| s["SQLite"]
Public repositories only – counted by the same workflow that draws the banner.
How this profile updates itself
| Workflow | Status | What it does | When |
|---|---|---|---|
| Profile | renders the banner, the project cards and the activity panel with live data (text set with HarfBuzz, so it looks the same everywhere), plus Recently shipped and Contributions (script) | every 3 hours | |
| Link check | makes sure every link in this README still works | weekly | |
| Dependabot | keeps the pinned actions and the Python packages of the build script current | weekly |
portfolio · all repositories · say hello
Open to interesting backend and infrastructure work – the easiest way to reach me is an issue or discussion on one of my repositories.






