Skip to content
View muellerei's full-sized avatar
  • Germany
  • 20:31 (UTC +02:00)
  • Joined Aug 23, 2026

Block or report muellerei

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
muellerei/README.md

Patrick Müller

Tools I needed and nobody had built.

Writing code since 1985, paid for it since around 1990 — Fortran77, Oracle Forms, LAMP, Angular, and whatever the current generation calls itself. Long enough to tell what will still be here in ten years from what is merely loud right now.

Programming is a puzzle and a craft at the same time: solve the problem, then make the code simpler than the problem was. I find a problem, I build a tool — lately in Python and TypeScript, on the command line and against whatever API is in the way. Nobody asked for any of these — the good ones never are.

What I hold to

Boring beats clever. Readable code beats a smart abstraction every time. The clever version is a debt someone pays later, usually me.

Context decides. A prototype may take shortcuts. Something people depend on may not. Knowing which one you are writing is most of the job.

No dependency without a reason. Every package is a promise someone else has to keep. Standards outlive vendors.

A view must not be able to disagree with its source. Anything derived gets recomputed, never kept by hand in a second place — two versions of the truth start drifting the day you write the second one.

Write down why, not just what. A decision that took an afternoon to reach should not take an afternoon to reconstruct.

Projects

logseq-cli — read and write a Logseq graph from a shell or an AI agent. Python, click, no vendor coupling. Verified writes, because the API answers a failed one with HTTP 200 and null.

roadmapper — derive a Notion roadmap from GitLab epics and milestones. One way only: the board is a view, so it cannot drift from the tracker. TypeScript, two dependencies, one command for cron. Progress is a sum over the issue tree, which is the one thing a field mapping cannot do.


Germany. Off the keyboard: a gravel bike, daily, non-negotiable.

Popular repositories Loading

  1. roadmapper roadmapper Public

    Derive a Notion roadmap from GitLab epics and milestones. One way, no drift, no LLM, scoped tokens.

    TypeScript

  2. muellerei muellerei Public

    Profile

  3. logseq-cli logseq-cli Public

    Drive a file-based Logseq graph from a shell or an AI agent: JSON on every command, dry-run on every write, bounded output

    Python

  4. awesome-logseq awesome-logseq Public

    Forked from logseq/awesome-logseq

    Awesome Logseq resources created by the community <3