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.
|
What I do
|
Right now
|
| 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 |
| 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
classDef node fill:#1C1C1F,stroke:#C6F36B,stroke-width:1px,color:#EDEBE4
classDef store fill:#161618,stroke:#A3A29D,stroke-width:1px,color:#EDEBE4
class dev,push,ci,art,web,api,obs node
class cache,db store
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 -->|"scripting, glue, tooling"| 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"]
classDef node fill:#1C1C1F,stroke:#C6F36B,stroke-width:1px,color:#EDEBE4
classDef decision fill:#161618,stroke:#A3A29D,stroke-width:1px,color:#EDEBE4
class n,p,py,v,m,mo,r,s node
class q,d1 decision
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: honeypot filter, catches proxies that inject scripts (one in five does), HTTPS with verified TLS, anonymity, country, provider and spam blocklists – and learns with every run which sources are worth it.
- Rotating proxy server – SOCKS5 + HTTP, sticky sessions, country per request, refills itself, Prometheus metrics
- MCP server – AI agents like Claude Code get working proxies and can load pages through them
- Everything around it – setup wizard, live dashboard, Discord bot, Python API, Docker, shell completion
| 700+ | ~1M | 25 s | 3 OS |
|---|---|---|---|
| sources | candidates per run | to check them | Linux · macOS · Windows |
→ Browse the live list, re-checked every hour by GitHub Actions.
RepoAtlas TypeScript
Understand any TypeScript repo in one interactive map. RepoAtlas parses every import with the TypeScript compiler API and turns a project into a standalone architecture map – entry points, modules, dependencies. Unlike a diagram guessed from prose, every connection links to the exact import statement and line that proves it.
- Evidence, not guesses – click any edge to see the source line, with a commit-pinned GitHub link
- Assess change – Focus map for direct neighbours, Impact map for everything that transitively depends on a module, circular import groups isolated edge by edge
- Zero setup – one
npxcommand, no clone, no API key; the output is a single offline HTML file (or JSON), also as a GitHub Action
npx --yes --package=github:maximilianfeix/repoatlas -- repoatlas https://github.com/pmndrs/zustand -o zustand-map.html| Try it on | Modules | Connections |
|---|---|---|
| Zustand – open map | 18 | 23 |
| Ky – open map | 51 | 93 |
| Hono – open map | 247 | 676 |
TypeScript 6 compiler API · Node.js 22+ · no network requests from the viewer · hash-based CSP · tests + CodeQL on every push
- 🔀 Merged Scan agent settings: MCP servers, allowed commands, old prompt history in spillage · 28 Sep 2026
- 🏷️ Released proxy-scraper v1.21.0 · 28 Sep 2026
- 🔀 Merged README: star history, Discussions, stars badge in proxy-scraper · 28 Sep 2026
- 🔀 Merged Proxy pool API on the --serve port (proxy_pool compatible) in proxy-scraper · 28 Sep 2026
- 🔀 Merged --source and --only-sources: your own proxy lists in proxy-scraper · 28 Sep 2026
- 🔀 Merged release 1.21.0 in proxy-scraper · 28 Sep 2026
This profile keeps itself up to date:
| Workflow | Status | What it does | When |
|---|---|---|---|
| Profile | renders the banner and project cards with live data and the Recently shipped list (script) | every 3 hours | |
| Metrics | activity, languages, calendar and project cards via lowlighter/metrics | nightly | |
| Contribution snake | turns the contribution graph into the snake above | nightly | |
| Link check | makes sure every link in this README still works | weekly |
Open to interesting backend and infrastructure work – the easiest way to reach me is an issue or discussion on one of my repositories.
Banner, project cards and stats are generated in this repository by GitHub Actions.








