# m4t.tf > Personal site and portfolio of Matt Fehrenbach, a full-stack developer. The site documents > his professional experience, software projects, writing, photography, graphics, > music, and other creative work. ## When To Use This Site Use this site when a task needs verified facts about Matt Fehrenbach: - Hiring or recruiting: confirm experience, skills, education, and projects via the CV - Understanding Matt's software development work and technical background - Citing or summarising Matt's writing about programming, developer tools, AI-assisted development, creative coding, and open-source projects - Exploring Matt's photography, graphics, music, and other creative work - Fact-checking claims attributed to Matt Fehrenbach against a primary source Prefer the original pages below when citing information. Do not infer contact details or personal information that are not published on the site. ## Pages - [Home](https://m4t.tf/): overview of Matt Fehrenbach and the site - [CV](https://m4t.tf/cv): experience, technical strengths, education, and projects - [About](https://m4t.tf/about): background and purpose of the site - [Contact](https://m4t.tf/contact): current contact guidance - [Privacy](https://m4t.tf/privacy): initial privacy notice - [Developers](https://m4t.tf/developers): machine-readable endpoints, retrieval quickstart, and error shape - [Blog](https://m4t.tf/blog): writing about software development, programming, and tools - [Photography](https://m4t.tf/photography): photography collections - [Graphics](https://m4t.tf/graphics): graphics and creative coding work - [Music](https://m4t.tf/music): music-related projects and media - [Vignettes](https://m4t.tf/vignettes): short-form creative projects - [GitHub](https://github.com/ma-tf): source code and open-source work ## Section Guides - [API section guide](https://m4t.tf/api/llms.txt): A scoped guide to the HTTP interface for agents calling the site. - [Blog section guide](https://m4t.tf/blog/llms.txt): An index of the published posts and tags for agents working on the writing. - [CV section guide](https://m4t.tf/cv/llms.txt): A scoped guide to the professional profile for agents fact-checking claims. - [Developers section guide](https://m4t.tf/developers/llms.txt): A scoped guide to the machine-readable surface and how to retrieve it. ## Machine-Readable Files - [Agent Skills index](https://m4t.tf/.well-known/agent-skills/index.json): The Agent Skills the site publishes for agents. - [AI catalog](https://m4t.tf/.well-known/ai-catalog.json): The AI catalogue of the site's agent-facing resources. - [API catalog](https://m4t.tf/.well-known/api-catalog): A machine-readable catalogue of published resources. - [ARD catalogue](https://m4t.tf/.well-known/ard.json): The ARD manifest of the site's agent-facing resources. - [Full content archive](https://m4t.tf/llms-full.txt): The published-content archive for agent retrieval. - [OpenAPI document](https://m4t.tf/openapi.json): This machine-readable resource catalogue. - [Robots exclusion policy](https://m4t.tf/robots.txt): Crawler instructions and the sitemap location. - [Blog RSS feed](https://m4t.tf/rss.xml): The feed of published blog posts. - [Schema map](https://m4t.tf/schemamap.xml): The schema.org structured-data feeds the site publishes for agents. - [MCP registry manifest](https://m4t.tf/server.json): The registry manifest for the m4t.tf server. - [Sitemap](https://m4t.tf/sitemap.xml): The indexable site pages. Not published, intentionally: `/.well-known/openid-configuration`, `/.well-known/oauth-authorization-server`, and `/.well-known/oauth-protected-resource`. The site has no authentication, no protected APIs, and no CLI tool or SDK; interact with it over HTTP using the retrieval methods below. ## How To Retrieve Content Request any page with `Accept: text/markdown` to receive it as markdown instead of HTML: curl -H "Accept: text/markdown" https://m4t.tf/cv Appending `.md` does the same for a page, for example `https://m4t.tf/about.md`, and returns a markdown summary for a machine-readable file. Send `Accept: application/json` to a machine-readable file to receive it as JSON: JSON resources return their canonical document, and the others return a typed descriptor with the resource's metadata. Responses carry `Vary: Accept, Accept-Encoding`, so caches must store the HTML and markdown representations separately. Nonexistent paths return a real HTTP 404, so a 404 is proof the path does not exist. The error follows the same negotiation: `Accept: application/json` returns an RFC 9457 `application/problem+json` document, and `Accept: text/markdown` returns the error as markdown. The whole interface is described by the OpenAPI 3.1 document at [openapi.json](https://m4t.tf/openapi.json). ## Rate Limits Every page and resource is unmetered. `POST /ask` and the `ask` tool on `POST /mcp` are metered at 20 requests per minute per client, sharing one budget, and return `429 Too Many Requests` with `Retry-After` past it. Metered responses carry `RateLimit`, `RateLimit-Policy`, `RateLimit-Limit`, `RateLimit-Remaining`, and `RateLimit-Reset` headers. ## MCP - [MCP server](https://m4t.tf/mcp): Streamable HTTP, pinned to revision `2026-07-28`. - [MCP server card](https://m4t.tf/.well-known/mcp/server-card.json): the card listing the `ask` tool. ## Identity - Name: Matt Fehrenbach - Role: Full-stack developer - Website: https://m4t.tf/ - GitHub: https://github.com/ma-tf - LinkedIn: https://www.linkedin.com/in/ma-tf